VPN IP를 통해 OpenVPN 클라우드 커넥터 시스템에 SSH로 연결할 수 없습니다.

VPN IP를 통해 OpenVPN 클라우드 커넥터 시스템에 SSH로 연결할 수 없습니다.

방금 메시 VPN 네트워크를 생성하기 위해 OpenVPN 클라우드 커넥터를 사용하기 시작했습니다. OpenVPN 클라우드 커넥터를 실행하여 컴퓨터 뒤의 LAN 네트워크에 액세스할 수 있도록 커넥터를 배포하고 관련 IP 전달 및 NAT 프로토콜을 설정했습니다. 저는 그 일을 성공적으로 해낼 수 있었습니다. (내 정보는 대부분 이 링크에서 가져왔습니다.https://openvpn.net/cloud-docs/connecting-networks-to-openvpn-cloud-using-connectors/)

이제 문제는 VPN IP를 통해 클라우드 커넥터를 실행하는 시스템에 SSH로 연결할 수 없는 이유는 무엇입니까 100.96.1.18? 이상하게도 문제 없이 핑을 보낼 수 있습니다. 여기에 이미지 설명을 입력하세요

~$ ssh [email protected]
ssh: connect to host 100.96.1.18 port 22: Network is unreachable
~$ ping 100.96.1.18 -c 4
PING 100.96.1.18 (100.96.1.18) 56(84) bytes of data.
64 bytes from 100.96.1.18: icmp_seq=1 ttl=62 time=209 ms
64 bytes from 100.96.1.18: icmp_seq=2 ttl=62 time=279 ms
64 bytes from 100.96.1.18: icmp_seq=3 ttl=62 time=208 ms
64 bytes from 100.96.1.18: icmp_seq=4 ttl=62 time=204 ms

--- 100.96.1.18 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 203.702/224.971/279.214/31.383 ms

놀랍게도 VPN 클라이언트 시스템을 통해 원격으로 SSH를 통해 로컬 IP를 통해 커넥터 시스템에 연결할 수 있습니다.192.168.18.1

커넥터 시스템의 IP 경로는 다음과 같습니다.

~$ ip route
default via 192.168.18.1 dev eno1 proto dhcp metric 100 
64.120.110.199 via 192.168.18.1 dev eno1 
100.80.0.0/12 via 100.96.1.17 dev tun0 
100.96.0.0/11 via 100.96.1.17 dev tun0 
100.96.1.16/30 dev tun0 proto kernel scope link src 100.96.1.18 
169.254.0.0/16 dev eno1 scope link metric 1000 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 
192.168.0.0/24 via 100.96.1.17 dev tun0 
192.168.18.0/24 dev eno1 proto kernel scope link src 192.168.18.88 metric 100 

~$ ifconfig tun0
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 100.96.1.18  netmask 255.255.255.252  destination 100.96.1.18
        inet6 fd:0:0:8101::2  prefixlen 126  scopeid 0x0<global>
        inet6 fe80::5a84:3a5:f59b:d64f  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
        RX packets 1682  bytes 451719 (451.7 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1755  bytes 637526 (637.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

또한 디버그를 위해 연결된 클라이언트 시스템의 IP 경로가 있습니다.

~$ ip route
default via 192.168.31.1 dev wlp2s0 proto dhcp metric 600 
25.0.0.0/8 dev ham0 proto kernel scope link src 25.56.7.62 
100.80.0.0/12 via 100.96.1.1 dev tun0 
100.96.0.0/11 via 100.96.1.1 dev tun0 
100.96.1.0/28 dev tun0 proto kernel scope link src 100.96.1.2 
169.254.0.0/16 dev wlp2s0 scope link metric 1000 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
172.107.213.76 via 192.168.31.1 dev wlp2s0 
192.168.0.0/24 via 100.96.1.1 dev tun0 
192.168.18.0/24 via 100.96.1.1 dev tun0 
192.168.31.0/24 dev wlp2s0 proto kernel scope link src 192.168.31.189 metric 600 

~$ traceroute 100.96.1.18
traceroute to 100.96.1.18 (100.96.1.18), 64 hops max
  1   100.96.1.18  265.200ms !N  109.653ms !N  105.821ms !N

제가 주장하는 주요 요점은 경로가 클라이언트에 푸시되고 있기 때문에 클라이언트 에 대한 IP 및 ssh 또는 추적 경로 등에 100.96.0.0/11 via 100.96.1.1 dev tun0도달할 수 있어야 한다는 것입니다 .100.96.1.18

PS OpenVPN 지원팀에서 답변을 드릴 수 없어 여기에 질문드립니다.

답변1

누구든지 동일한 문제에 직면할 경우를 대비해 클라우드 측에서 연결이 끊어지므로 이 문제는 사용자 측의 방화벽과 관련이 없습니다. OpenVPN 클라우드 아이디어에 따르면 "네트워크 커넥터"를 사용하여 일부 네트워크에 클라이언트로 연결하고 "호스트 커넥터"를 사용하여 클라이언트가 사용자에게 연결할 수 있도록 합니다. 따라서 OpenVPN 클라우드를 통해 서버에 연결하려면 해당 서버는 "네트워크 커넥터"가 아닌 "호스트 커넥터"를 통해 VPN에 연결되어야 합니다. "호스트 커넥터"만이 클라우드 측에서 들어오는 연결을 위해 방화벽을 열어두기 때문입니다.

이것이 적용되는지 확인하려면 openssh 서버가 "netstat -pan | grep ssh"를 사용하거나 적어도 VPN 인터페이스에서 모든 인터페이스(ipv6의 경우 0.0.0.0:22 또는 :::22)를 수신하고 있는지 확인하십시오. 그런 다음 (VPN이 tun0 인터페이스에 있다고 가정) "tcpdump -pni tun0 tcp port 22"를 사용하여 VPN에서 SSH 연결 요청을 받고 있는지 확인하세요. "포트 22"를 삭제하고 "서버"에 ping을 시도하여 트래픽이 진행되고 있는지 확인할 수 있습니다. 일반적으로 "네트워크 커넥터"를 사용하면 핑 통과가 이루어지지만 SSH 요청의 경우 클라우드가 SSH 트래픽을 허용하지 않으므로 아무것도 표시되지 않습니다. "호스트 커넥터"를 사용하여 클라우드를 통해 연결을 설정하면 작동합니다.

https://openvpn.net/cloud-docs/owner/servers/hosts/adding-a-host.html

관련 정보