欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

iptables防火墙实现阻挡常见攻击的实用设置分享

程序员文章站 2022-05-20 18:27:50
这篇文章主要介绍了iptables防火墙实现阻挡常见攻击的实用设置分享,本文讲解了防止 SYN 洪水攻击、丢弃 NULL 空数据包、丢弃异常的 XMAS 数据包、丢弃无效数据包等应对异常数据的设置... 15-03-25...

从 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

丢弃异常的 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

丢弃 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

阻挡欺诈 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

阻挡自定义的恶意 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