现在很多 DDoS 攻击都是直接 udp 发包的,也就是 UDP Flood DDoS Attack。
一、什么是 UDP Flood 攻击
UDPFlood是一种流量型DoS攻击,原理也很简单。常见的情况是利用大量UDP小包冲击DNS服务器或Radius认证服务器、流媒体视频服务器。100k bps的UDPFlood经常将线路上的骨干设备例如防火墙打瘫,造成整个网段的瘫痪。由于UDP协议是一种无连接的服务,在UDPFLOOD攻击中,攻击者可发送大量伪造源IP地址的小UDP包。但是,由于UDP协议是无连接性的,所以只要开了一个UDP的端口提供相关服务的话,那么就可针对相关的服务进行攻击。
二、通过 iptables 禁止 udp 发包
这个脚本原理也很简单,网站服务器一般都是使用 TCP 连接,通常只有 DNS才会使用 UDP 协议,所以防范UDP攻击时可以只允许目标 DNS 服务器的 UDP 数据包外出,其它 UDP 数据包全部丢弃DROP:
list=`grep nameserver /etc/resolv.conf |awk '{print $NF}'`
for i in $list
do
iptables -A OUTPUT -p udp -d $i --dport 53 -j ACCEPT
done
iptables -A OUTPUT -p udp -j DROP
service iptables save