從 Yaocheng 那里看到了這篇文章,好東西,需要珍藏下。這里列舉了 Linux 下面幾個(gè)經(jīng)常遇見的攻擊手段和應(yīng)對(duì)手段。以下 iptables 規(guī)則應(yīng)該普遍適應(yīng)于各種 Linux 版本,只是要注意保存,以免系統(tǒng)重啟后失效
初始創(chuàng)建的 TCP 連接必須含 SYN
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
丟棄 Fragments 碎片數(shù)據(jù)包 (碎片數(shù)據(jù)包攻擊的后果: 可能導(dǎo)致正常數(shù)據(jù)包丟失)
iptables -A INPUT -f -j DROP
防止 SYN 洪水攻擊 (限制的速度根據(jù)自身情況調(diào)整)
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 數(shù)據(jù)包 (異常的 XMAS 數(shù)據(jù)包攻擊的后果: 可能導(dǎo)致某些系統(tǒng)崩潰)
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 空數(shù)據(jù)包
iptables -A INPIT -p tcp --tcp-flags ALL NONE -j DROP
允許有限的 TCP RST 請(qǐng)求 (限制的速度根據(jù)自身情況調(diào)整)
iptables -A INPUT -p tcp -m tcp --tcp-flags RST RST -m limit --limit 10/second --limit-burst 30 -j ACCEPT
丟棄無效數(shù)據(jù)包
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 預(yù)留地址,多為 LAN 或者多播地址,這些是不可能作為公網(wǎng)地址源的)
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