web-dev-qa-db-ja.com

OpenVPNサーバーがクライアントにpingできない

DebianサーバーにOpenVPNをセットアップしています。クライアントは接続でき、クライアントはサーバー上のリソース(Samba共有およびイントラネット)にpingおよびアクセスできます。

ただし、サーバーはクライアントにpingすることはできません-タイムアウトするだけです。

Client OpenVPN assigned IP: 10.67.15.26
   ↓ UDP on 1194
Internet
   ↓
Router port-forwards 1194 to server
   ↓ 
Server LAN IP: 10.67.5.1

サーバーOpenVPN構成(関連ビット)

port 1194
proto udp
dev tun
server 10.67.15.0 255.255.255.0
Push "route 10.67.5.0 255.255.255.0"

サーバールーティングテーブル

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.67.15.2      0.0.0.0         255.255.255.255 UH    0      0        0 tun0
10.67.15.0      10.67.15.2      255.255.255.0   UG    0      0        0 tun0
10.67.5.0       0.0.0.0         255.255.255.0   U     0      0        0 eth1
0.0.0.0         10.67.5.254     0.0.0.0         UG    0      0        0 eth1

サーバーファイアウォール

サーバーのファイアウォールを一時的に無効にしました。すべてのチェーンのポリシーはACCEPTで、すべての転送フラグが設定されています。

1 : /proc/sys/net/ipv4/conf/all/forwarding
1 : /proc/sys/net/ipv4/conf/default/forwarding
1 : /proc/sys/net/ipv4/conf/lo/forwarding
1 : /proc/sys/net/ipv4/conf/eth1/forwarding
1 : /proc/sys/net/ipv4/conf/tun0/forwarding
1 : /proc/sys/net/ipv4/ip_forward

テストケース:

クライアント:ping 10.67.5.1は他のリソースと同様に機能します。

サーバー:ping 10.67.15.26タイムアウト。

7
artfulrobot

2つの異なるクライアントを比較することで、2つの問題を特定して修正することができました。

問題1:ルーティング

何らかの理由で(これを解決したかどうかは不明ですが)、サーバーのルーティングテーブルがLANへの(LANからの)ルート(10.67.5.0/24)からのルートを忘れてしまいました。これにより、すべての送信LANトラフィックがメインゲートウェイを通過し、OpenVPN LAN(10.67.15.0/24)にルーティングされませんでした。これにより、LAN宛てのOpenVPNネットワークからのトラフィックがメインゲートウェイで失敗しました。したがって、pingが送信されていましたが、応答はドロップされました。

編集: 残念ながら、私はこのルートがドロップされた原因を知りません。ご覧のとおり、上記のルーティングテーブルにあります。/etc/network/interfacesにrouteコマンドを追加してみましたが、2つの重複する同一のルートができてしまったので、もう一度取り出しました。 このルートが削除されるのは、私の fwbuilder 構成でした:eth1アダプターをセットアップするときに、/ 24(LAN用)ではなく/ 32ネットマスク(つまり、ホスト)を指定しました。

Debianクライアントをテストすることで、これを理解することができました。その後、それは機能しましたが、Windows 7クライアントは機能しませんでした。

問題2:Windows 7ファイアウォール/構成

Windowsのセットアップに2つの問題がありました。

Windowsには、TAPアダプター用の「Work」プライベートプロファイルセットが必要です

このセクションのクレジットはkalwiに送られます

「ネットワークと共有センター」には、(少なくとも)2つの「アクティブなネットワーク」が表示されます。私は無線ネットワークを持っていて、それから「未確認のネットワーク」を持っていました。後者はOpenVPN TAPデバイスで、公園のベンチアイコンがあり、信頼できないパブリックとして扱われていました。これを変更できるようにするには、アダプターのデフォルトゲートウェイを追加する必要があります。

DOS/Cygwinターミナルを管理者として起動します。 (Orbを起動> CMDを検索>右クリック>管理者として実行).

次に、route print -4。インターフェイスリストが表示されます。各行は番号で始まり、右側に名前が表示されます。 TAP-Win32アダプターのインターフェース番号を確認します。私は17歳でした。

次にルートを追加します。

route -p add 0.0.0.0 mask 0.0.0.0 1.2.3.4 metric 500 if 17

ここで、1.2.3.4はOpenVPNゲートウェイのIP(前のコマンドの出力のGateway列に表示)である必要があり、17はTAPインターフェイス番号である必要があります。 -pオプションはルートを永続的にします。私はこれを最初に使わずにテストしました。 これは、クライアントのOpenVPNゲートウェイIPが接続間で変更されないことを前提としています

完了すると、ダイアログボックスが表示され、新しいネットワークを分類するように求められます。 Workを選択します。

この時点で、会社のLANからクライアントにトラフィックを送信することができましたが(netcatを使用してテスト済み)、pingはまだ応答していません。

Pingを許可するようにWindowsに指示する(ICMPv4)

Orbを開始し、[セキュリティが強化されたWindowsファイアウォール]をクリックして、[受信の規則]に移動し、[新しい規則...]をクリックします。

  • カスタムルール
  • すべてのプログラム
  • プロトコル:ICMPv4
  • 接続を許可する
  • プライベートプロファイルに適用
  • それに名前を付けます。

最後にpingが返されました。

7
artfulrobot