web-dev-qa-db-ja.com

OpenVPN接続は機能しますが、ゲートウェイが割り当てられていません

私はvpsでopenvpnをセットアップしようとしましたが、サーバーへの接続を確立できましたが、ゲートウェイがクライアントに割り当てられていません。

これが私の設定ファイルです:

クライアント構成:

client
dev tun
proto udp
remote foo.bar 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
redirect-gateway
comp-lzo
verb 3
pull

サーバー構成:

port 1194
proto udp
dev tun
ca easy-rsa/2.0/keys/ca.crt
cert easy-rsa/2.0/keys/server.crt
key easy-rsa/2.0/keys/server.key
dh easy-rsa/2.0/keys/dh2048.pem
server 172.30.90.0 255.255.255.192
ifconfig-pool-persist ipp.txt
Push "redirect-gateway def1"
Push "dhcp-option DNS 208.67.222.222"
Push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
log-append openvpn.log
verb 3

ifconfigクライアント:

tun0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 172.30.90.6 --> 172.30.90.5 netmask 0xffffffff
open (pid 42823)

サーバー上のiptablesルール:

iptables -L

Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
ACCEPT udp -- anywhere anywhere state NEW udp dpt:openvpn
REJECT all -- anywhere anywhere reject-with icmp-Host-prohibited

Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-Host-prohibited

Chain OUTPUT (policy ACCEPT)
target prot opt source destination 

トラフィック全体をVPN経由でルーティングしたい。私はすでにリダイレクトゲートウェイを追加したので、うまくいくはずです。ここでは何が問題なのか本当にわかりません。問題の解決にご協力いただければ幸いです。

ありがとう!

5
frozenbit

VPNに接続した後、コマンドroute -nまたはnetstat -rnクライアント上で、ゲートウェイアドレスが割り当てられているかどうかを確認します。

以下を実行したかどうかを確認します。

サーバー上:

ゲートウェイをクライアントにプッシュ:

これをファイルに追加します:/etc/openvpn/server.conf

Push "redirect-gateway def1"

これをファイルに追加します:/etc/sysctl.conf

net.ipv4.ip_forward=1

または、次のコマンドを発行して、この変数を現在のセッションに設定します。

echo 1 > /proc/sys/net/ipv4/ip_forward

次のコマンドを発行して、VPN経由でトラフィックを適切に転送するようにiptablesを構成します。

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s [vpn client subnet] -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s [vpn client subnet] -o eth0 -j MASQUERADE

ソース

4
FoamyBeer

削除してみてください:

redirect-gateway

クライアント構成で。

サーバーのPushメカニズムを介してredirect-gateway構成をすでにプッシュしていますが、その場合にのみ、正しいパラメーター(def1)で送信します。

パラメータなしのredirect-gatewayの動作はopenvpn-versionに依存するため(特定のバージョンを指定しなかったため)、安全性を高める必要があります。

これで問題が解決しない場合、さまざまな問題が発生する可能性があります。

次のトラブルシューティングをお勧めします。

  • トンネルの反対側にpingできることを確認してください
  • はいの場合は、トンネルのリモート側を指すデフォルトゲートウェイを手動で追加して、8.8.8.8にpingを送信してみてください(トンネルを介してプッシュしているDNSで起こりうる問題を削除するため)
  • それが機能しない場合、問題はnat構成(iptables -L -t natの結果を投稿していない)または転送構成にある可能性があります。
  • それは機能するが、www.google.comへのpingが機能しない場合、問題はおそらくDNS構成にあります
0
Matteo Castelli