DNS-сервер по умолчанию не переключается после подключения к OpenVPN

DNS-сервер по умолчанию не переключается после подключения к OpenVPN

Я использую соединение OpenVPN между моим ноутбуком и моим сервером. Конфигурация работала до сегодняшнего дня (я просто запустил apt update && apt upgrade), но с тех пор мои настройки DNS стали "неправильными" после подключения к OpenVPN.

DNS Domain: ~.После подключения к серверу OpenVPN в моей systemd-resolveконфигурации есть две «перехватывающие» записи домена DNS ( ).

Вывод сокращен 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, а могут передаваться через обычную сеть.

Это приводит к утечке DNS и даже хуже: внутренние имена хостов VPN не преобразуются правильно (время от времени).

Я знаю только варианты добавления DNS Domain: ~.записи в tun0-Interface для разрешенного. Но как удалить уже существующую из реального интерфейса?

Я уже использую эту конфигурацию для обновления systemd-resolved в моем OpenVPN client.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в репозитории разработчика скрипта update-systemd-resolved.

// Вероятноэто совершитьк NetworkManager сломал его. Так как он ввел маршрут dns по умолчанию для всех интерфейсов поведения.

решение1

Добавьте в файл конфигурации клиента (файл с расширением .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

Если вы используете пользовательский интерфейс (gnome) для подключения

Наконец, если вы используете значки пользовательского интерфейса VPN для подключения к VPN, вам необходимо повторно импортировать измененный файл .ovpn.

Для этого выполните в терминале:

sudo apt install openvpn openvpn-systemd-resolved resolvconf
sudo apt install network-manager-openvpn network-manager-openvpn-gnome

Нажмите в меню «Пуск» Ubuntu:

Меню Убунту

Введите слово "сеть" и нажмите на Сеть. Должно появиться что-то вроде:

Настройка сети

Нажмите в "+" войдите в VPN и нажмите на опцию "импортировать из файла":

импортировать файл ovpn

После импорта добавьте имя и нажмите кнопку «Добавить» в правом верхнем углу диалогового окна.

У вас все настроено!


Чтобы подключиться к VPN, щелкните значок сети, а затем значок замка.

введите описание изображения здесь

Связанный контент