我有大约4个IP地址,随机打到我的networking上的一个端口,我想阻止。 所以我把这样的规则添加到我的OpenWRT路由器中:
iptables -I INPUT -s FIRST_PUBLIC_IP -p tcp --dport 32400 -j DROP iptables -I INPUT -s SECOND_PUBLIC_IP -p tcp --dport 32400 -j DROP iptables -I INPUT -s THIRD_PUBLIC_IP -p tcp --dport 32400 -j DROP iptables -I INPUT -s FOURTH_PUBLIC_IP -p tcp --dport 32400 -j DROP
然后,我也有这个规则,只要有端口连接,就写入日志
iptables -I FORWARD -p tcp --dport 32400 -m limit --limit 1/min -j LOG --log-prefix "PLEX Connection "
所以我认为会发生的是,如果列出的4个IP地址中的1个试图在该端口上连接,他们只会被放弃,并且永远不会进入前向链。 其他一切都会触发该日志规则。
但是,这些IP地址仍然通过FORWARD规则logging。 他们现在活着,并在重新启动时使它们永久。 我忽略了什么?
浏览FORWARD表的数据包不会击中INPUT表。 所以,如果你的数据包实际上正在打FORWARD表,它们可能是natted或类似的东西 – 这是可以的,但这意味着你不能使用INPUT规则来影响它们。
有一个伟大的参考图 – 艰巨的阅读,但很好的参考 – 在维基百科Netfilter条目: https ://en.wikipedia.org/wiki/Netfilter#/media/File:Netfilter-packet-flow.svg。
但是我怀疑你正在做一些数据包的修改,这就是为什么它不是很明显。 考虑把你的规则添加到nat中的PreRouting或者FORWARD表中,看看行为的改变。
祝你好运,如果你需要,请扩展你的问题。