各种网络应用软件一般必须开放一个或者几个端口供外界使用,所以其必定可以 会被恶意攻击者向这几个口发起拒绝服务攻击,其中一个很流行的攻击就是SYN FLOOD,在攻击发生时,客户端的来源IP地址是经过伪造的(spoofed),现行的IP 路由机制仅检查目的IP地址并进行转发,该IP包到达目的主机后返回路径无法通 过路由达到的,于是目的主机无法通过TCP三次握手建立连接。在此期间因为TCP #套接口缓存队列被迅速填满,而拒绝新的连接请求。为了防止这些攻击,部分UNIX 变种采用分离入站的套接口连接请求队列,一队列针对半打开套接口(SYN 接收, SYNACK 发送), 另一队列针对全打开套借口等待一个accept()调用,增加这两队 列可以很好的缓和这些SYN FLOOD攻击并使对服务器的影响减到最小程度: Linux kernel 2.4 #/sbin/sysctl -w net.ipv4.tcp_max_syn_backlog=1280 有效的增加q0的套接口队列大小. #sbin/sysctl -w net.ipv4.tcp_syn_cookies=1 启用TCP SYN cookies支持,能有效的减轻SYN FLOOD的攻击,但是这个参数会对一些大的窗口引起一些性能问题.
\
(出处:http://www.sheup.com)