web-dev-qa-db-ja.com

すべてのトラフィックをルーティング(リダイレクトゲートウェイ)が機能しない-OpenVPN

まず第一に、私はこの質問が少なくとも100万回尋ねられたことを知っています。私は多くのソリューションを試しましたが、それでもVPNが機能しません。 VPNに接続すると、クライアントIPがVPN IPに変更されます(予想)。ただし、すべてのトラフィックをVPN経由でルーティングするわけではありません。 OpenDNSをホームDNSサーバーとして使用し、internetbadguys.comテストドメインを使用してVPN経由のトラフィックをテストしているためです。 server.confでPushフラグを使用しています。

Push "redirect-gateway def1"
Push "remote-gateway vpn_server_ip"
Push "dhcp-option DNS 8.8.8.8"
keepalive 10 60

そしてclient.ovpnで:

Push "redirect-gateway def1"

また、それが役立つ場合は、AWS EC2インスタンスを使用してVPNを実行しています。私は次に何をすべきかわからない。うまくいけば、誰かがこれを理解できる:)

前もって感謝します!

以下のサーバーとクライアントの構成:

サーバ:

port PORT
proto udp
dev tun
ca ca.cert
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
Push "route 172.31.0.0 255.255.0.0"
keepalive 10 120
tls-auth ta.key 0
key-direction 0
cipher AES-128-CBC
auth SHA256
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
# ROUTE CLIENT'S INTERNET ACCESS THROUGH THE SERVER
Push "redirect-gateway def1"
Push "remote-gateway vpn_server_ip"
Push "dhcp-option DNS 8.8.8.8"
keepalive 10 60

crl-verify crl.pem

クライアント:

client
dev tun
proto udp
remote MY-SERVER-IP PORT
remote MY-SERVER-HOSTNAME PORT
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
remote-cert-tls server
comp-lzo
Push "redirect-gateway def1"
verb 3
1
shadowydesktop

この問題を抱えている他の人は、おそらくデフォルトでオフになっているため、サーバーでIP転送を有効にする必要があります。

これを/etc/sysctl.confに配置します。

net.ipv4.ip_forward = 1

そして、実行します:

sysctl -p /etc/sysctl.conf

これで、IP転送が処理されます。ファイアウォール(おそらくiptables)を実行している場合、おそらくNATを取得したいので、これを実行します。

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

次のようなものを/ etc/sysconfig/iptablesに入れて永続化します:

*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT

サーバーはすべて、クライアントVPNトラフィックを転送しています。次に行うことは、クライアントブラウザをwhatismyipaddress.comに移動して、Amazonアドレスが表示されていることを確認してからwww.dnsleaktest.comに移動し、状況を確認することです。 Googleを介してリークしている場合、VPNサーバーでシンプルなDNSキャッシングサーバーを実行することを検討し、匿名が必要な場合はクライアントをそのサーバーに向けることができます。

それがお役に立てば幸いです。

1
Miles Gillham