サーバーからVPNクライアントの背後にあるLANにアクセスする方法は?

サーバーからVPNクライアントの背後にあるLANにアクセスする方法は?

OpenVPNサーバーを実行するクラウドVMがあり、他方ではプライベートネットワーク内にSynology NASがあります。

サーバーからクライアントのLAN(192.168.1.0/24)にアクセスしたいです。

サーバーでVPN IPを変更してirouteクライアントに送信しました。

$ cat /etc/openvpn/ccd/hodor
ifconfig-push 192.168.2.142 255.255.255.0
iroute 192.168.1.0 255.255.255.0

/etc/openvpn/server/server.confまた、クライアントへのパスも設定しました。

push "route 192.168.1.0 255.255.255.0"
route 192.168.1.0 255.255.255.0

これで、サーバーからクライアント(192.168.2.142および192.168.1.20)にpingを送信できるようになりました。

server$ ping -c1 192.168.1.20
PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.
64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=14.8 ms

server$ ping -c1 192.168.2.142
PING 192.168.2.142 (192.168.2.142) 56(84) bytes of data.
64 bytes from 192.168.2.142: icmp_seq=1 ttl=64 time=14.1 ms

クライアントからARP要求を表示できます。

client$ tcpdump -i tun0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
20:37:17.666777 IP 192.168.2.1 > 192.168.1.20: ICMP echo request, id 14, seq 1, length 64
20:37:17.666813 IP 192.168.1.20 > 192.168.2.1: ICMP echo reply, id 14, seq 1, length 64
20:37:21.022983 IP 192.168.2.1 > 192.168.2.142: ICMP echo request, id 15, seq 1, length 64
20:37:21.023026 IP 192.168.2.142 > 192.168.2.1: ICMP echo reply, id 15, seq 1, length 64

ただし、クライアントLANインターフェイスの他のデバイスにアクセス/pingすることはできませんが、デバイスが多いです。

client$ sudo ip neigh
192.168.1.31 dev ovs_eth3 lladdr a8:a1:59:83:83:0c REACHABLE
192.168.1.3 dev ovs_eth3 lladdr 3c:6a:9d:13:d1:86 STALE
192.168.1.2 dev ovs_eth3 lladdr ec:b5:fa:09:07:ac STALE
172.17.0.4 dev docker0 lladdr 02:42:ac:11:00:04 STALE
192.168.1.1 dev ovs_eth3 lladdr 44:fe:3b:f9:05:1a REACHABLE
172.17.0.6 dev docker0 lladdr 02:42:ac:11:00:06 STALE
192.168.1.18 dev ovs_eth3 lladdr 02:11:32:20:17:25 REACHABLE
172.17.0.2 dev docker0 lladdr 02:42:ac:11:00:02 STALE
192.168.1.11 dev ovs_eth3 lladdr 60:fb:00:8f:cb:8e REACHABLE
172.17.0.3 dev docker0 lladdr 02:42:ac:11:00:03 REACHABLE
192.168.1.9 dev ovs_eth3 lladdr 5c:ea:1d:74:fa:bb STALE
192.168.1.15 dev ovs_eth3 lladdr 9e:12:c6:2f:1a:0b STALE

もちろん、クライアントから自分のデバイスにアクセス/pingすることもできます。

VPNサーバーがクライアントデバイスにアクセスできるようにNASをどのように設定しますか?

ベストアンサー1

別のサブネットからのトラフィックをリダイレクトするようにOpenVPNを設定する必要があります。

まず、次の行のコメントを外してクライアントのP2P設定を有効にすることをお勧めします/etc/openvpn/server/server.conf

client-config-dir /etc/openvpn/ccd

/etc/openvpn/ccd/client-name次に、次の内容でファイルを作成します。

ifconfig-push 192.168.2.142 255.255.255.0
iroute 192.168.1.0 255.255.255.0

IPアドレスをpush取得するように通知クライアントを設定します。192.168.2.142したがって、これはこのクライアントに対して静的です。

これにより、コマンドはこのVPNリンクを介してiroute許可されます。192.168.1.0/24

これにより、サーバー上のすべてのクライアントに対してICMPコマンドを発行し、クライアントから受信したとおりにそれを評価できる必要がありますtcpdump

通常、クライアントのLANポートで偽装が有効になっていないため、クライアントにアクセスできません。これを行うには、eth0(ovs_eth0?)ポートでIP転送とマスカレーディングを有効にする必要があります。

ip -t nat -A ポストルーティング -j 偽装 -o eth0

それではうまくいきます。

iptables設定を保存したことを確認してください。 NASが起動したら、次のスクリプトを使用してNASを設定できます/usr/local/etc/rc.d/iptables_nat.sh

おすすめ記事