Ubuntu 18.04 без разрешения DNS при подключении к openvpn

Когда я подключаюсь к сети VPN через Gnome Network-manager, я теряю разрешение DNS и на практике не могу получить доступ к ресурсам внутри сети VPN или за ее пределами.

Когда я использовал Ubuntu 16.04 и использовал VPN, файл «/etc/resolv.conf/» содержал DNS-серверы сети (VPN), которую я подключил. Теперь он всегда содержит следующие записи:

nameserver 127.0.0.53
search myprovider.com

Из того, что я понял 127.0.0.53, является адрес заглушки DNS, используемый system-resolved.

Я подозреваю, что это ошибка, потому что VPN работал нормально на Ubuntu 16.04. Можно ли как-то настроить DNS-серверы моей сети, когда я использую службу VPN?

Обновление:

Я попытался подключиться к сети OpenVPN с файлом конфигурации, прикрепленным в конце сообщения, но я получаю следующую ошибку:

 Authenticate/Decrypt packet error: cipher final failed

Я проверил, что сервер использует lzo сжатие, и я также включил его. Соединение остается активным, но я не могу перейти ни на одну страницу внутри или за пределами VPN.

В файле конфигурации, указанном ниже, я включил решения, опубликованные в ответах

 client
 dev tun
 proto udp
 remote openvpn.bibsys.no 1194
 remote my-server-2 1194
 resolv-retry infinite
 nobind
 user myuser
 group myuser
 persist-key
 persist-tun
 ca ca-cert.pem
 cert openvpn.crt
 key openvpn.key
 cipher AES-256-CBC
 comp-lzo yes
 script-security 2
 up /etc/openvpn/scripts/update-systemd-resolved
 down /etc/openvpn/scripts/update-systemd-resolved
 down-pre
40
задан 2 November 2018 в 20:30

5 ответов

Я нашел решение на этом сообщении в блоге. В то время как существует два упомянутые решения, я предпочитаю использовать второй, потому что это означает, что мой DNS установлен сервером OpenVPN (первые средства решения, я использую те же серверы DNS, подключен ли я к серверу OpenVPN).

Короче говоря:

  • sudo mkdir -p /etc/openvpn/scripts
  • sudo wget https://raw.githubusercontent.com/jonathanio/update-systemd-resolved/master/update-systemd-resolved -P /etc/openvpn/scripts/
  • sudo chmod +x /etc/openvpn/scripts/update-systemd-resolved

Затем отредактируйте свой клиентский файл OpenVPN (например, client.ovpn) путем изменения/вниз сценарии к:

script-security 2
# up /etc/openvpn/update-resolv-conf
# down /etc/openvpn/update-resolv-conf
up /etc/openvpn/scripts/update-systemd-resolved
down /etc/openvpn/scripts/update-systemd-resolved

(Я прокомментировал оригинал/вниз настройки).

27
ответ дан 23 November 2019 в 00:08

Проблема

Файл /etc/resolv.conf не становится обновленным /etc/openvpn/update-resolv-conf сценарий, потому что resolvconf не установлен по умолчанию на человечности 18.04.

На самом деле одна из первых строк того сценария проверяет на /sbin/resolvconf исполняемый файл:

[ -x /sbin/resolvconf ] || exit 0

Установка resolvconf через apt-get не решение как /etc/openvpn/update-resolv-conf сценарий обновляет /etc/resolv.conf файл с продвинутой записью DNS, но устройством бочки, кажется, игнорирует его.

Решение

  1. Использование Ubuntu 18.04 systemd-resolved, таким образом, все, что необходимо сделать, установить openvpn сценарий помощника для systemd-resolved через

    sudo apt install openvpn-systemd-resolved
    

    или с этими инструкциями GitHub

  2. Обновите Ваш config.ovpn файл, добавляющий эти строки:

    script-security 2
    up /etc/openvpn/update-systemd-resolved
    down /etc/openvpn/update-systemd-resolved
    down-pre
    

    Это вместо того, чтобы добавить вверх и вниз /etc/openvpn/update-resolv-conf к конференции

  3. Для предотвращения Утечки DNS необходимо добавить эту строку в конец config.ovpn файл (согласно этому systemd выпускают комментарий):

    dhcp-option DOMAIN-ROUTE .
    
