服务器 频道

全面提升BIND DNS服务器安全(下)

    12.增强DNS服务器的防范Dos/DDoS功能

    1.使用SYN cookie

    SYN Cookie是对TCP服务器端的三次握手协议作一些修改,专门用来防范SYN Flood攻击的一种手段。它的原理是,在TCP服务器收到TCP SYN包并返回TCP SYN+ACK包时,不分配一个专门的数据区,而是根据这个SYN包计算出一个cookie值。在收到TCP ACK包时,TCP服务器在根据那个cookie值检查这个TCP ACK包的合法性。如果合法,再分配专门的数据区进行处理未来的TCP连接。在linux下以root权限执行:
 


    2.增大backlog

    通过增加backlog的数值,可以一定程度减缓大量SYN请求导致TCP连接阻塞的状况,一般这个数值系统默认是1024,可以增加到1280至2048:
 


    这样在强度不是很高的攻击下,系统响应能力提高了一点。

    3.缩短retries次数

    Linux系统默认的tcp_synack_retries是5次,将这个数值减少可以提高系统响应能力,为2次:
 


    修改后,SYN_RECV的数量有了少量减少,系统响应也快了一些。

    4.限制SYN频率

    目前比较有效的是对SYN的频率和次数进行限制,这样最大限度的控制了单个IP地址发动攻击的能力。例如将SYN请求的次数限制在30次每分钟,系统默认是5次/秒可以将burst从默认的5个降低到2个。
 


    进行此操作后正常的用户无任何感觉上的差异,而并发的SYN请求量下降了不少,服务响应基本正常了。

    5. 防范SYN Attack攻击

    SYN Attack"是一种拒绝服务(DoS)的攻击方式,会消耗掉系统中的所有资源,迫使服务器重新启动。使用下面的命令:
    # echo 1 > /proc/sys/net/ipv4/tcp_syncookies
    把这个命令加入"/etc/rc.d/rc.local"文件中,等下次系统重新启动的时候就可以自动生效。


0
相关文章