在教程和书籍中经常建议使用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