CentOSをポートフォワーディングNAT iptablesを使用するマシンにしたい。これを試したのはこれが初めてで、少し助けが必要かもしれないと思う。
これは私が達成しようとしている構成です。ポート5500でCentOSマシンを介してリモートデスクトップ接続を確立し、CentOSをポート3389でサーバーに接続しようとしています。
192.168.21.11は、ポート5500で192.168.21.10(CentOS)に接続することにより、192.168.9.120のポート3389に接続する必要があるクライアントです。
私がこれまでに試したこと:
/etc/sysctl.confでIPv4転送を有効にしました
/etc/sysctl.conf
net.ipv4.ip_forward = 1
次のiptablesコマンドを実行しました
iptables -t nat -A PREROUTING -p tcp -d 192.168.21.10 --dport 5500 -j DNAT --to 192.168.9.120:3389
iptables -A INPUT -i eth1 -p tcp --dport 5500 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 5500 -m state --state ESTABLISHED -j ACCEPT
service iptables save
この構成を保存した後、達成しようとしているリモートデスクトップ接続を確立できませんでした。それで、iptablesルールに何か問題がありますか?それとも私が見逃しているかもしれない何かがありますか?
-A PREROUTING -p tcp -d 192.168.21.10 --dport 5500 -j DNAT --to 192.168.9.120:3389
の直後にこのルールを/ etc/sysconfig/iptablesに追加してみてください
-A POSTROUTING -d 192.168.9.120 -j MASQUERADE
2番目に、 'sysctl -a |を実行して、net.ipv4.ip_forwardが1に設定されているかどうかを確認します。 grep net.ipv4.ip_forward`
それでも0に設定されている場合は、次を実行します。
sysctl -w net.ipv4.ip_forward=1
追加してみてください:
iptables -A FORWARD -i eth1 -j ACCEPT
iptables -A FORWARD -o eth1 -j ACCEPT