各种网络应用软件一般必须开放一个或者几个端口供外界使用,所以其必定可以
会被恶意攻击者向这几个口发起拒绝服务攻击,其中一个很流行的攻击就是SYN
FLOOD,在攻击发生时,客户端的来源IP地址是经过伪造的(spoofed),现行的IP
路由机制仅检查目的IP地址并进行转发,该IP包到达目的主机后返回路径无法通
过路由达到的,于是目的主机无法通过TCP三次握手建立连接。在此期间因为TCP
#套接口缓存队列被迅速填满,而拒绝新的连接请求。为了防止这些攻击,部分UNIX
变种采用分离入站的套接口连接请求队列,一队列针对半打开套接口(SYN 接收,
SYN|ACK 发送), 另一队列针对全打开套借口等待一个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的攻击,但是这个参数会对一些大的窗口引起一些性能问题.