Я прочитал статью (не на английском языке) о том, как защитить сервер от атак 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
.