参考【绿盟科技应急快速指南DDOS模块】
一:利用ADS处理DDOS攻击
1、UDP Flood
UDP Flood攻击的判断依据:
UDP Flood攻击的处理步骤:
2、ICMP Flood
此种攻击为攻击主机向目标主机发送大量ICMP请求,目标主机丢弃,大量消耗目标主机资源,达到攻击效果,甚至可能出现ICMP Request报文带负载的情况,这时如果过大就由可能出现分片。
处理步骤:
3、SYN Flood
抓包分析可以看到,大量的syn请求发向目标地址,而syn包的源地址为大量的随机生成的虚假地址。
在目标主机上使用netstat –an命令可以看到大量syn连接,处于syn_received状态
下面这个批处理文件,可以编辑执行。
@echo off
time /t >>SYN.log
netstat -np tcp |find "SYN">>SYN.log
notepad SYN.log
exit
ADS应对SYN Flood攻击:
通常情况下,ADS默认的防护策略就足以应对SYN Flood,但在出现大流量的SYN Flood时,需要调整策略,将防护目标纳入群组中,增大检测SYN Flood专业参数2,以提高反向探测的速率,这样ADS对于SYN Flood攻击的判断就更为准确迅速。
注意:调整专业参数2会影响ADS系统负荷,建议控制在55%以下。
针对SYN FLOOD攻击的防护,ADS有三种算法可供选择:0-SynCheck仅适用于对称流量网络环境;1-SafeConnect和2-DynaCheck适用于非对称流量网络环境和对称流量网络环境。旁路部署下,只能选择算法1-SafeConnect或算法2-DynaCheck。通常建议旁路时采用2-DynaCheck算法。
4、ACK Flood
此种攻击方式为攻击主机向目标主机发送大量含有ack标志位的包,目标主机向攻击主机回复rst标志位的包;或者攻击主机向目标主机发送大量的psh+ack标志位的包,目标主机直接丢弃,最终导致目标主机性能严重下降。
出现此攻击时,抓包查看到的ACK报文比例很大。
ACK Flood攻击由于对系统危害不大,通常需要很大流量才能起效,故可以通过ACK防护专业参数1限制速率。同时由于ADS的ACK Flood防护算法在设计时考虑到通过反向探测来检测攻击,所以防护ACK Flood攻击时,选择SYN Flood防护算法为2-DynaCheck,适当调整SYN Flood专业参数2增强防护效果。
5、Connection Flood
Connection Flood攻击可以分为两种,普通的连接耗尽攻击和HTTP GET攻击。
普通的连接耗尽与目标成功建立连接,可能还会定期发送垃圾数据维持连接,消耗正常连接数,达到拒绝服务的目的。
HTTP GET攻击是利用大量代理向目标发起连接,并发送URL GET请求消耗目标资源,让服务器响应这些请求,达到拒绝服务的目的。
应对这两种攻击,首先应区分开是哪一种。区分依据:
下面这个批处理文件,可以编辑执行,查看EST建立情况。
@echo off
time /t >>EST.log
netstat -np tcp |find "EST">>EST.log
notepad EST.log
exit
抓包查看,是否有很多不合规的HTTP GET请求,或针对少数页面的重复请求。
据统计:正常Web服务器的流量,进出比约为1:7—1:15,包平均大小约为512byte,可以作为一个依据抓包来统计分析判断业务正常或者遭受了攻击。
普通连接耗尽攻击的处理步骤:
HTTP GET攻击的处理步骤:
二:其他设备防护DDOS
1、IPS
IPS具备一定的防护DDOS攻击能力。可以防护SYN Flood、UDP Flood、Ping Flood、HHTP代理和ARP Flood。
防护synflood:导出config.xml文件,修改其中的
防护udpflood:同防护synflood。
防护arpflood:修改
防护HTTP代理:自定义规则选择“高级”方式中“IP”中的“TCP层”,监控字段名为“tcp.data”,方向为“任意”,操作符为“包含”,字段内容为“Proxy-Connection:”。定义事件后由控制台导入即可。
2、WAF
WAF的anti-ddos模块可以防护syn flood 、ack flood、http get flood几种攻击,但注意此模块需要授权。
另外根据抓包分析,如果发现某些来源的访问或针对某些页面的访问明显异常,可以自定义规则过滤。具体自定义规则配置可以参考用户手册有详细介绍,有自定义内容防护规则和自定义爬虫防护规则(爬虫防护也需要授权)。
三:操作系统自身加强DDOS防护
1、Linux主机
编辑/etc/sysctl.conf,添加以下参数:
#增加连接数:
net.ipv4.tcp_max_syn_backlog = 2048
#检查syncookies值:
net.ipv4.tcp_syncookies = 1
#减少重新连接次数:
net.ipv4.tcp_synack_retries = 2
#发送keepalive消息间隔时间修改:
net.ipv4.tcp_keepalive_time = 300
#会话结束等待时间修改:
net.ipv4.tcp_fin_timeout = 20
#TCP检测连接中断的数量修改:
net.ipv4.tcp_keepalive_probes = 4
#把不符合rfc1377文档的包丢弃:
net.ipv4.tcp_rfc1337 = 1
#加快接收客户端的连接速度:
net.ipv4.tcp_abort_on_overflow = 1
修改完毕后,需要执行命令/sbin/sysctl -p,使得配置马上生效。
2、Windows主机
暂无