blokuj poza dns, napraw dns wyciek ubuntu 18.04


10

Używając testu szczelności dns podczas mojej sieci VPN odkryłem, że przecieka. Skonfigurowałem VPN przez NetworkManager i działa poprawnie, z wyjątkiem wycieku.

Najpierw próbowałem dodać block-outside-vpndo pliku konfiguracyjnego, tyle że pod /etc/NetworkManager/system-connectionsnim nie ma tego samego formatu. Nie mogłem znaleźć dokumentu, w jaki sposób poprawnie napisać jeden dla wycieków DNS.

Ponadto użycie Ubuntu 18.04 resolv.conf nie działa tak jak wcześniej, wszystkie inne odpowiedzi są oparte na tym.

W skrócie, jak zablokować zewnętrzne dns (wyciek) za pomocą plików konfiguracyjnych Network Managera lub GUI?


block-outside-vpnzazwyczaj jest tylko opcją połączenia Windows OpenVPN. Naprawieniem „wycieku” DNS byłoby użycie określonego serwera DNS, który istnieje tylko po drugiej stronie VPN. Jakie były wyniki testu szczelności DNS, które widziałeś? (są istotne)
Thomas Ward

Odpowiedzi:


3

Sugeruję użycie dnscrypt.

Najpierw zainstaluj:

sudo apt install dnscrypt-proxy

Domyślnie nasłuchuje 127.0.2.1portu 53.

Edytuj VPN lub dowolne inne połączenie, które chcesz i ustaw 127.0.2.1jako serwer DNS, za pomocą CLI możesz uruchomić:

nmcli connection modify [CONNECTION-NAME] ipv4.dns 127.0.2.1

I na wszelki wypadek zablokuj wychodzące żądania DNS:

sudo ufw deny out 53

I upewnij się, że zapora jest włączona:

sudo ufw enable

Mój DNS wciąż przecieka zgodnie z testem szczelności DNS. Należy również wspomnieć, że wyłączenie VPN przy włączonym ufw spowoduje, że Internet stanie się niedostępny (zablokowany port 53).
Pobe

Uruchom to polecenie: nmcli connection modify [CONNECTION-NAME] ipv4.ignore-auto-dns yessprawdź, czy to pomoże.
Ravexina

3

Aby naprawić wycieki DNS w systemie Ubuntu 18.04, możesz edytować plik o nazwie /etc/dhcp/dhclient.conf. Według strony podręcznika plik ten „umożliwia konfigurację jednego lub większej liczby interfejsów sieciowych za pomocą protokołu Dynamic Host Configuration Protocol, protokołu BOOTP lub w przypadku niepowodzenia tych protokołów poprzez statyczne przypisanie adresu”.

Jeśli chodzi o naprawianie wycieków DNS, będziemy edytować ten plik. Otwierając go z odpowiednimi uprawnieniami, zobaczysz komentowany wiersz, który wygląda mniej więcej tak:

#prepend domain-name-servers 127.0.0.53;

Usuń komentarz z tego wiersza i zmień serwer-nazwa-domeny na inny, na przykład OpenDNS: 208.67.222.222. Używając tego adresu OpenDNS, ta linia wyglądałaby teraz tak:

prepend domain-name-servers 208.67.222.222;

Po zapisaniu pliku i ponownym uruchomieniu systemu powinno to naprawić wycieki DNS w systemie Ubuntu 18.04.


Lub możesz po prostu edytować swoje połączenie w GUI i uzyskać ten sam rezultat: otwórz okno edycji swojego połączenia => Ustawienia IPv4 / IPv6, zmień „Metoda” na „Automatyczne, tylko adresy” i dodaj swoje „serwery DNS”.
GoodGuyNick

Metoda @GoodGuyNick za pośrednictwem GUI nie działała dla mnie. Przeszukiwałem ten problem przez cały dzień i działała tylko sztuczka polegająca na „dodawaniu serwerów nazw domen”. Alleluja dla tej odpowiedzi. Wszystko, co próbowałem (w tym GUI dla serwerów DNS) było nadpisywane i nie przetrwałem restartu.
pestofagiczny

