複数のIPとのインターフェースのためのファイアウォールcmd転送ルールは何ですか?

複数のIPとのインターフェースのためのファイアウォールcmd転送ルールは何ですか?

Firewall-cmdまたは他のコマンドを使用して、次のことを行う方法を探しています。

受信パブリックインターフェイスには複数のIPアドレスがバインドされています。 IPアドレスの1つだけがポートを転送するにはどうすればよいですか?

bond0 - public:
 192.168.1.100 local machine SSHD bound here.
 192.168.1.200  --->  forward  SSH, HTTPS  to  192.168.1.53 vm bridge on machine 

特定のポートからのすべての着信トラフィックを転送する場合は、この方法は効果的ですが、--forward-port1つの宛先IPへのトラフィックに対してのみこれを実行したいと思います。

別のオプションは、すべてのトラフィックを0.200から0.53 VMにルーティングすることですが、これを行う方法もわかりません。

答え1

$ firewall-cmd --zone=external \
    --add-forward-port=port=80:addr=172.16.1.1:proto=tcp:toport=80:toaddr=192.168.0.2

引用する

「豊富な言語」ルールを使用してください

TCPプロトコルを使用して、ポート4011の1:2:3:4:6::から受信したIPv6パケットをポート4012の1::2:3:4:7に転送します。

rule family="ipv6" source address="1:2:3:4:6::" forward-port to-addr="1::2:3:4:7" to-port="4012" protocol="tcp" port="4011"

  

4.5.3.7.4.5.リッチルールロギングコマンドの使用例5

答え2

私は同じことを検索し、偶然この問題を発見し、最終的に自分で解決策を見つけました。これは単に不可能です--forward-port。強化されたルールが必要です。元のポスターはずっと前に消えましたが、これが私のような検索者に役立つことを願っています。

sudo firewall-cmd --add-rich-rule='rule family=ipv4 destination address="192.168.1.200" forward-port port="1-65535" protocol="tcp" to-addr="192.168.1.53"'
sudo firewall-cmd --add-rich-rule='rule family=ipv4 destination address="192.168.1.200" forward-port port="1-65535" protocol="udp" to-addr="192.168.1.53"'

さまざまなポートや他のIPを転送する理由がなかったため、後者の部分は完全に正確ではないかもしれませんが、関連する部分(元の質問について)はdestination address接続を制限する強化規則の一部です。そのIPを試してみてください。

関連情報