web-dev-qa-db-ja.com

基本的なiptables NATポート転送

私は3台のマシンを持っています:ローカルPC(パブリックIP 1.2.3.4)、データセンターのUbuntu 10サーバーボックス(5.6.7.8パブリックIPのeth0)、およびネットワーク外のWebサイトをホストしているサードパーティサーバー(たとえば、 216.34.181.45のスラッシュドット)。

  • Iptablesを使用して、5.6.7.8:8080を使用してローカルマシンからSlashdotにアクセスするにはどうすればよいですか?
  • Slashdotが私のUbuntuボックスと同じLAN上にあった場合、このプロセスは異なりますか?
  • NAT PREROUTING/POSTROUTINGだけでこれを実行できますか、それともMASQUERADEが必要ですか?
7
jetboy
   PC ----- Ubuntu 10 Server ----- Slashdot 
(1.2.3.4)      (5.6.7.8)        (216.34.181.45)
  1. UbuntuでIP転送を有効にします。

    echo 1 > /proc/sys/net/ipv4/ip_forward
    

    次のルールを追加します。

    iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 8080 -j DNAT \
                                           --to-destination 216.34.181.45:80 
    iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 5.6.7.8
    
  2. 番号。

  3. Ubuntuに動的IPがある場合は、MASQUERADEを使用する必要があります。

    iptables -t nat -A POSTROUTING -j MASQUERADE
    

この場合は、Ubuntuで次のコマンドを実行して、SSHローカルポートフォワーディングを使用することもできます。

$ ssh -L 5.6.7.8:8080:216.34.181.45:80 -N [email protected]

これを行う別の(またはそれ以上の)方法があります。 rinetd を見てください。

Name       : rinetd
Arch       : i386
Version    : 0.62
Release    : 6.el5.art
Size       : 41 k
Repo       : installed
Summary    : TCP redirection server
URL        : http://www.boutell.com/rinetd
License    : GPL
Description: rinetd is a daemon which redirects TCP connections from one IP address
           : and port to another IP address and port. This daemon is often used to
           : access services behind a firewall.

設定は非常に簡単です。以下の行を/etc/rinetd.confに追加します。

5.6.7.8 8080 216.34.181.45 80

そして開始:

# /etc/init.d/rinetd start
Starting rinetd:                                           [  OK  ]

それはあなたのためにすべてを行います。

20
quanta