一个任务:
禁止接收和发送所有大小超过512字节,且TTL字段大于30的数据包
我是否正确理解了 TTL 看起来是这样的:
iptables -t mangle -A input -j TTL --ttl-set 30 ?
但是我还需要在这个规则里指定数据包不超过512字节,我该怎么做?
答案1
你的规则是改变将 TTL 设置为指定值 – 它不会查看原始 TTL,因此它实现的效果与您想要的完全相反。(使用的所有大写模块-j SOMEACTION
都是操作而不是匹配规则,并且--ttl-set
几乎表明它将设置 TTL。)
到匹配对于 TTL,请在操作前面使用ttl
模块,例如。同样,要匹配数据包长度,请使用模块,例如。-m ttl --ttl-gt 30
length
-m length --length 0:512
然后,您可以使用两个单独的规则来丢弃数据包(一个匹配太大的数据包,另一个匹配太大的 TTL),或者您可以使用一个规则来接受同时满足两个要求的数据包(两个匹配模块都在同一条规则中指定)。