Я использую соединение OpenVPN между моим ноутбуком и сервером. Конфигурация работала до сегодняшнего дня (я просто запустил apt update && apt upgrade
), но с тех пор мои настройки DNS «неверны» после подключения к OpenVPN.
После подключения к серверу OpenVPN у меня есть две «перехватить все» записи домена DNS (DNS Domain: ~.
) в моей конфигурации systemd-resolve
.
Обрезанный вывод systemd-resolve --status
:
Link 11 (tun0)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 192.168.X.Y
DNS Domain: ~.
Link 2 (enp0s25)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 10.16.X.Y
10.16.X.Y
DNS Domain: ~.
Поэтому DNS-запросы теперь не безопасно передаются через VPN, но также могут передаваться через обычную сеть.
Это приводит к DNSLeak, и еще хуже: внутренние имена хостов VPN не разрешаются правильно (время от времени).
Мне известны только варианты добавления записи DNS Domain: ~.
в Tun0-Interface для разрешения. Но как мне удалить уже существующий из реального интерфейса?
Я уже использую этот конфиг для обновления systemd-resolved в моем клиенте OpenVPN.conf:
# Upate systemd-resolvd
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre
dhcp-option DOMAIN-ROUTE .
Кто-нибудь получил идея, как решить эту проблему?
// Обновление: похоже, это более известная проблема с NetworkManager, который начинает произвольно присоединять корневой домен DNS к ссылкам. Об этом есть интересное обсуждение в GitHub Issue в репозитории разработчика сценария update-systemd-resolved
.
// Вероятно, этот коммит в NetworkManager сломал его. Так как он ввел по умолчанию маршрут DNS для всех интерфейсов поведения.
Добавьте к клиентскому конфигурационному файлу (файл с расширением .ovpn) загруженный с сервера OpenVPN строка:
dhcp-option DOMAIN-ROUTE .
, Как Вы знаете, прежде, чем добавить эту строку, в Ubuntu 18.04, которую необходимо установить update-systemd-resolved
сценарии, как описано в https://github.com/jonathanio/update-systemd-resolved
, Если это все еще не работает, возможно, необходимо добавить внутренний сервер DNS также. Проверьте строки, которые Вы добавляете в конце .ovpn файла, похож:
script-security 2
dhcp-option DNS 10.1.0.1 # replace this IP with your DNS server IP.
dhcp-option DOMAIN yourinternaldomain.local # replace this with your internal domain name.
dhcp-option DOMAIN-ROUTE .
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre
<час> Наконец, при использовании Значков VPN UI для соединения с VPN, необходимо повторно импортировать измененный файл .ovpn.
, Чтобы сделать, которые выполняются в терминале:
sudo apt install openvpn openvpn-systemd-resolved resolvconf
sudo apt install network-manager-openvpn network-manager-openvpn-gnome
Щелчок в меню "Пуск" Ubuntu:
Тип слово "сеть" и нажимают на Network. Это должно показать что-то как:
Щелчок в" + " входит в систему VPN и нажимает в "импорте из файла" опцию:
Когда-то импортированный, добавьте имя и нажмите "добавить" кнопку в верхнем правом из диалогового окна.
Вы все установлены!
<час>Для соединения с VPN нажмите в значке сети и после этого в значке блокировки.