歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> iptables防火牆實現阻擋常見攻擊的實用設置分享

iptables防火牆實現阻擋常見攻擊的實用設置分享

日期:2017/3/1 17:50:09   编辑:Linux技術

從 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

Copyright © Linux教程網 All Rights Reserved