
自社の 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
からの接続はログに記録しないという考え方です。iptables の間違ったロジックで問題に対処しているのでしょうか? これは iptables で可能なのでしょうか?10.20.0.0/16
10.30.0.0/16
これらは単なるサンプルの 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