在linux中更好的替代tcp_syncookies

为了防止DDOS攻击,我遵循了在Linux机器中将/ proc / sys / net / ipv4 / tcp_syncookies值设置为1的build议,以启用TCP syncookies。

但是,当我看这个url: http : //ckdake.com/content/2007/disadvantages-of-tcp-syn-cookies.html

它告诉我,如果启用tcp_syncookies,那么包括大型窗口pipe理function在内的一半tcpfunction将被禁用,从而可能会降低性能。

我在其他地方读到,syn cookies的部分目的是当更多的数据包进入时,将tcp syn backlog缓冲区扩展到超过其上限(通过/ proc / sys / net / ipv4 / tcp_max_syn_backlog),使数据包不会丢失。

我希望能够禁用syn cookies,这样我就可以充分利用tcp,并使我的服务器运行得更快,并且不会再发生DDOS攻击。 我可以很容易地增加同步缓冲区和最大的连接数,但是我认为如果我太高的话,我会耗尽内存。

有没有人有一个很好的替代方法来在沉重的服务器上同步cookies而不会被DDOS攻击? 我想享受TCP的function,并为用户提供非常快的内容。

Ubuntu 10.04的默认“sysctl.d / 10-network-security.conf”设置如下:

# Turn on SYN-flood protections. Starting with 2.6.26, there is no loss # of TCP functionality/features under normal conditions. When flood # protections kick in under high unanswered-SYN load, the system # should remain more stable, with a trade off of some loss of TCP # functionality/features (eg TCP Window scaling). net.ipv4.tcp_syncookies=1 

编辑文件/etc/sysctl.conf,运行:

 # vi /etc/sysctl.conf 

附加以下条目:

 net.ipv4.tcp_syncookies = 1 

保存并closures文件。 要重新加载更改,请键入:

 # sysctl -p