パブリックIPをリモートマシンにトンネリングする


8

5つのパブリックIPアドレスのブロックを持つLinuxサーバーAがあります8.8.8.122/29。現在、8.8.8.122に割り当てられてeth0おり、8.8.8.123に割り当てられていeth0:1ます。

NATの背後にある別のLinuxマシンBがリモートの場所にあります。BがIPアドレス8.8.8.123をプライマリIPアドレスとして使用できるように、2つの間にトンネルを設定したいと思います。

おそらくOpenVPNが答えですが、セットアップ方法がわかりません(topology subnetまたはtopology p2p適切な場合があります。イーサネットブリッジを使用する必要がありますか?)。この時点ではセキュリティと暗号化は大きな問題ではないため、GREも問題ありません。マシンBは既知のIPアドレスから取得され、それに基づいて認証できます。

これどうやってするの?この状況で機能するOpenVPN構成またはその他のアプローチを誰かが提案できますか?理想的には、これらのクライアントに資格のないIPを使用させずに、複数のクライアントを処理することもできます(たとえば、4つのスペアIPをすべて他のマシンと共有する)。


両方の場所にあるファイアウォールは何ですか?
Robert

1
実際にGoogleで働いているのではなく、これらのアドレスを作成していただければ幸いです。そうしないと、アドレス空間を使用できなくなります。
マイケルハンプトン

Robert:Aは、いくつかの単純なiptablesルールを持つLinuxサーバーです。 Bは、別のLinuxサーバーを実行しているNATの背後にありますshorewall
ジム・パリ

マイケル:はい、最初の3つのオクテットを8に変更して難読化しましたが、それでも公開されていることを示しています。すみません、Google。
ジム・パリ

回答:


7

結局、イーサネットブリッジを使用することになりました。オンラインを通り抜けるための非常に冗長な例がたくさんありますが、それは非常に簡単であることがわかります:

まず、Aで次のよう/etc/network/interfacesに変更されました:

auto eth0
iface eth0 inet static
    address 8.8.8.122
    netmask 255.255.255.248
    gateway 8.8.8.121

に:

auto br0
iface br0 inet static
    address 8.8.8.122
    netmask 255.255.255.248
    gateway 8.8.8.121
    pre-up openvpn --mktun --dev tap0
    bridge_ports eth0 tap0
    bridge_fd 3

ブート時に(eth0実際のWANインターフェイス)とtap0(新しいトンネルインターフェイス)をブリッジするため。

次に、Aでopenvpnサーバーを実行します。

openvpn --dev tap0

B、とそれに接続します。

openvpn --remote 8.8.8.122 --dev tap0 --route-gateway 8.8.8.121 \
        --redirect-gateway def1 --ifconfig 8.8.8.123 255.255.255.248

これは私が探していた非常にシンプルな構成であり、機能します。Bは8.8.8.123でパブリックにアクセスでき、発信接続は同じアドレスから発信されます。

(セキュリティを追加し--secret--tls-server必要に応じてもちろん、など)。


いいね!やってみます。「それらのクライアントに資格のないIPを使用させることなく」を構成する方法を見つけましたか?
Bastian

私は(一時的な)セットアップで気にしませんでしたが、ebtablesでそれができると思います。
ジム・パリ

非常に便利。質問:Aから2つのIPをルーティングする必要がある場合、A構成で何を変更する必要がありますか:A => BおよびA => C(Cは別のホストです)?別のブリッジを構成する必要がありますか?
frhack

2
うん。pre-up openvpn作成する別の行をtap1追加tap1bridge_ports、に追加して、でopenvpnの別のインスタンスを実行しopenvpn --dev tap1ます。
ジム・パリ

AのゲートウェイをB経由でローカルにして、LAN上のすべてのシステムがBを使用し、リモートのデフォルトゲートウェイを割り当て、パブリックIPを使用したい場合はどうでしょうか。
Areeb Soo Yasir 2017

1

あなたは私が思うに苦労するでしょう。VPNの両側が同じサブネット内にある場合、ほとんどのファイアウォールはOpenVPNトラフィックのルーティングが困難になります。

パブリックアクセスにルーティングする場合は、両方のサーバーをパブリックアドレスから別のサブネットに移動し、仮想IP(1から1 Nat)を使用してそれらを接続します。2つのサイトを接続するには、OpenVPNまたはIP-Secトンネルが機能します。

仮想IP:http : //doc.pfsense.org/index.php/What_are_Virtual_IP_Addresses%3F

サイト間:http : //doc.pfsense.org/index.php/VPN_Capability_IPsec

コメントに基づいて編集:

私は個人的にAボックスにpfSenseをインストールし、WANに必要なポートを割り当てます。次に、ローカルサブネット上にOpenVPNサーバーをセットアップし(これはすべてpfSense Webインターフェイスに進む準備ができています)、ローカルのOpenVPN IPを指す仮想IPで他のマシンをセットアップします。これにより、後で拡張する余地があります(仮想IPを備えたマシンをさらに追加し、特定のポートを別のサーバーに論理的に転送し、仮想アクセス用のOpenVPNを備えた本格的なLAN / WAN / DMZ設定を実際に持っています。言うまでもなく、本格的なルーターなので、より安全です。


中間ファイアウォールがどのように関与しているかはわかりません。彼らは確かにABの間のOpenVPNパケットの内部を見ていません。OpenVPN構成自体についてはpush "route 50.7.19.122 255.255.255.255 net_gateway"、VPNデータが通常のネットワークを介してプッシュされることを保証するようなものが期待されていました。
ジム・パリ

明確にするために、両端の別々のファイアウォールではなく、ABの間に直接トンネルを作成したいと思います。
ジム・パリ

1
しかし、コンピュータAがコンピュータBにルーティングする場合、WAN(パブリックIPを使用)、LAN(静的IPを使用)、またはOpenVPN(パブリックIPも使用)を使用する必要があるかどうかはわかりません。同じサブネット。BからAは機能するはずです。
Robert

1
また、これも機能していますが、パブリックIPでは機能しません。どちらの方法でも、仮想IPの方がはるかに優れていると思います。openvpn.net/index.php/open-source/documentation/miscellaneous/...
ロバート・

「明確にするために、両端の別々のファイアウォールではなく、AとBの間に直接トンネルを作成したいのです。」OpenVPNサーバーのどこかにポートを開く必要があります
Robert
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.