使用Linux主机上的iptables实用程序需要创建迷你防火墙。 我需要删除包长度大于722且TTL大于22的所有传入连接。需要完全AND。仅当两个条件都为TRUE时才丢弃。
sudo iptables -N LOGDROP
sudo iptables -A OUTPUT -m ttl --ttl-gt 22 -j LOGDROP
sudo iptables -A INPUT -m ttl --ttl-gt 22 -j LOGDROP
sudo iptables -A LOGDROP -m length --length 722:65535 -j DROP
主机的IP地址为10.6.7.9
,带有防火墙。
我从这台主机做了4次测试,试图ping另一台主机:
ping -s 10000 -t 250 10.6.7.10 //fail (TTL AND LENGHT are wrong)
ping -s 100 -t 200 10.6.7.10 //success (TTL is wrong)
ping -s 10 -t 10 10.6.7.10 //success (Both are right)
ping -s 10000 -t 10 10.6.7.10 // fail, BUT SHOULD BE TRUE.
为什么上次ping不起作用,以及如何解决?谢谢你的帮助。
答案 0 :(得分:0)
问题是回复路径。
使用ping -t
,您只会更改要发送的数据包的TTL。
回复数据包的起始TTL设置为操作系统默认值(Linux中为64)。
因此,在第四种情况下,您的传出数据包的TTL为10,大小为10000。从10.6.7.10返回的数据包的TTL为64,大小为10000,因此将被丢弃。
您可以使用嗅探器(例如wireshark)来验证这一点。