Kiedy łączę się z siecią VPN za pośrednictwem menedżera sieci Gnome, tracę rozdzielczość DNS iw praktyce nie mogę uzyskać dostępu do zasobów w sieci VPN lub poza nią.
Kiedy korzystałem z Ubuntu 16.04 i korzystałem z VPN, /etc/resolv.conf/
plik „ ” zawierałby serwery DNS sieci (VPN), z którą się połączyłem. Teraz zawsze zawiera następujące wpisy:
nameserver 127.0.0.53
search myprovider.com
Z tego, co zrozumiałem, 127.0.0.53
jest adres kodu pośredniczącego DNS używanego przez system-resolved
.
Podejrzewam, że jest to błąd, ponieważ VPN działał dobrze w Ubuntu 16.04. Czy jest jakiś sposób, aby ustawić serwery DNS mojej sieci, gdy korzystam z usługi VPN?
Aktualizacja:
Próbowałem połączyć się z siecią OpenVPN z plikiem konfiguracyjnym dołączonym na końcu postu, ale pojawia się następujący błąd:
Authenticate/Decrypt packet error: cipher final failed
Sprawdziłem, czy serwer korzysta z kompresji Lzo i również ją włączyłem. Połączenie pozostaje aktywne, ale nie mogę nawigować do żadnej strony w sieci VPN lub poza nią.
W poniższym pliku konfiguracyjnym zawarłem rozwiązania zamieszczone w odpowiedziach
client
dev tun
proto udp
remote openvpn.bibsys.no 1194
remote my-server-2 1194
resolv-retry infinite
nobind
user myuser
group myuser
persist-key
persist-tun
ca ca-cert.pem
cert openvpn.crt
key openvpn.key
cipher AES-256-CBC
comp-lzo yes
script-security 2
up /etc/openvpn/scripts/update-systemd-resolved
down /etc/openvpn/scripts/update-systemd-resolved
down-pre
źródło
resolvectl status
iresolvectl help
wymyśliłem swoje konkretne rozwiązanie.Odpowiedzi:
Znalazłem rozwiązanie na tym blogu . Chociaż wymieniono dwa rozwiązania, wolę używać drugiego, ponieważ oznacza to, że mój DNS jest ustawiany przez serwer OpenVPN (pierwsze rozwiązanie oznacza, że używam tych samych serwerów DNS, niezależnie od tego, czy jestem podłączony do serwera OpenVPN).
W skrócie:
sudo mkdir -p /etc/openvpn/scripts
sudo wget https://raw.githubusercontent.com/jonathanio/update-systemd-resolved/master/update-systemd-resolved -P /etc/openvpn/scripts/
sudo chmod +x /etc/openvpn/scripts/update-systemd-resolved
Następnie edytuj plik klienta OpenVPN (np. Client.ovpn), zmieniając skrypty góra / dół na:
(Skomentowałem oryginalne ustawienia góra / dół).
źródło
config.ovpn
nie jest „znaleziony” - to plik konfiguracyjny klienta używany do łączenia. Albo go generujesz, albo jest wydawany przez twojego dostawcę OpenVPN (i może nie zostać wywołanyconfig.ovpn
- można go nazwać czymś podobnymclient.ovpn
).WARNING: Failed running command (--up/--down): external program fork failed
Problem
Plik
/etc/resolv.conf
nie jest aktualizowany przez/etc/openvpn/update-resolv-conf
skrypt, ponieważresolvconf
nie jest domyślnie instalowany na Ubuntu 18.04.W rzeczywistości jeden z pierwszych wierszy tego skryptu sprawdza
/sbin/resolvconf
plik wykonywalny:Zainstalowanie resolvconf przez
apt-get
nie jest rozwiązaniem, ponieważ/etc/openvpn/update-resolv-conf
skrypt aktualizuje/etc/resolv.conf
plik wypchniętym wpisem DNS, ale urządzenie tun wydaje się go ignorować.Rozwiązanie
Ubuntu 18.04 używa
systemd-resolved
, więc wystarczy, że zainstalujesz skrypt pomocniczy openvpn dlasystemd-resolved
vialub za pomocą tych instrukcji GitHub
Zaktualizuj
config.ovpn
plik, dodając następujące wiersze:To zamiast sumowania
/etc/openvpn/update-resolv-conf
do konf.Aby zapobiec wyciekom DNS, należy dodać ten wiersz na końcu
config.ovpn
pliku (zgodnie z komentarzem do wydania systemowego ):źródło
script-security 2
jest nadal potrzebny przed liniami góra / dół, w przeciwnym razie program upada z błędem (OpenVPN 2.4.4)script-security 2
nie było to konieczne. Może dlatego, że uruchamiam klienta openvpn jako root (z sudo)sudo apt-get install network-manager-openvpn-gnome
Następnie powinieneś móc importować pliki konfiguracyjne .ovpn do menedżera sieci gnome. askubuntu.com/questions/187511/… Interfejs użytkownika zmienił się z czasem, powinieneś być w stanie to znaleźć w ustawieniach-> sieć-> VPNW rzeczywistości istnieje znacznie łatwiejsze rozwiązanie tego problemu. Problem dotyczy ruchu DNS i sposobu zarządzania tym przez Ubuntu 18. Domyślnie przekazywanie IP jest wyłączone, czego potrzebuje OpenVPN, aby zapewnić prawidłowe działanie sieci. Wszystko, co musisz zrobić, to uruchomić następującą komendę:
Po otwarciu tego pliku wyszukaj wiersz, który zawiera
net.ipv4.ip_forward
. Jeśli ta linia jest komentowana, usuń znak # z przodu linii (jeśli nie jest komentowana, masz inny problem). Zapisz plik, a następnie uruchom ponownie instancję serwera OpenVPN.Ta poprawka nie wymaga żadnych modyfikacji klienta ani kodu OpenVPN po aktualizacji do Ubuntu 18. Przetestowano i potwierdzono działanie.
Jednak to oczywiście wymaga administrowania serwerem. Niestety, błąd istnieje dla wielu, którzy po prostu łączą się z 18.04 z serwerem OpenVPN, który jest zarządzany przez kogoś innego ...
źródło
Istnieją inne przydatne polecenia do konfiguracji tego, czego potrzebujesz za pomocą wiersza poleceń. Ale w moim przypadku możesz kontrolować połączenie VPN zarówno za pomocą wiersza polecenia, jak i GUI.
sudo nmcli connection add type vpn vpn-type openvpn con-name la.vpn.contoso.com ifname --
sudo nmcli connection modify la.vpn.contoso.com ipv4.dns 172.16.27.1 sudo nmcli connection modify la.vpn.contoso.com ipv4.dns-search int.contoso.com sudo nmcli connection modify la.vpn.contoso.com ipv4.never-default yes
I o wiele bardziej zainteresowany ostatni szlif:
nmcli connection modify la.vpn.contoso.com vpn.data 'ca = /tmp/la.vpn.contoso.com/you/ca.crt, key = /tmp/you.key, dev = tun, cert = /tmp/you.crt, cert-pass-flags = 1, comp-lzo = adaptive, remote = la.vpn.contoso.com:1194, connection-type = tls'
Następnie możesz kontrolować VPN za pomocą GUI lub użyć następujących poleceń:
sudo nmcli --ask connection up la.vpn.contoso.com sudo nmcli connection down la.vpn.contoso.com
źródło
Ja też mam na to wpływ. W moim przypadku używam OpenVPN z wewnętrznym serwerem nazw (który znajduje się w sieci VPN). Działało to do Ubuntu 17.10 (z „hosts: files dns” w /etc/nsswitch.conf).
/etc/resolv.conf został poprawnie zaktualizowany przez skrypty openvpn (poprzez wywołania do / etc / openvpn / update-resolv-conf w pliku konfiguracyjnym klienta openvpn).
Jednak rozpoznawanie nazw dla hostów w sieci VPN już nie działało (a przynajmniej sporadycznie ... Wydaje mi się, że lokalna pamięć podręczna DNS wybierała nazwy, ale po dość długim czasie).
Wydaje się, że to pomaga, a nawet rozwiązuje problem (choć jest za wcześnie, aby to powiedzieć), aby zainstalować poniższy pakiet:
sudo apt install openvpn-systemd-resolved
Za kilka dni będę miał więcej doświadczenia, czy to rozwiąże mój problem, czy nie.
Jeśli to dotyczy Ciebie, spróbuj tego i opublikuj komentarze!
Twoje zdrowie,
Michał.
źródło