VPN接続をルーティングする方法


0

Ubuntu Server 12.04を実行している - 私はVPNサーバーに接続したいです。 eth0 そしてその出力を eth1 だから私は私の自宅のPCをに接続することができます eth1。どうすればこれを達成できますか?

回答:


0

サーバーに単一のLinuxベースのファイアウォールと次の2つのイーサネットカードがあるとします。

eth1(パブリックIP)============= {インターネット}
eth0(内部ネットワーク/192.168.0.0/24)============== 192.168.0.1

tun0は10.8.0.1としてVPNとして構成され、VPNネットワーク全体は10.8.0.0/24として構成されています。

そのような場合、これが機能するのに必要なiptablesの規則は、次のようになります。

 # Allow traffic initiated from VPN to access LAN
    iptables -I FORWARD -i tun0 -o eth0 \
         -s 10.8.0.0/24 -d 192.168.0.0/24 \
         -m conntrack --ctstate NEW -j ACCEPT

    # Allow traffic initiated from VPN to access "the world"
    iptables -I FORWARD -i tun0 -o eth1 \
         -s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT

    # Allow traffic initiated from LAN to access "the world"
    iptables -I FORWARD -i eth0 -o eth1 \
         -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT

    # Allow established traffic to pass back and forth
    iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED \
         -j ACCEPT

    # Notice that -I is used, so when listing it (iptables -vxnL) it
    # will be reversed.  This is intentional in this demonstration.

    # Masquerade traffic from VPN to "the world" -- done in the nat table
    iptables -t nat -I POSTROUTING -o eth1 \
          -s 10.8.0.0/24 -j MASQUERADE

    # Masquerade traffic from LAN to "the world"
    iptables -t nat -I POSTROUTING -o eth1 \
          -s 192.168.0.0/24 -j MASQUERADE

それが役立つことを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.