こんばんは、
OpenVPNのインストールで問題が発生しています。 3日間ここにいるが、それでも私の人生の何が悪いのかわからない...
基本的に問題は、クライアント(win 7 pc)からサーバー(ubuntu 14.04専用ボックス)に接続できることですが、接続しているのにインターネットとLANにアクセスできません(10.0でサーバーにpingできない) .0.1)。
サーバーにIP転送をセットアップし、知る限りiptableルールを追加し、ルーターにポート転送をセットアップしました。しかし、それを正常に機能させることができません。
私はまだopenvpnに慣れていないので、すべての助けをいただければ幸いです。貴重なお時間をありがとうございました。
私のserver.conf、client.conf、およびiptableルールのコピーを以下で見つけてください。
Server.conf
dev tun
proto udp
port 1194
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
user nobody
group nogroup
server 10.8.0.0 255.255.255.0
persist-key
persist-tun
client-to-client
Push "route 192.168.0.0 255.255.255.0"
Push "redirect-gateway def1"
Push "dhcp-option DNS 8.8.8.8"
log-append /var/log/openvpn
plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so openvpn
client-cert-not-required
username-as-common-name
management localhost 7505
IPテーブル
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:openvpn
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- 192.168.0.0/24 anywhere ctstate NEW
ACCEPT all -- 10.8.0.0/24 anywhere ctstate NEW
ACCEPT all -- 10.8.0.0/24 192.168.0.0/24 ctstate NEW
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Client.conf
client
dev tun
proto udp
remote 196.xxx.xxx.xxx 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
auth-user-pass
comp-lzo
verb 3
概要:
リモートLANは192.168.0.0/24です。
OpenVPNネットワークは10.8.0.0/24です。
OpenVPNクライアントは10.8.0.0/24でIPを取得します。 10.8.0.42だとしましょう。
リモートLANと通信しようとしています:
OpenVPNクライアントがリモートLANのIP(たとえば、192.168.0.56)にパケットを送信すると、送信元アドレス10.8.0.42で送信され、OpenVPNサーバーに到達します。
OpenVPNサーバーは、IP転送を有効にしない限り、それをドロップしますsysctl -w net.ipv4.ip_forward=1
)。
IP転送が有効になっている場合、192.168.0.56はパケットを受信し、10.8.0.42にパケットを送信して応答しようとしますが、ルートがありません。代わりに、デフォルトゲートウェイを使用します。 OpenVPNサーバーがたまたまデフォルトゲートウェイでない限り、パケットは失われます。リモートマシン上のルートはip route get 10.8.0.42
で確認できます。
可能な解決策:
lAN内の各ノード10.8.0.0/24へのルートを追加します(ip route add 10.8.0.0/24 via $ip_of_vpn_server
);
デフォルトゲートウェイの10.8.0.0/24へのルートを追加する
パケットは、OpenVPNサーバーに直接到達するのではなく、ルーターに無駄なジャンプをします。
しかし、ルーターでsend_redirects
が有効になっていて、LANノードでaccept_redirects
が有効になっている場合、ルーターはICMPリダイレクトを送信してより適切なルートを示し、LANノードはこのルートを後で使用する必要があります。
セットアップNAT OpenVPNサーバーで10.8.0.0/24アドレスを非表示にするため。
OpenVPNクライアントからパブリックIPに到達しようとすると、同じ問題が発生します。
最初または2番目のソリューションを使用した場合は、リモートLANのルーターによって10.8.0.0/24が適切にNAT処理されていることを確認する必要があります。
openVPNサーバーでNATを使用した場合、他に何もする必要はありません。
2番目のソリューションを使用することをお勧めします。少ないNATあなたはより良いです。
VPNがあるからといって、すぐに接続できるとは限りません。そのVPNを介してトラフィックをルーティングするには、クライアントに「伝える」必要があります。 10.0.0.1に接続しようとして、クライアントが別のネットワークにある場合、クライアントはデフォルトゲートウェイと通信しようとします。代わりに、VPN接続と通信するように指示する必要があります。
管理者CMDで:
route add <remote network> <VPN IP>
VPNサーバーに接続できる場合は、サーバー/クライアントが通信できるように正しく設定されている可能性が高いです。その後、問題はIPとルーティングの1つになります。私は通常、confファイルを使用するのではなく、openvpnサーバーにpfsenseを使用していますが、効果は同じです。
Openvpnを使用するたびに、x.x.x.2に接続したことがなく、x.x.x.1にpingを実行できます。それは私かもしれませんが、それは常に.6と.5のルーターから始まるのを見ました
VPNに接続したら、IPアドレスを確認します。 ipconfig
接続中にルーティングテーブルを確認してくださいroute print
vPN IPとVPN上のゲートウェイにpingできるかどうかを確認します。それはあなたの場合かもしれません10.8.0.5
あなたが役立つかもしれないあなたのIPv4ルートを投稿することができるなら。問題がどこにあるかを絞り込むことができます。