web-dev-qa-db-ja.com

送信元IPに基づいてポートから転送するにはどうすればよいですか?

ポート514に着信する2つのsyslogソースがあり、ソースIP(graylogサーバーの場合)に基づいて2つの異なるポートに転送したい。

そのポートのすべてを別のローカルポートに転送できます。

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p udp --dport 514 -j REDIRECT --to-port 1514
COMMIT

しかし、ソースIPに基づいてフィルタリングしようとすると、何も起こらないようで、ポート1514に進みます。

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p udp -s $some_ip --dport 514 -j REDIRECT --to-port 1513
-A PREROUTING -p udp -s $some_ip --dport 514 -j REDIRECT --to-port 1514
COMMIT

非常に明白な何かを見逃さなければならないと確信しているので、どんな助けも喜んで感謝されます。

3
Spencer French

ルールを正しいテーブルとチェーンに配置していることを確認してください。昨日、iptablesと同じシナリオで戦っていました。パケットキャプチャを実行して、tcpdump "tcpdump -s0 -w port 514"を使用していると思われるパケットが入っていることを確認してください。パケットのiptablesロギングを設定して、AMDがどのチェーンを通過するかを確認することもできます。 「iptables -nL」および「iptables -S」を使用して、現在のルールとコマンドラインiptables引数を検査します。

https://commons.m.wikimedia.org/wiki/File:Netfilter-packet-flow.svg

2
Kyle H