заблокировать снаружи днс, исправить утечки днс убунту 18.04


10

Используя тест утечки DNS, в то время как под моим VPN я обнаружил, что это протекало. Я настроил свой VPN через NetworkManager, и он работает правильно, за исключением утечки.

Во-первых, я попытался добавить block-outside-vpnв файл конфигурации, за исключением того, что под /etc/NetworkManager/system-connectionsним не следует тот же формат. Я не мог найти документ о том, как правильно написать один для DNS утечки.

Кроме того, использование Ubuntu 18.04 resolv.conf не работает как прежде, все остальные ответы основаны на этом.

Вкратце, как заблокировать внешний DNS (утечка) с помощью файлов конфигурации Network Manager или графического интерфейса?


block-outside-vpnобычно это только вариант подключения Windows OpenVPN. Устранить «утечку» DNS можно было бы с использованием определенного DNS-сервера, который существует только на другой стороне VPN. Какие результаты теста на утечку DNS вы видели? (они актуальны)
— Томас Уорд

Ответы:


3

Я предлагаю использовать dnscrypt.

Сначала установите его:

sudo apt install dnscrypt-proxy

По умолчанию он прослушивает 127.0.2.1порт 53.

Отредактируйте VPN или любое другое соединение, которое вам нравится, и установите 127.0.2.1его в качестве DNS-сервера, используя CLI, который вы можете запустить:

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

И на всякий случай заблокируйте исходящие DNS-запросы:

sudo ufw deny out 53

И убедитесь, что брандмауэр включен:

sudo ufw enable

Мой DNS все еще протекает согласно тесту утечки DNS. Также важно упомянуть, что отключение VPN при включенном ufw сделает Интернет недоступным (заблокированный порт 53).
— Поб

Запустите эту команду: nmcli connection modify [CONNECTION-NAME] ipv4.ignore-auto-dns yesпосмотрите, поможет ли это.
— Равексина

3

Чтобы исправить утечки DNS в Ubuntu 18.04, вы можете отредактировать файл с именем /etc/dhcp/dhclient.conf. Согласно странице руководства, этот файл «предоставляет средство для настройки одного или нескольких сетевых интерфейсов с использованием протокола динамической конфигурации хоста, протокола BOOTP или, если эти протоколы не работают, путем статического присвоения адреса».

Что касается исправления ваших утечек DNS, мы будем редактировать этот файл. Открыв его с соответствующими разрешениями, вы увидите закомментированную строку, которая выглядит примерно так:

#prepend domain-name-servers 127.0.0.53;

Раскомментируйте эту строку и измените сервер доменных имен на другой, например OpenDNS: 208.67.222.222. Используя этот адрес OpenDNS, эта строка теперь будет выглядеть так:

prepend domain-name-servers 208.67.222.222;

После сохранения файла и перезагрузки вашей системы это должно исправить утечки DNS в Ubuntu 18.04.


Или вы можете просто отредактировать ваше соединение в графическом интерфейсе и получить тот же результат: откройте окно редактирования для вашего соединения => Настройки IPv4 / IPv6, измените «Метод» на «Автоматически, только адреса» и добавьте ваши «DNS-серверы».
— GoodGuyNick

Метод @GoodGuyNick через графический интерфейс не работал для меня. Я гуглил эту проблему весь день, и сработал только трюк "prepend domain-name-server". Аллилуйя за этот ответ. Все остальное, что я пробовал (включая графический интерфейс для DNS-серверов), перезаписывалось и не выдерживало перезагрузки.
— Пестофаг

3

