
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-port
1つの宛先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"
答え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を試してみてください。