заблокировать снаружи днс, исправить утечки днс убунту 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.