web-dev-qa-db-ja.com

リモートで閉じたポートを使用してVPNの背後でホストされているWebサーバーにアクセスしますか?

現在、次の設定があります。

Win Server 2008

-------> Mint 16 Cinnamon VM外部VPNを介してトンネリング(OpenVPNを使用)

--------------->ローカルネットワークアクセス用の内部Webサーバー

WebサーバーがVPNの背後でトンネリングされているときに、外部ISPのIPアドレスを使用してそのWebサーバーにアクセスする方法はありますか?VPN側でポートフォワードする必要はありませんか?

例として、別のVM)でWebサーバーをホストすること、またはそのローカルサーバーにリダイレクトするかポインターとして機能するホストOS(... mod_rewriteやredirectのように?) 、VPNサーバーでファイアウォールルールを構成するためのアクセス権を必要とせずに外部からアクセスできるようにしますか?

例えば:

ホストOS

-----> VM 1、VPN + Webサーバー、ローカルアダプターIPは192.168.1.2(ホームネットワーク)、VPNトンネルIPは10.x.x.x、すべての外部トラフィックはVPN経由でルーティングされます。

--------------> VM 2、ローカルアダプタIPは192.168.1.3、Webサーバーはポート80で実行され、192.168.1.2でホストされているページを指します: 80であり、ポート転送ローカルルーターを介した外部表示を可能にします。

現在、ローカルネットワーク上のすべてのデバイスがこのWebサーバーに正常にアクセスできます。

その考えに失敗した場合、特定のプログラムが特定のインターフェイス(つまり、ローカルイーサネットインターフェイス)を介してのみトラフィックを送信するように強制したり、特定のポートがVPNではなくISPゲートウェイを介してルーティングするように強制したりします(OSレベル)。

フィードバックに感謝します。

3
anditpaintsme

はい、それはあなたがLinux[〜#〜] vm [〜]であなたのウェブサーバーを実行しているという事実のおかげで行うことができます#〜]。最初の事実(Linuxを使用しているということ)は絶対的な前提条件であり、2番目の事実(それは物理マシンではなくVMであるということ)はそれをより簡単でより安価にします。

VPNを設定すると、ルーティングテーブルが変更され、(あなたの場合は)すべてのトラフィックが別のサーバーを通過する必要があることが確立されます。ローカルルーターを介して接続が確立された場合、Mint VMは、認識している唯一のテーブルieVPN経由。ただし、Webサーバーに接続しようとしているPCは、VPN以外のアドレスへのクエリが別のサードパーティのVPNサーバーによって応答されていることを確認します。明らかなセキュリティ上の理由から、これらの返信はすぐに破棄されます。

この問題を解決するために、Linuxには、2つ(またはそれ以上)の異なるルーティングテーブルを処理する機能があり、それぞれをいつ使用するかを指定するルールがあります。したがって、Mintに2番目のインターフェイスを作成することですVM(それをeth1)と呼びましょう)、 LAN上にIPアドレスがあることを確認してください(VirtualBoxを使用している場合は、bridgedインターフェイスを作成することを意味します。

これで、2つのルーティングテーブルを設定するだけで、OpenVPN経由で通信が着信した場合、OpenVPNによって設定されたルーティングテーブルによって応答されますが、LAN経由で着信した場合はNICeth1)と呼びましたが、トラフィックの発信元をルーティングする別のルーティングテーブルが応答しますieローカルルーター、not OpenVPNサーバー。

これは次のように行います。

vPNを開始する前に、2つのテーブルを作成します。メイン(OpenVPNで使用される予定のテーブル)とNONVPNと呼びます。

 echo 200 main >> /etc/iproute2/rt_tables
 echo 201 NONVPN >> /etc/iproute2/rt_tables

各ルーティングテーブルにゲートウェイを追加します(必要な場合)。

 ip route add 192.168.1.0/24 dev eth0 src <SRC1> table main
 ip route add 192.168.1.0/24 dev eth1 src <SRC2> table NONVPN

次に、デフォルトルート:

 ip route add default via 192.168.1.1 table main
 ip route add default via 192.168.1.1 table NONVPN

ここで、192.168.1.1はローカルルーター、192.168.1.0/24はLANであると想定しました。

これでVPNを開始できます。VPNはメインルーティングテーブルを変更します。

最後に、送信元アドレスに基づいてルートテーブルを選択するためのルールは次のとおりです。

 ip rule add from 10.0.0.0/24 table main
 ip rule add from 192.168.1.0/24 table NONVPN  

openVPNトンネルのアドレスが10.0.0.0/24の範囲であると仮定した場合は、それに応じて変更します。

これで完了です。

3
MariusMatutiae