web-dev-qa-db-ja.com

CentOS6.xをポートフォワーディングにするNATデバイス

CentOSをポートフォワーディングNAT iptablesを使用するマシンにしたい。これを試したのはこれが初めてで、少し助けが必要かもしれないと思う。

これは私が達成しようとしている構成です。ポート5500でCentOSマシンを介してリモートデスクトップ接続を確立し、CentOSをポート3389でサーバーに接続しようとしています。

enter image description here

192.168.21.11は、ポート5500で192.168.21.10(CentOS)に接続することにより、192.168.9.120のポート3389に接続する必要があるクライアントです。

  • CentOSeth0は192.168.9.20/24です
  • CentOSeth1は192.168.21.10/24です

私がこれまでに試したこと:

  1. SELINUXを無効にしました
  2. /etc/sysctl.confでIPv4転送を有効にしました

    /etc/sysctl.conf
    net.ipv4.ip_forward = 1
    
  3. 次の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ルールに何か問題がありますか?それとも私が見逃しているかもしれない何かがありますか?

1
Andy Arismendi

-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

1
B14D3

追加してみてください:

iptables -A FORWARD -i eth1 -j ACCEPT
iptables -A FORWARD -o eth1 -j ACCEPT
0
dmourati

iptables -Aiptables -Iの違いについて 読んで 、システムのデフォルトのルールを確認する必要があります。違いが原因で、少なくともINPUTルールが機能しない可能性がかなり高いようです。

/etc/sysctl.confに値を設定しても、実行中のカーネルには設定されません。 sysctl(8) manページはあなたの友達です。

SELinuxを無効にするだけでなく、保護するためにあります。

0
user9517