49
ответ дан 23 November 2019 в 00:08

На меня влияют также. В моем случае я использую OpenVPN с внутренним сервером имен (который является в VPN). Это работало до Ubuntu 17.10 (с "хостами: файлы DNS" в/etc/nsswitch.conf).

/etc/resolv.conf был обновлен правильно openvpn сценариями (через вызовы к/etc/openvpn/update-resolv-conf в openvpn клиентском конфигурационном файле).

Однако определение имен для хостов в VPN не работало больше (или по крайней мере эпизодически... Я предполагаю, что локальный кэш DNS выбирал имена, но после довольно долгого времени).

То, что, кажется, помогает, или даже решает вопрос (хотя это является слишком ранним для высказывания), должно установить ниже пакета:

sudo способная установка openvpn-systemd-resolved

Через несколько дней у меня будет больше опыта, устраняет ли это мою проблему или нет.

Если на Вас влияют также, попробуйте это и добавьте комментарии!

Удачи,

Michael.

0
ответ дан 23 November 2019 в 00:08

На самом деле существует намного более легкое решение этой проблемы. Проблема с трафиком DNS и как Ubuntu 18 управляет этим. IP по умолчанию передача отключена, который является тем, в чем OpenVPN нуждается для обеспечения надлежащих сетей. Все, что необходимо сделать, выполняется следующая команда:

sudo nano /etc/sysctl.conf

После того как Вам открыли этот файл, ищете строку, которая содержит net.ipv4.ip_forward. Если эта строка прокомментирована, удалите знак # впереди строки (если это не прокомментировано затем, что у Вас есть другая проблема). Сохраните файл и затем перезапустите свой экземпляр сервера OpenVPN.

Эта фиксация не требует никаких модификаций клиенту или коду OpenVPN после обновления Ubuntu 18. Протестированная и подтвержденная работа.

Однако это, очевидно, требует, чтобы можно было администрировать сервер. И к сожалению, ошибка существует для многих, кто просто соединяется с 18,04 с сервером OpenVPN, который администрируем кем-то еще...

5
ответ дан 23 November 2019 в 00:08

Протестированный на Ubuntu 18.04 13 сентября 2018

Существует другой полезные команды для установки то, в чем Вы нуждаетесь через командную строку. Но в моем случае можно управлять соединением VPN и с командной строкой и с GUI.

sudo nmcli connection add type vpn vpn-type openvpn con-name la.vpn.contoso.com ifname --

ifname -- необходимое по умолчанию, но ни на что не влияет

sudo nmcli connection modify la.vpn.contoso.com ipv4.dns 172.16.27.1 sudo nmcli connection modify la.vpn.contoso.com ipv4.dns-search int.contoso.com sudo nmcli connection modify la.vpn.contoso.com ipv4.never-default yes

never-default не должен использовать удаленный шлюз в качестве маршрута по умолчанию

И намного более заинтересованный последний штрих:

nmcli connection modify la.vpn.contoso.com vpn.data 'ca = /tmp/la.vpn.contoso.com/you/ca.crt, key = /tmp/you.key, dev = tun, cert = /tmp/you.crt, cert-pass-flags = 1, comp-lzo = adaptive, remote = la.vpn.contoso.com:1194, connection-type = tls'

Впоследствии можно управлять vpn с GUI или использованием после команд:

sudo nmcli --ask connection up la.vpn.contoso.com sudo nmcli connection down la.vpn.contoso.com

2
ответ дан 23 November 2019 в 00:08

Другие вопросы по тегам:

Похожие вопросы: