Linux
Linux:無效的 TCP 標誌
教程和書籍中經常建議使用 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