
我想記錄所有外部連接,而不是我們的 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