Linux

Linux:無效的 TCP 標誌

  • August 29, 2015

教程和書籍中經常建議使用 iptables 過濾無效的 TCP 標誌。我想知道這些是否還沒有被核心本身或 iptables 狀態模組過濾。有沒有人有這方面的進一步資訊?

我猜TCP規範並沒有禁止一些無效的標誌配置。一些系統可能會選擇發送(或曾經發送)奇怪的標誌組合,但現在只有“壞人”發送它們(用於 FIN 掃描等),因此建議將它們過濾掉。

順便說一下,這裡是我用來過濾它們的 iptables 規則(可能是從frozentux iptables 教程中得到的)

#new not syn
-A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP

-A bad_tcp_packets -p tcp --tcp-flags ALL NONE -j DROP
-A bad_tcp_packets -p tcp --tcp-flags ALL ALL -j DROP
-A bad_tcp_packets -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
-A bad_tcp_packets -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
-A bad_tcp_packets -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A bad_tcp_packets -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

引用自:https://serverfault.com/questions/206154