質問

iptablesを使用してUDPパケットの宛先ポートを変更することは可能ですか?

SNMPエージェントを取得して、162ではなく1620にトラップを送信しようとしています。残念ながら、これまでのところ、ソースポートを変更することしかできませんでした。

  

iptables -t nat -Aポストルーティング-p udp   --dport 162 -j SNAT --to:1620

役に立ちましたか?

解決

この使用法は明らかにサポートされていません。 http://www.netfilter.org/documentation/HOWTO/NAT-から取得HOWTO.txt

  

6.3.7。ローカルで生成された接続の宛先の変更

     

NATコードを使用すると、   OUTPUTチェーンのDNATルール、ただし
  これは2.4では完全にはサポートされていません(それは   可能ですが、新しい
が必要です   設定オプション、いくつかのテスト、   かなりのコーディングが必要です   誰かがそれを書くためにラスティと契約する、私   すぐには期待しません)。

     

現在の制限は、   宛先を
にのみ変更できます   ローカルマシン(例: `j DNAT --to   127.0.0.1 ')、他のマシンではなく、そうでない場合、応答はありません   正しく翻訳されます。

他のヒント

送信先のマシンを知っていると仮定すると:

iptables -t nat -A OUTPUT -p udp --dport 162 -j DNAT --to-destination <dest-ip>:1620

162を1620にリダイレクトできます

iptables -t nat -A PREROUTING -p UDP --dport 162 -j REDIRECT --to-port 1620

@PiedPiperは正しかった。 DNATでは、IPアドレスを指定する必要がありますが、ポートのリダイレクトのみを行うため、この場合-j REDIRECTが機能する可能性があります。

http://www.netfilterを参照.org / documentation / HOWTO // NAT-HOWTO-6.html#ss6.2

SNATを作成する代わりに、DNATを試してください。 SNATはSourceNATを意味するため、ソースポートが変更されるため、DNATが機能します。

迂回ルールを設定し、変更されたポートでパケットを再注入できます。

これはMac OS Xでしばらく前に行ったことがありますが、Linuxでも同じ原理です。 http://blog.dv8。 ro / 2006/08 / using-divert-sockets-on-mac-os-x.html

基本的には、非常に単純な透過プロキシを作成する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top