我想记录所有外部(而非我们的 IP 块)到端口的连接。对于单个范围,规则如下:
-A INPUT ! -s 10.20.0.0/16 -p tcp -m tcp --dport 8443 -m state --state NEW -j LOG --log-level 1 --log-prefix "New 8443 Connection"
8443
从逻辑上讲,这个想法是,如果连接来自10.20.0.0/16
或 ,则不记录到端口的连接10.30.0.0/16
。我是否使用错误的 iptables 逻辑来解决问题?使用 iptables 是否可能做到这一点?
请注意,这些只是示例 IP 范围,而不是我想要停止写入日志条目的 IP 范围。
答案1
您可以使用 ipset:
-A INPUT -p tcp -m tcp --dport 8443 -m set ! --match-set OUR_IP4 src -j LOG
请注意,必须使用单独的工具(包括启动时创建/恢复)来维护 ipset。
您可以使用子链:
-A INPUT -p tcp -m tcp --dport 8443 -j FOOSERVICE
-N FOOSERVICE
-A FOOSERVICE -s 10.20.0.0/16 -j RETURN
-A FOOSERVICE -s 10.30.0.0/16 -j RETURN
-A FOOSERVICE -j LOG --log-prefix "New connection to foo: "
-A FOOSERVICE -j RETURN
# optional; subchains always return at the end