Назад | Перейти на главную страницу

Настройте ядро ​​Linux против атаки SYN flood

Я прочитал статью (не на английском языке) о том, как защитить сервер от атак SYN flood, изменив некоторые директивы в sysctl.conf. В этой статье есть предложение вроде: «можно перекомпилировать ядро ​​с некоторыми опциями для улучшения защиты от SYN-флуда». Прошу прощения, если мой вопрос слишком общий, но не могли бы вы указать мне, к каким параметрам ядра он может относиться? Я скачал ядро ​​и просмотрел все варианты сети с make menuconfig но не нашел или пропустил эти варианты. Гугл тоже не помог.

Спасибо.

Да, можно перекомпилировать ядро ​​с защитой от атак Syn Flood, но я не вижу для этого причины.

Вам необходимо перекомпилировать ядро ​​в системах, которые не имеют возможности изменять параметры ядра с помощью команд. Но если вы все еще хотите это сделать, вам нужно изменить код C в ядре.

Например, в Digital Unix вы изменяете два параметра в файлах заголовков, а затем перестраиваете операционную систему. В /usr/sys/include/sys/socket.h, изменить SOMAXCONN определение, поэтому 8 становится 1024.

В /usr/sys/include/netinet/tcp_timer.h изменить TCPTV_KEEP_INIT определение из 75*PR_SLOWHZ к 25*PR_SLOWHZ.

Затем перестройте ядро, используя процедуры Digital Unix, которые уникальны для этой версии Unix.

Вы также можете перестроить ядро, изменив эти же два параметра, в системе Unix, производной от Беркли.

Однако они находятся в разных местах, а именно /usr/src/sys/netinet/tcp_timer.h и /usr/src/sys/sys/socket.h.

После прочтения этого, если вы чувствуете, что вам не нужно повторно компилировать ядро, используйте следующие параметры для смягчения атак син-флуда.

# echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# echo 2048 > /proc/sys/net/ipv4/tcp_max_syn_backlog
# echo 3 > /proc/sys/net/ipv4/tcp_synack_retries

Чтобы изменения сохранялись при перезагрузках, поместите эти записи в /etc/sysctl.conf файл

# TCP SYN Flood Protection
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 3

Вы можете прочитать больше об этом по этим URL-адресам:

Надеюсь, что это ответ на ваш вопрос. Не стесняйтесь комментировать, если вам нужны дополнительные разъяснения.

Не уверен в своей статье, но наиболее распространенный способ защиты от син-флуда - установить /proc/sys/net/ipv4/tcp_syncookies.