Если у вас есть утечка DNS, о чем свидетельствует проверка на browserleaks.com или dnsleaktest.com ,

  1. Отключите VPN-соединение

  2. Попытайтесь отменить любые изменения файла .conf, которые вы уже потратили впустую. Если вы пробовали много разных предложений, лучше всего выполнить новую установку и убедиться, что вы также установили networkmanager-openvpn-gnome, поскольку в Ubuntu по умолчанию отсутствует импорт конфигурации VPN.

  3. Установить dnsmasq

    sudo apt update
    sudo apt install dnsmasq  
    
  4. Отключить разрешено

    sudo systemctl disable systemd-resolved.service
    sudo systemctl stop systemd-resolved.service 
    
  5. Удалите / etc/resolv.confи создайте новый:

    sudo rm /etc/resolv.conf
    sudo nano /etc/resolv.conf  
    
  6. Введите в свой пустой .confфайл:

    nameserver 127.0.0.1`         that's all!
    
  7. Нажмите Ctrl+, x чтобы выйти из редактора. Введите, yчтобы сохранить, а затем нажмите, Enterчтобы перезаписать новый resolv.confфайл.

  8. Отредактируйте ваш файл NetworkManager.conf

    sudo nano /etc/NetworkManager/NetworkManager.conf 
    

    и добавьте следующее:

    dns=dnsmasq 
    

    ниже линий (перемещайтесь с помощью клавиш со стрелками), [main] и plugins = ifupdown, файл ключей точно такой же, как и с новой строкой.

    [main]
    plugins=ifupdown, keyfile
    dns=dnsmasq
    

    Нажмите Ctrl+, xчтобы выйти из редактора. Введите, y чтобы сохранить, а затем нажмите, Enterчтобы перезаписать файл.

  9. Выйдите из терминала, перезагрузите систему и проверьте результаты на сайте тестирования dnsleak.

Благодаря Anonymous VPN , решения для утечек в Ubuntu / Network Manager кажутся хорошо исследованными и успешными. ОНИ РАБОТАЮТ, и когда никакие другие решения не сработали для меня, они сработали. Показанное выше решение работает для Ubuntu 17.x и 18.04 LTS . Смотрите его другое решение для 16.04 LTS .


Я протестировал это решение на ВМ, и все заработало. Затем я попробовал на основной машине и увидел DNS из VPN и DNS утечки. На виртуальной машине, nameserverизмененной с 127.0.2.1на, 192.168.122.1и когда я подключаюсь к VPN в, resolv.confя вижу две nameserverлинии, одну с 192.168.122.1другой, а другую с VPN DNS, но на основной машине я всегда вижу две линии search lan nameserver 127.0.1.1.
— GoodGuyNick

как я могу сделать то, что без сетевого менеджера? просто положить днс в / etc / network / interfaces?
— Мехди

1

Я боролся с этой проблемой в течение 2 дней, прежде чем нашел решение, которое сработало для меня, здесь: https://unix.stackexchange.com/a/470940

TL; DR

$ cd /etc/NetworkManager/system-connections

Здесь хранятся соединения, созданные с помощью Network Manager.

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

Простая команда для изменения файла конфигурации соединения. Можно было бы сделать и вручную, но я считаю, что так проще.

$ sudo service network-manager restart

Внесите изменения в вашу систему.

В основном копия вставлена ​​по ссылке выше, кредит оригинальному автору.

Если ваша система не знает nmcli или при добавлении соединений с помощью графического интерфейса администратора сети выдается ошибка, я рекомендую эту ссылку

Теперь о том, что меньше для объяснения и больше для комментария (довольно невежественен сам).

Я перепробовал многие решения, включая resolv.conf, dnsmasq и dnscrypt, которые привели к тому, что мой интернет был заблокирован либо полностью, либо когда было отключено соединение vpn. Никто из них не решил утечку DNS, сообщает dnsleaktest.com . Если предпринята какая-либо из этих попыток, каждый шаг на этом пути должен отслеживаться, чтобы иметь возможность отменить их в случае нежелательного результата. Мне понадобилось совсем немного времени, чтобы починить мой сломанный интернет снова и снова без, угадай, что, интернета. Я не утверждаю, что эти решения не работают, я, возможно, где-то допустил ошибку.
Однако решение, с которым я связан, имеет огромное преимущество, заключающееся в том, что оно не влияет на общие настройки сети, а только на одно соединение, которое вы изменяете.

Далее, block-outside-dns, как упоминалось здесь ранее, является решением только для Windows и выдало какую-то неопознанную ошибку опции в моей системе Ubuntu.

Использование команд ovpn cli также не решило проблему утечки.

Ссылка, которую я предоставил, упоминает объяснение ( здесь ) о некоторых несоответствиях версий, которые исправлены в Ubuntu 18.10, возможно, кто-то с большим опытом в этой теме захочет объяснить дальше. Если это правда, пользователям LTS придется подождать до апреля следующего года.

Наконец, я хочу отметить, что для жителей стран с интернет-цензурой утечка днс представляет собой серьезную проблему, поскольку предоставление доступа локального isp к вашему трафику может привести к блокировке цензурированных доменов, несмотря на то, что они подключены к vpn. Так что для будущих визитов в Китай и т. Д. Это то, о чем вы хотите позаботиться заранее.

Надеюсь это поможет.


0

Попробуйте использовать update-systemd-resolvedскрипт, который не вносит изменения в resolv.conf, а вместо этого использует systemd-resolvedсервис, используя его DBus API

Получить его из Git и установить его:

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

Теперь отредактируйте nsswitch.conf:

sudo nano /etc/nsswitch.conf

а затем измените строку, начиная с hosts:сказать

hosts: files resolve dns myhostname

Включите службу и убедитесь, что она работает автоматически:

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

ПРИМЕЧАНИЕ. Если вы не хотите выполнять описанные выше действия и у вас все в порядке с использованием терминала, утечка DNS происходит только при использовании NetworkManager, но, по моему опыту, этого не происходит при запуске openvpn из терминала сsudo openvpn --config config.ovpn


Какая строка в config.ovpn блокирует утечку? У вас есть пример этого? (Решение выше не работает для меня).
— Поб

0

Я попробовал почти все решения, которые я мог найти онлайн, чтобы решить проблему утечки DNS. Openvpn запустился просто отлично, но показал, что он протекал, когда я заходил на тестовые сайты. После того, как я не испытывал радости, пытаясь решить все проблемы, я вошел в настройки Wi-Fi и Ethernet и использовал DNS-серверы openvpn вместо своего провайдера, и с этого момента все было в порядке. Я уверен, что вы видели IP-адреса повсюду, но вот они, если у вас нет: 208.67.222.222 и 208.67.220.220.


0

Все, что вам нужно сделать, это

  1. Используйте Таблицы IP, чтобы форсировать все через ваш VPN-туннель
  2. Настройте свой ПК на использование статического IP-адреса с DNS-сервером по вашему выбору (DHCP не ваш друг)

Более подробно: https://github.com/OrangeReaper/abStartupManager/wiki/Some-notes-on-Ubuntu-Desktop-Security

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.