Nie można połączyć się z serwerem SSH za pomocą połączenia VPN

12

Wiem, że to dość popsute. Pozwól mi to wszystko wyjaśnić.

Mam dynamiczny DNS ustawiony na moim routerze. Sprawdziłem, że po przekierowaniu portów mogę połączyć się z żądaną aplikacją (jeśli uruchomię coś na porcie 1337 i przekieruję port do odpowiedniej maszyny, mogę połączyć się z nim bez żadnych problemów).

Teraz, jeśli podłączę mojego Macbooka do VPN i uruchomię coś, jak opisano powyżej, działa to zgodnie z oczekiwaniami. ALE , jeśli podłączę maszynę z systemem Ubuntu Server 16.04 do sieci VPN i uruchomię coś lub chcę połączyć się przez ssh, nie powiedzie się. Przekierowałem port, którego używam do połączenia SSH na routerze. Próbowałem również hostować serwer WWW, co również nie powiodło się.

Co mogę zrobić z tym problemem? To nie ma dla mnie sensu.

O maszynie Ubuntu Server: jest to czysta instalacja ze skonfigurowanym klientem openvpn i serwerem ssh, bez zapory ogniowej, nie edytowanych iptables, podłączonych do routera przez Ethernet.

EDYCJA: Oto tabele routingu: http://pastebin.com/ay6fpLcL

Krzysztof Kraszewski
źródło
Jakie są różnice w tablicach routingu z VPN i bez VPN (tylko dla IPv4, ip -4 rna Ubuntu, netstat -f inet -rnna Mac)?
user4556274
@ user4556274 oto tabele: pastebin.com/ay6fpLcL
Krzysztof Kraszewski

Odpowiedzi:

9

OK, udało mi się znaleźć rozwiązanie.

Korzystanie z openvpnpakietu bez opakowania:

Dodaj te 2 linie do .ovpnpliku (lub .confjeśli łączysz się automatycznie):

script-security 2
up /etc/openvpn/up.sh

Następnie utwórz /etc/openvpn/up.shz uprawnieniami wykonywalnymi (755/700):

#!/bin/sh
ip rule add from <your-server-ip> table 128
ip route add table 128 to <your-server-subnet> dev <your-interface>
ip route add table 128 default via <server-gateway>

Na przykład oto moja konfiguracja:

#!/bin/sh
ip rule add from 192.168.1.26 table 128
ip route add table 128 to 192.168.1.0/24 dev eno1
ip route add table 128 default via 192.168.1.1

Używanie innego klienta VPN / innej konfiguracji:

Nie mogę przewidzieć wymaganych kroków, ale generalnie musisz uruchamiać up.shskrypt (powyżej) za każdym razem, gdy ustanowione jest połączenie VPN.

Mam nadzieję, że pomoże to komuś, kto ma ten sam problem. Twoje zdrowie!

Krzysztof Kraszewski
źródło
Używam NordVPN na Ubuntu 18.04. Korzystanie z openvpn poprzedzonego tym skryptem działa dobrze. Jednak użycie binarnego nordvpn do połączenia kończy się niepowodzeniem w związku z powyższym.
ma3oun