3

Jeśli masz wyciek DNS, jak wskazano na stronie browserleaks.com lub dnsleaktest.com ,

  1. Wyłącz połączenie VPN

  2. Spróbuj cofnąć wszelkie zmiany plików .conf, które już zmarnowałeś. Jeśli próbujesz wielu różnych sugestii, najlepszą szansą może być wykonanie nowej instalacji i upewnienie się, że zainstalowałeś również networkmanager-openvpn-gnome, ponieważ Ubuntu nie ma domyślnie importu konfiguracji VPN.

  3. Zainstaluj dnsmasq

    sudo apt update
    sudo apt install dnsmasq  
    
  4. Wyłącz rozwiązane

    sudo systemctl disable systemd-resolved.service
    sudo systemctl stop systemd-resolved.service 
    
  5. Usuń / etc/resolv.confi utwórz nowy:

    sudo rm /etc/resolv.conf
    sudo nano /etc/resolv.conf  
    
  6. Wpisz do pustego .confpliku:

    nameserver 127.0.0.1`         that's all!
    
  7. Naciśnij Ctrl+, x aby wyjść z edytora. Wprowadź, yaby zapisać, a następnie naciśnij, Enteraby zastąpić nowy resolv.confplik.

  8. Edytuj plik NetworkManager.conf

    sudo nano /etc/NetworkManager/NetworkManager.conf 
    

    i dodaj następujące:

    dns=dnsmasq 
    

    poniżej linii (nawiguj za pomocą klawiszy strzałek), [main] i plugins = ifupdown, plik kluczy dokładnie tak, jak w nowej linii.

    [main]
    plugins=ifupdown, keyfile
    dns=dnsmasq
    

    Naciśnij Ctrl+, xaby wyjść z edytora. Wprowadź, y aby zapisać, a następnie naciśnij, Enteraby zastąpić plik.

  9. Wyjdź z terminala, uruchom ponownie system i sprawdź wyniki na stronie testowej dnsleak.

Dzięki Anonymous VPN, którego rozwiązania dotyczące wycieków w Ubuntu / Network Manager wydają się być dobrze zbadane i odnoszą sukcesy. DZIAŁAŁY i kiedy żadne inne rozwiązanie nie działało dla mnie, działały. Powyższe rozwiązanie działa dla Ubuntu 17.xi 18.04 LTS . Zobacz jego inne rozwiązanie dla 16.04 LTS .


Przetestowałem to rozwiązanie na maszynie wirtualnej i wszystko działało. Potem próbowałem na głównej maszynie i zobaczyłem dns z VPN i dn wyciek. Na maszynie wirtualnej nameserverzmieniono z 127.0.2.1na 192.168.122.1i kiedy łączę się z VPN w resolv.confWidzę dwie nameserverlinie, jedną z 192.168.122.1drugą, a drugą z VPN dns, ale na maszynie głównej zawsze widzę dwie linie search lan nameserver 127.0.1.1.
GoodGuyNick,

jak mogę to zrobić bez menedżera sieci? po prostu umieść dns w / etc / network / interfaces?
Mehdi,

1

Walczę z tym dokładnym problemem przez 2 dni, zanim znalazłem rozwiązanie, które zadziałało dla mnie tutaj: https://unix.stackexchange.com/a/470940

TL; DR

$ cd /etc/NetworkManager/system-connections

Tutaj przechowywane są połączenia utworzone za pomocą Menedżera sieci.

$ sudo nmcli connection modify <vpn-connection-name> ipv4.dns-priority -42

Proste polecenie do modyfikacji pliku konfiguracji połączenia. Można to zrobić również ręcznie, ale uważam, że w ten sposób jest łatwiej.

$ sudo service network-manager restart

Spraw, by zmiany dotyczyły twojego systemu.

Zasadniczo skopiuj wklejone z powyższego linku, autor oryginalnego autora.

Jeśli twój system nie zna nmcli lub dodanie połączeń za pomocą GUI Network Managera powoduje błąd, polecam to łącze

Teraz coś mniej wyjaśnienia i więcej komentarza (raczej ja nieświadomy).

Wypróbowałem wiele rozwiązań, w tym resolv.conf, dnsmasq i dnscrypt, z których wszystkie prowadzą do całkowitego zablokowania mojego Internetu lub po wyłączeniu połączenia VPN. Według dnsleaktest.com żaden z nich nie rozwiązał wycieku dns . W przypadku próby któregokolwiek z nich należy śledzić każdy krok po drodze, aby móc je odwrócić w przypadku niepożądanego wyniku. Zajęło mi niewiele czasu, aby naprawić mój zepsuty Internet raz za razem bez, zgadnij co, Internetu. Nie twierdzę, że te rozwiązania nie działają, bardzo prawdopodobne, że gdzieś popełniłem błąd.
Rozwiązanie, z którym się połączyłem ma jednak tę ogromną zaletę, że nie psuje się z ogólnymi ustawieniami sieci, ale tylko z jednym połączeniem, które modyfikujesz.

Następnie, blok-zewnątrz-dns, jak wspomniano tutaj wcześniej, jest rozwiązaniem tylko dla systemu Windows i rzucił jakiś nierozpoznany błąd opcji w moim systemie Ubuntu.

Użycie komend ovpn cli również nie rozwiązało wycieku.

Link, który podałem, wspomina ( tutaj ) wyjaśnienie niektórych niespójności wersji, które zostały naprawione w Ubuntu 18.10, być może ktoś z większą wiedzą na ten temat chce wyjaśnić więcej. Jeśli to prawda, użytkownicy LTS będą musieli poczekać na kwiecień w przyszłym roku.

Na koniec chcę zauważyć, że dla mieszkańców krajów z cenzurą Internetu wyciek dns stanowi poważny problem, ponieważ zezwolenie na lokalny dostęp do ISP do twojego ruchu może i doprowadzi do zablokowania domen cenzurowanych pomimo połączenia z VPN. Więc przy przyszłych wizytach w Chinach itp., Musisz się tym wcześniej zająć.

Mam nadzieję że to pomoże.


0

Spróbuj użyć update-systemd-resolvedskryptu, który nie wprowadza zmian w resolv.conf, a zamiast tego korzysta z systemd-resolvedusługi przy użyciu interfejsu API DBus

Pobierz go z git i zainstaluj:

git clone https://github.com/aghorler/update-systemd-resolved.git
cd update-systemd-resolved
make

Teraz edytuj nsswitch.conf:

sudo nano /etc/nsswitch.conf

a następnie zmień wiersz zaczynając od hosts:powiedzieć

hosts: files resolve dns myhostname

Włącz usługę i upewnij się, że działa automatycznie:

sudo systemctl enable systemd-resolved.service
sudo systemctl start systemd-resolved.service

UWAGA: Jeśli nie chcesz wykonać powyższych kroków i nie masz nic przeciwko korzystaniu z terminala, wyciek DNS występuje tylko podczas korzystania z NetworkManager, jak dotąd z mojego doświadczenia nie wynika, gdy uruchamiasz openvpn z terminala za pomocąsudo openvpn --config config.ovpn


Jaka linia w pliku config.ovpn blokowałaby wyciek? Czy masz tego przykład? (Powyższe rozwiązanie nie działało dla mnie).
Pobe

0

Próbowałem prawie każdego rozwiązania, które mogłem znaleźć w Internecie, aby naprawić problem wycieku z usługi DNS. Openvpn zaczął się dobrze, ale pokazał, że przecieka, kiedy poszedłem na strony testowe. Po tym, jak nie czerpałem radości z wypróbowania wszystkich środków zaradczych, przeszedłem do ustawień Wi-Fi i Ethernet i użyłem serwerów dns openvpn zamiast moich dostawców usług internetowych i od tej pory wszystko było w porządku. Jestem pewien, że widziałeś adresy IP wszędzie, ale oto są, jeśli nie: 208.67.222.222 i 208.67.220.220.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.