调整Linux内核对SYN洪水攻击

我已经阅读了关于如何通过修改sysctl.conf一些指令来防止SYN洪水攻击的文章(不是英文)。 那篇文章有这样的一句话:“可以用某些选项重新编译内核来提高防止SYN泛滥的能力”。 对不起,如果我的问题太笼统了,但你能指出它可能涉及哪些内核选项? 我下载了内核并使用make menuconfig浏览了所有networking选项,但没有find或错过这些选项。 谷歌search也没有帮助。

谢谢。

是的,可以用Syn Flood攻击的保护来重新编译内核,但是我没有看到相同的原因。

您需要在没有通过命令更改内核参数的系统中重新编译内核。 但是,如果你仍然想这样做,那么你需要改变内核中的C代码。

例如,在Digital Unix中,您可以更改头文件中的两个参数,然后重新构build操作系统。 在/usr/sys/include/sys/socket.h ,更改SOMAXCONN定义,使得8变成1024。

/usr/sys/include/netinet/tcp_timer.hTCPTV_KEEP_INIT定义从75*PR_SLOWHZ改为25*PR_SLOWHZ

然后用这个Unix版本独有的数字Unix程序来重build内核。

你也可以用Berkeley派生的Unix系统重build内核来改变这两个相同的参数。

但是,它们位于不同的位置,即/usr/src/sys/netinet/tcp_timer.h/usr/src/sys/sys/socket.h

阅读完这些之后,如果您觉得不需要重新编译内核,请使用以下选项来减轻syn flood攻击。

 # 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阅读更多关于这些细节的信息:

  • ndchost.com
  • opentodo.net

希望这回答你的问题。 如果您需要更多的解释,欢迎发表评论。

不知道你是文章,但同步防洪的常见方式是设置/proc/sys/net/ipv4/tcp_syncookies