Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Общеизвестно, что ядро Linux весьма гибко и вы можете изменять его параметры порой даже "на лету". Одним из таких инструментов для динамических изменений на уровне ядра является команда sysctl.

Sysctl предоставляет нам интерфейс, который позволяет изучить и изменить несколько сотен параметров ядра в Linux или BSD. Изменения вступают в силу немедленно, и даже есть способ сделать так, чтобы они сохранялись и после перезагрузки. Sysctl используется и для изменения параметров ядра во время его работы. Параметры доступны и перечислены в каталоге /proc/sys/. Сам каталог /proc представляет из себя виртуальную файловую систему procfs позволяющую получить доступ к информации о системных процессах непосредственно из ядра. Поскольку procfs является виртуальной файловой системой, она не использует в своей работе никаких накопителей данных и её действие ограничивается только оперативной памятью. Procfs помимо GNU/Linux также поддерживается такими операционными системами как: Solaris, BSD, QNX, IBM AIX. Вы можете использовать команду sysctl как для чтения так и записи. Говоря короче команда sysctl используется для просмотра текущих параметров ядра и их корректировки.

 

Внимание!!! Неверное изменение файла sysctl.conf может нарушить работу вашей систем.

 

Итак, все параметры хранятся в файле /etc/sysctl.conf, его-то и будем редактировать. Для начала сделаем его бэкап следующей командой:

 

cp /etc/sysctl.conf   /etc/sysctl.conf.back

 

Открываем файл для редактирования:

 

sudo gedit /etc/sysctl.conf

 

Если на вашей машине установлено более 512 Мб оперативной памяти, добавляем следующие строки.

 

 kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
fs.file-max = 65536
vm.swappiness = 1
vm.vfs_cache_pressure = 50

 

Если ширина вашего канала около 10Mbps, можно добавить следующие параметры:

 

net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_no_metrics_save = 1

 

Игнорировать фальшивые ошибки ICMP

 

net.ipv4.icmp_ignore_bogus_error_responses = 1 

 

Не принимать пересылку ICMP

 

net.ipv4.conf.all.accept_redirects = 0                              
net.ipv6.conf.all.accept_redirects = 0

 

Принимать пересылку ICMP только от шлюзов, перечисленных в нашем листе шлюзов:

 

net.ipv4.conf.all.secure_redirects = 1

 

Не отправлять пересылку ICMP(мы не роутер):

 

net.ipv4.conf.all.send_redirects = 0

 

Не принимать IP источника маршрута пакетов (мы не роутер):

 

net.ipv4.conf.all.accept_source_route = 0                           
net.ipv6.conf.all.accept_source_route = 0

 

 

Если вы используете Wifi или 3.5G-модем, впишите следующие строки:

 

net.core.rmem_default = 524288
net.core.rmem_max = 524288
net.core.wmem_default = 524288
net.core.wmem_max = 524288
net.ipv4.tcp_wmem = 4096 87380 524288
net.ipv4.tcp_rmem = 4096 87380 524288
net.ipv4.tcp_mem = 524288 524288 524288
net.ipv4.tcp_rfc1337 = 1
net.ipv4.ip_no_pmtu_disc = 0
net.ipv4.tcp_sack = 1
net.ipv4.tcp_fack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_ecn = 0
net.ipv4.route.flush = 1

 

Для предотвращения SYN-атак добавляем:

 

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2

 

Игнорировать ICPM-трафик:

 

net.ipv4.icmp_echo_ignore_broadcasts = 1 



Вести лог марсианских пакетов:

 

net.ipv4.conf.all.log_martians = 1

 

Если вы хотите отключить пересылку пакетов:

 

net.ipv4.ip_forward=0

 

Для увеличения максимального числа открытых файлов используйте следующие настройки:

 

fs.file-max = 100000 

 

Разрешить пересылку пакетов по ip4 и ip6:

 

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1

 

Отключить низкоуровневые сообщения в консоли:

 

kernel.printk = 4 4 1 7 

 

Включить защиту от spoof-атак:

 

net.ipv4.conf.default.rp_filter=1                                             
net.ipv4.conf.all.rp_filter=1

 

Далее сохраняем изменения и выходим из редактора. Для применения изменений "на лету"даём команду:

 

sudo sysctl -p