Невозможно подключиться по SSH к машине с облачным соединителем OpenVPN через IP-адрес VPN

Невозможно подключиться по SSH к машине с облачным соединителем OpenVPN через IP-адрес VPN

Я только что начал использовать облачные коннекторы OpenVPN для создания сетей VPN с ячеистой структурой. Я развернул коннектор и настроил соответствующие протоколы IP-пересылки и NAT, которые позволяют мне получать доступ к локальной сети за машиной, на которой запущен облачный коннектор OpenVPN. Мне удалось это успешно сделать. (моя информация в основном взята из этой ссылкиhttps://openvpn.net/cloud-docs/подключение-сетей-к-облаку-openvpn-использование-коннекторов/)

Теперь проблема в том, почему я не могу подключиться по SSH к машине, на которой запущен облачный коннектор, через ее VPN IP 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

Мой главный аргумент заключается в том, что поскольку 100.96.0.0/11 via 100.96.1.1 dev tun0маршрут передается клиенту, я должен иметь возможность получить доступ к 100.96.1.18IP-адресу и выполнить ssh или traceroute и т. д. для подключения к нему.

P.S. Задаю этот вопрос здесь, так как поддержка OpenVPN не смогла ответить.

решение1

На всякий случай, если у кого-то возникнут такие же проблемы: эта проблема не имеет ничего общего с брандмауэром на вашей стороне, так как соединение сбрасывается на стороне облака. Согласно идее облака OpenVPN, вы используете "сетевые коннекторы" для подключения к некоторой сети в качестве клиента и "хост-коннекторы", чтобы позволить клиентам подключаться к вам. Так что если вы хотите подключиться к своему серверу через облако OpenVPN, этот сервер должен быть подключен к VPN через "хост-коннектор", а не через "сетевой коннектор", так как только "хост-коннектор" будет иметь открытый брандмауэр для входящих подключений на стороне облака.

Чтобы проверить, относится ли это к вам, убедитесь, что ваш сервер openssh прослушивает все интерфейсы (0.0.0.0:22 или :::22 для ipv6) с помощью "netstat -pan | grep ssh" или, по крайней мере, на вашем интерфейсе VPN. Затем используйте (предполагая, что vpn находится на интерфейсе tun0) "tcpdump -pni tun0 tcp port 22", чтобы проверить, получаете ли вы какие-либо запросы на подключение ssh от vpn. Вы можете удалить "port 22" и попробовать пинговать свой "server", чтобы убедиться, что трафик идет. Обычно с "network connector" вы получите проход ping, но для запросов ssh ничего не будет видно, так как облако не пропускает трафик ssh. Если вы устанавливаете соединение через облако с помощью "host connector", это будет работать.

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

Связанный контент