从 Yaocheng 那里看到了这篇文章,好东西,需要珍藏下。这里列举了 Linux 下面几个经常遇见的攻击手段和应对手段。以下 iptables 规则应该普遍适应于各种 Linux 版本,只是要注意保存,以免系统重启后失效
初始创建的 TCP 连接必须含 SYN
复制代码
代码如下:
iptables -A INPUT -p tcp ! –syn -m state –state NEW -j DROP
丢弃 Fragments 碎片数据包 (碎片数据包攻击的后果: 可能导致正常数据包丢失)
复制代码
代码如下:
iptables -A INPUT -f -j DROP
防止 SYN 洪水攻击 (限制的速度根据自身情况调整)
复制代码
代码如下:
iptables -A INPUT -p tcp -m state –state NEW -m limit –limit 100/second –limit-burst 300 -j ACCEPT
iptables -A INPUT -p tcp -m state –state NEW -j DROP
iptables -A INPUT -p tcp -m state –state NEW -j DROP
丢弃异常的 XMAS 数据包 (异常的 XMAS 数据包攻击的后果: 可能导致某些系统崩溃)
复制代码
代码如下:
iptables -A INPUT -p tcp –tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp –tcp-flags ALL FIN,PSH,URG -j DROP
iptables -A INPUT -p tcp –tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A INPUT -p tcp –tcp-flags ALL FIN,PSH,URG -j DROP
iptables -A INPUT -p tcp –tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
丢弃 NULL 空数据包
复制代码
代码如下:
iptables -A INPIT -p tcp –tcp-flags ALL NONE -j DROP
允许有限的 TCP RST 请求 (限制的速度根据自身情况调整)
复制代码
代码如下:
iptables -A INPUT -p tcp -m tcp –tcp-flags RST RST -m limit –limit 10/second –limit-burst 30 -j ACCEPT
丢弃无效数据包
复制代码
代码如下:
iptables -A INPUT -m state –state INVALID -j DROP
iptables -A FORWARD -m state –state INVALID -j DROP
iptables -A OUTPUT -m state –state INVALID -j DROP
iptables -A FORWARD -m state –state INVALID -j DROP
iptables -A OUTPUT -m state –state INVALID -j DROP
阻挡欺诈 IP 地址的访问 (以下为 RFC1918 类型和 IANA 预留地址,多为 LAN 或者多播地址,这些是不可能作为公网地址源的)
复制代码
代码如下:
iptables -A INPUT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -s 169.254.0.0/16 -j DROP
iptables -A INPUT -s 172.16.0.0/12 -j DROP
iptables -A INPUT -s 127.0.0.0/8 -j DROP
iptables -A INPUT -s 224.0.0.0/4 -j DROP
iptables -A INPUT -d 224.0.0.0/4 -j DROP
iptables -A INPUT -s 240.0.0.0/5 -j DROP
iptables -A INPUT -d 240.0.0.0/5 -j DROP
iptables -A INPUT -s 0.0.0.0/8 -j DROP
iptables -A INPUT -d 0.0.0.0/8 -j DROP
iptables -A INPUT -d 239.255.255.0/24 -j DROP
iptables -A INPUT -d 255.255.255.255 -j DROP
iptables -A INPUT -s 169.254.0.0/16 -j DROP
iptables -A INPUT -s 172.16.0.0/12 -j DROP
iptables -A INPUT -s 127.0.0.0/8 -j DROP
iptables -A INPUT -s 224.0.0.0/4 -j DROP
iptables -A INPUT -d 224.0.0.0/4 -j DROP
iptables -A INPUT -s 240.0.0.0/5 -j DROP
iptables -A INPUT -d 240.0.0.0/5 -j DROP
iptables -A INPUT -s 0.0.0.0/8 -j DROP
iptables -A INPUT -d 0.0.0.0/8 -j DROP
iptables -A INPUT -d 239.255.255.0/24 -j DROP
iptables -A INPUT -d 255.255.255.255 -j DROP
阻挡自定义的恶意 IP 地址的访问
复制代码
代码如下:
iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
禁止 ICMP PING
复制代码
代码如下:
iptables -A INPUT -p icmp -m icmp –icmp-type echo-request -j DROP