web-dev-qa-db-ja.com

OpenVPNでリモートネットワークにアクセスする方法

私は現在、OpenVPNを設定して会社のネットワークにリモートでアクセスしようとしています。

接続を確立し、構成されたアドレス(10.8.0.1)でサーバーにpingを実行できましたが、クライアントからサーバー側のネットワークにアクセスできませんでした。

サーバーは、ルートをサーバーにプッシュするように構成されています。

Push "route 155.0.0.0 255.255.0.0 10.8.0.1 1"

ここで、155.0.0.0/16はサーバー側ネットワークです。

うまくいかなかったので追加しました

Push "route 155.0.0.68 255.255.255.255 net_gateway 1"

サーバー(155.0.0.68)へのパケットを含むすべてのパケットがトンネルを介してルーティングされると問題が発生する可能性があることをどこかで読んだためですが、それでも機能しません。サーバーのネットワーク上のどのアドレスにもpingできません。 155.0.0.68のサーバー自体さえも。

何が悪いのですか?

追加情報:クライアントとサーバーはウィンドウを実行し、OpenVPNはudpプロトコルを使用して調整モードで実行されます。ファイアウォールは、クライアントとサーバーでオフになっています。

私はすでにネットワークエンジニアリングについてこの質問をしましたが、ServerFaultがそのような問題のより良い場所であると言われました。

4
Karsten

VPNトンネルの両側のルートが必要です。

また、サーバーでIPルーティングを有効にする必要があります。たとえば、Windows 7の場合:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"IPEnableRouter"=dword:00000001

次のIPとサブネットを想定します。

  • クライアント側のサブネット192.168.0.0/24
  • クライアントIP 192.168.0.2
  • クライアントVPN IP 10.8.0.2
  • サーバー側サブネット155.0.0.0/16
  • サーバーIP 155.0.0.68
  • サーバーVPN IP 10.8.0.1

キー

サーバーとクライアントのキーのセットを作成します。これらを生成する方法については、OpenVPNインストールディレクトリ..\OpenVPN\easy-rsa\README.txtのREADME)を確認してください。

サーバー側の構成

次の行をサーバー構成ファイルに追加します。

port 1194
proto udp
dev tun
topology subnet
server 10.8.0.0 255.255.255.0
client-config-dir C:\\OpenVPN\\config\\ccd
route 192.168.0.0 255.255.255.0 10.8.0.2
ca C:\\OpenVPN\\config\\ca.crt
cert C:\\OpenVPN\\config\\server.crt
key C:\\OpenVPN\\config\\server.key
dh C:\\OpenVPN\\config\\dh1024.pem
keepalive 10 60
comp-lzo
persist-key
persist-tun
status C:\\OpenVPN\\config\\openvpn-status-tun.log 20
log C:\\OpenVPN\\config\\openvpn-tun.log
verb 3

パスをそれぞれのインストールディレクトリに置き換えます。

サーバーにカスタムクライアント構成ファイルを追加します:

サーバー設定ファイルと同じディレクトリにccdディレクトリを作成し、そこに[〜#〜] cn [〜#〜]Common Name)クライアントの証明書。

クライアント証明書を確認し、次の行を探します(CN=<client_name>):

Subject: C=CH, ST=State, L=City, O=org, OU=unit, CN=client1/name=EasyRSA/emailAddress=root@localhost

この例では、ファイルはclient1(拡張子なし)という名前になります。次の行をファイルに追加します。

ifconfig-Push 10.8.0.2 255.255.255.0
Push "route 155.0.0.0 255.255.0.0 10.8.0.1"
iroute 192.168.0.0 255.255.255.0
  • ifconfig-Pushは、このクライアントに静的IPを提供します
  • Push "route ..."は、サーバー側のサブネットに到達するルートをクライアントにプッシュします
  • irouteはOpenVPNにクライアントのサブネットへの内部ルートを生成します

クライアント側の構成

次の行をクライアント構成ファイルに追加します。

client
dev tun
proto udp
remote 155.0.0.68 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
ca C:\\OpenVPN\\config\\client1.crt
cert C:\\OpenVPN\\config\\client1.crt
key C:\\OpenVPN\\config\\client1.key
remote-cert-tls server

パスをインストールディレクトリに置き換えます。

追加ルート

この設定は、OpenVPNを実行しているサーバーがルーターでもあり、サーバー側サブネット上のすべてのクライアントでdefault-gatewayとして設定されている場合に機能します。

専用ルーターが存在する場合は、次の静的ルートをそのルーターに追加(またはすべてのクライアントに追加)して、VPNサブネットとclient1のサブネットに到達します。

静的サーバー側サブネットルート:

Destination        Gateway             Genmask
192.168.0.0        155.0.0.68          255.255.255.0
10.8.0.0           155.0.0.68          255.255.255.0

このトピックに関するその他のヒントについては、 この答え を参照してください。

1
rda

あなたの清掃員は反対側に到達する方法がわからないので、次のようなものが必要です。

vPNクライアント:

route add -net 192.168.0.0/24 gw 10.8.0.1 1 #in this way, the client knows, how to reach the other side.

リモートlan(サーバー側)、vpnサーバー側のPCに到達する場合:

route add -net 10.0.0/16 gw "192.168.0.100(local lan ip of my vpn server)"` #in this way, the other pc knows, where to route the traffic for the vpn network

コマンドの場合は申し訳ありませんが、Windowsは使用していません

0
c4f4t0r

クライアントがWindows 7を実行している場合は、管理者権限でオープンVPNクライアントを実行する必要があります。そうしないと、ルーティングテーブルが読み込まれず、サーバーネットワーク上のホストにpingできない場合があります。

0
Umair Naqvi