打印本文 关闭窗口 | ||||
不用防火墙手动对付SYN攻击的办法 | ||||
作者:陈鹏 文章来源:eNet 点击数 更新时间:2009/9/11 23:23:46 文章录入:陈鹏 责任编辑:陈鹏 | ||||
|
||||
一般的SYN Food攻击是利用特殊的程序,设置TCP的Header,向服务器端不断地成倍发送只有SYN标志的TCP连接请求。当服务器接收的时候,都认为是没有建立起来的连接请求,于是为这些请求建立会话,排到缓冲区队列中。如果你的SYN请求超过了服务器能容纳的限度,缓冲区队列满,那么服务器就不再接收新的请求了。其他合法用户的连接都被拒绝掉。此时,服务器已经无法再提供正常的服务了,所以SYN Food攻击是拒绝服务攻击。 检测SYN攻击: 检测SYN攻击非常的方便,当你在服务器上看到大量的半连接状态时,特别是源IP地址是随机的,基本上可以断定这是一次SYN攻击。我们使用系统自带的netstat 工具来检测SYN攻击: # netstat -n -p TCP tcp 0 0 10.11.11.11:23 124.173.152.8:25882 SYN_RECV - tcp 0 0 10.11.11.11:23 236.15.133.204:2577 SYN_RECV - tcp 0 0 10.11.11.11:23 127.160.6.129:51748 SYN_RECV - tcp 0 0 10.11.11.11:23 222.220.13.25:47393 SYN_RECV - tcp 0 0 10.11.11.11:23 212.200.204.182:60427 SYN_RECV - tcp 0 0 10.11.11.11:23 232.115.18.38:278 SYN_RECV - tcp 0 0 10.11.11.11:23 239.116.95.96:5122 SYN_RECV - tcp 0 0 10.11.11.11:23 236.219.139.207:49162 SYN_RECV - ... 上面是在LINUX系统中看到的,很多连接处于SYN_RECV状态(在WINDOWS系统中是SYN_RECEIVED状态),源IP地址都是随机的,表明这是一种带有IP欺骗的SYN攻击。 我们也可以通过下面的命令直接查看在LINUX环境下某个端囗的未连接队列的条目数: #netstat -n -p TCP grep SYN_RECV grep :22 wc -l 324 显示TCP端囗22的未连接数有324个,虽然还远达不到系统极限,但应该引起管理员的注意。 如何做好设置: 对于SYN Flood攻击,目前尚没有很好的监测和防御方法,不过如果系统管理员熟悉攻击方法和系统架构,通过一系列的设定,也能从一定程度上降低被攻击系统的负荷,减轻负面的影响。 对于WindowsNT/2000而言,它的SYN攻击保护机制可以这样考虑:正常情况下,OS对TCP连接的一些重要参数有一个常规的设置:SYN Timeout时间、SYN-ACK的重试次数、SYN报文从路由器到系统再到Winsock的延时等等。这个常规设置针对系统优化,可以给用户提供方便快捷的服务;一旦服务器受到攻击,SYN Half link 的数量超过系统中TCP活动 Half Connction最大连接数的设置,系统将会认为自己受到了SYN Flood攻击,并将根据攻击的判断情况作出反应:减短SYN Timeout时间、减少SYN-ACK的重试次数、自动对缓冲区中的报文进行延时等等措施,力图将攻击危害减到最低。如果攻击继续,超过了系统允许的最大Half Connection 值,系统已经不能提供正常的服务了,为了保证系统不崩溃,可以将任何超出最大Half Connection 值范围的SYN报文随机丢弃,保证系统的稳定性。 被攻击时如何手动防御: 一般服务器被SYN Flood攻击时,通过上面所说的 netstat 命令可以看到攻击者的IP记录,确定被攻击以后采取的对应办法: 以75.156.25.192这个IP为例子,我们用封IP段来对付攻击: 打开本地安全设置,点“IP安全策略,在本地机器”—>创建IP安全策略—>下一步—>名称随便写,如输入阻止,然后一直点下一步,出现提示点是,一直到完成,这个时候就创建了一个名为“阻止”的策略了。 下面点“IP安全策略,在本地机器”—>管理IP筛选器表和筛选器操作—>点添加—>名称添75.156.25(为了识别最好填写对应的IP段)—>点添加—>下一步—>源地址选择一个特定的IP子网,IP输入75.156.25.0 子网掩码改为255.255.255.0—>下一步—>目标地址选择我的IP地址—>下一步—>协议类型为任意—>下一步—>完成,全部关闭。 下面点我们开始建立的名为“阻止”的策略,点属性—>填加—>下一步—>下一步网络类型选择所有网络连接—>下一步—>出现提示点是—>到IP筛选列表,点中我们刚才创建的名为75.156.25的选项—>下一步—>选择阻止—>下一步到完成、关闭。 最后点“阻止”这个策略,右键,指派,到这里为止我们就已经阻止了75.156.25开头的网段了,当然也阻止了75.156.25.192这个IP的攻击了,如还要封其他IP的攻击同样操作即可。 用这个方法可以完全阻止SYN Flood攻击,麻烦的一点就是要自己手动查看攻击的代理IP和填加IP策略。
【责任编辑 彭凡】 |
||||
打印本文 关闭窗口 |