it-swarm-ja.com

OpenVPNクライアントがOpenVPNサーバーと同じLAN上のマシンにアクセスできないのはなぜですか?

LinuxサーバーとWindowsクライアントでOpenVPNを指示に従って here に設定しました。クライアントはサーバーにアクセスできますが、LANにそれ以上アクセスできません。

サーバーは10.23.29.64/24、OpenVPNサブネットは10.23.30.0/24、クライアントは10.0.0.71/24なので、重複はありません。

私のサーバー設定ファイルは:

port 53
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.23.30.0 255.255.255.0
ifconfig-pool-persist ipp.txt
Push "route 10.23.29.0 255.255.255.0"
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3

私のクライアント構成は

client
dev tun
proto udp
remote HOSTNAME_REMOVED 53
resolv-retry infinite    
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
comp-lzo
verb 3

接続すると、クライアントは10.23.30.6/30を取得し、4つのルートが追加されます。

   10.23.29.0    255.255.255.0       10.23.30.5      10.23.30.6       1
   10.23.30.1  255.255.255.255       10.23.30.5      10.23.30.6       1
   10.23.30.4  255.255.255.252       10.23.30.6      10.23.30.6       30
   10.23.30.6  255.255.255.255        127.0.0.1       127.0.0.1       30

私のサーバーは10.23.30.1/32を取得します(これを変更IS THE PROBLEM?)

私のクライアントは10.23.30.1と10.23.29.64でサーバーにpingできますが、これ以上は取得できません。このクライアントが私のLANの残りの部分にアクセスできるようにするには、他に何が必要ですか?

更新:

ルーターに静的ルートを追加したので、ルーティングテーブルは次のようになります。

{admin}=>ip rtlist
Label             Destination          Gateway  Interface     Mtc Admin  Oper
                 10.0.0.138/32       127.0.0.1  loop          0   UP     [UP]
                 10.0.0.255/32       127.0.0.1  loop          0   UP     [UP]
               10.23.29.254/32       127.0.0.1  loop          0   UP     [UP]
               10.23.29.255/32       127.0.0.1  loop          0   UP     [UP]
             87.115.131.206/32       127.0.0.1  loop          0   UP     [UP]
                  127.0.0.1/32       127.0.0.1  loop          0   UP     [UP]
            255.255.255.255/32       127.0.0.1  loop          0   UP     [UP]
            195.166.128.189/32  87.115.131.206  Internet      0   UP     UP
                212.159.6.9/32                  Internet      10  UP     UP
               212.159.6.10/32                  Internet      10  UP     UP
                   10.0.0.0/24      10.0.0.138  LocalNetwork  0   UP     [UP]
                 10.23.29.0/24    10.23.29.254  LocalNetwork  0   UP     [UP]
                 10.23.30.0/24     10.23.29.10  LocalNetwork  0   UP     [UP]
                    0.0.0.0/0                   Internet      10  UP     UP

しかし、10.23.29.10から10.23.30.1にtracerouteを実行すると、次のようになります。

traceroute to 10.23.30.1 (10.23.30.1), 30 Hops max, 60 byte packets
 1  dsldevice.lan (10.23.29.254)  2073.983 ms  2073.481 ms  74.545 ms
 2  * * *

そしてあきらめるまですべての星。これは、ルーティングテーブルがそうであるように言うように、tracerouteパケットが10.23.29.10に転送されないことを私に信じさせます。

8
Grezzo

ようやく問題がわかりました。すべてのOpenVPN接続に新しいサブネットを作成するOpenVPNの「ルーティング」オプションを使用しています。私のクライアントはこのサブネットからIPアドレスを割り当てられていたので、私のサーバーも割り当てられていたため、このネットワークを介して互いに通信できました。サーバーでIPv4転送を有効にすると、LANにパケットを送信することもでき、LANのIPアドレスを介してサーバーと通信できることは明らかでした。

クライアントがLAN上の他のコンピューターと通信しようとしたとき、クライアントからのパケットがLANホストに到達していました(これは確認できませんでしたが、そうであると確信しています)が、これらのパケットの送信元アドレスはOpenVPNネットワークからのアドレス。 LANホストは、これがLAN上にないことを認識しており、その場合、ホストがデフォルトゲートウェイ(ルーター)に送信することだけを知っていました。プライベートIP範囲にパケットを送信してインターネットに送信するのは無意味なので、私はそれで何かをしたのではないかと思います。

解決策は、すべてのLANホストに静的ルートを追加するか、「ルーティング」ではなくOpenVPNの「ブリッジ」オプションを使用することです。私はまだこれを行っていませんが、これが正しい方法であると確信しています。

6
Grezzo

すべてのLANホストに静的ルートを追加する必要はないと思います。そのLAN上のゲートウェイに静的ルートを追加して、すべてのopenvpnネットワークアドレスがopenvpnサーバーの「lan-ipアドレス」を指すようにするだけです。

2
anony

私の設定で同じ問題が、今は修正されました:

OpenVPN Road warrior設定を使用しているため、パケットはルーティングされたがNAT処理されたことが記録されます。アウトバウンドNATオプションを構成して、LANインターフェース上のOpenVPN仮想IPアドレスからのソースポートをWAN NATアドレス。

PfSenseでは、自動アウトバウンドNATルールから手動アウトバウンドNATルールへのルールを無効にして、OpenVPN内部ネットワーク用の新しいルールを追加するだけです。

1
AsynKc

ここに同じ問題がありました(このガイドを使用して設定: https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-14- 04

静的ルートに関するAnonyの答えが鍵でした。セットアップの下のdd-wrt->高度なルーティング:

dd-wrt ​​static route setup

どこ

  • 宛先:openvpn tun0インターフェイス
  • ゲートウェイ:openvpn(lan ip)を実行しているサーバー

これは私にとってはトリックでした!

0
Tom Ratcliff