서버에서 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 인터페이스의 다른 장치에 액세스/핑할 수 없지만 장치가 많습니다.

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

물론 클라이언트에서 내 장치에 액세스/핑할 수 있습니다.

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.

관련 정보