OpenVPN クライアントですべてのトラフィックをサーバー経由で転送する

OpenVPN クライアントですべてのトラフィックをサーバー経由で転送する

私は、すべてのクライアント トラフィックがサーバー経由でルーティングされる OpenVPN サーバーとクライアントを設定しようとしています。現在、クライアント経由でサーバーにアクセスできますが、サーバーで「push "redirect-gateway def1"」を有効にすると、クライアントはインターネット、VPN、またはその他の接続機能をすべて失います。さらに、LAN 接続はまだ正常ですが、サーバーに接続できなくなります。私のサーバー構成ファイルは次のとおりです。

local ***.***

port 1194

proto tcp

dev tun

ca ca.crt
cert server.crt
key server.key

dh dh2048.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "redirect-gateway local def1"

keepalive 10 120

comp-lzo

persist-key
persist-tun

status openvpn-status.log

verb 3

そして、クライアントは次のようになります。

client

dev tun

proto tcp

remote ***.*** 1194

resolv-retry infinite

nobind

persist-key
persist-tun

ca ca.crt
cert laptop.crt
key laptop.key

ns-cert-type server

comp-lzo

verb 3

サーバー上で、IP 転送を有効にし、iptables 経由のルーティングを有効にしました。

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

しかし、クライアントは依然として VPN またはインターネット上のどこにも接続できません。

答え1

参考までに、HOWTOの関連セクションはここ、あなたはそれをすでに実行したと思いますが。

まず試したいのは「local」を削除することです。つまり、コマンドは次のようになります。

push "redirect-gateway def1"

そしてそうではない

push "redirect-gateway local def1"

ローカル フラグは、すべてのクライアントが同じサブネット上にある場合にのみ機能します。

他に注意すべき点としては、DNS トラフィックは VPN 経由でルーティングされるため、その処理を行わない限りアドレスを解決できないということです。DHCP も転送される可能性がありますが、ブリッジ VPN ではなくルーティング VPN を使用しているため、このケースではこれが発生する可能性は低いようですが、とにかく確認する価値はあるかもしれません。

答え2

新しいゲートウェイをクライアントに「プッシュ」する場合は、いくつかのルート、特にそのゲートウェイが存在するサブネットへのルートもプッシュする必要があります。これにより、VPN 経由でインターネットにアクセスできるようになります。ゲートウェイが存在するネットワークが VPN サーバーが存在するネットワークと異なる場合は、クライアントがこれらの他のネットワークにアクセスできるように、追加のルートも必要です。さらに、DNS サーバーもクライアントにプッシュする必要があります。そうしないと、クライアントは現在接続しているネットワーク上のターゲットの名前を解決できないためです。

以下は OpenVPN サーバー構成ファイルからの抜粋です。

# ルートをクライアントにプッシュしてローカルにバインドする
# 仮想エンドポイント。
#
「ルート 10.180.0.1 255.255.255.255」をプッシュします

# クライアントがアクセスする必要があるルートをプッシュします
# ローカルネットワークへ。
#
「ルート 10.171.0.0 255.255.0.0」をプッシュします
「ルート 10.172.0.0 255.255.0.0」をプッシュします
「ルート 10.173.0.0 255.255.0.0」をプッシュします
「ルート 10.174.0.0 255.255.0.0」をプッシュします
「ルート 10.175.0.0 255.255.0.0」をプッシュします
「ルート 10.176.0.0 255.255.0.0」をプッシュします
「ルート 10.177.0.0 255.255.0.0」をプッシュします
「ルート 10.181.0.0 255.255.0.0」をプッシュします
「ルート 10.182.0.0 255.255.0.0」をプッシュします
「ルート 192.168.61.0 255.255.255.0」をプッシュします

# DHCP オプションを Windows クライアントにプッシュします。
#
「dhcp-option DOMAIN our-internal-domain.com」をプッシュします
「dhcp-option DNS 10.abc」をプッシュします
「dhcp-option WINS 10.bcd」をプッシュします

これらはすべて内部ネットワークであり、新しいゲートウェイをプッシュすることもありません (ほとんどのユーザーは遠くから接続するため、デフォルト ゲートウェイを介してインターネットにアクセスする方が適切であり、当社は制御フリークではありません)。

答え3

実際、問題は NAT が正しく設定されていなかったことです。修正され、VPN は現在動作しています。

関連情報