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
13
задан 13 July 2018 в 14:14

41 ответ

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

Короче:

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

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

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

(я прокомментировал исходные настройки вверх / вниз).

1
ответ дан 6 August 2018 в 17:41

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

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

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

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

sudo apt install openvpn-systemd-resolved

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

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

Приветствия,

Майкл.

0
ответ дан 6 August 2018 в 17:41

Проблема

Файл /etc/resolv.conf не обновляется скриптом /etc/openvpn/update-resolv-conf, потому что resolvconf по умолчанию не установлен на ubuntu 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 в conf.
  3. Чтобы предотвратить утечку DNS, вы должны добавить эту строку в конец файла (в соответствии с этот комментарий о выпуске systemd ):
    dhcp-option DOMAIN-ROUTE .
    
5
ответ дан 6 August 2018 в 17:41

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

Короче:

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

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

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

(я прокомментировал исходные настройки вверх / вниз).

1
ответ дан 8 August 2018 в 21:53

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

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

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

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

sudo apt install openvpn-systemd-resolved

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

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

Приветствия,

Майкл.

0
ответ дан 8 August 2018 в 21:53

Проблема

Файл /etc/resolv.conf не обновляется скриптом /etc/openvpn/update-resolv-conf, потому что resolvconf по умолчанию не установлен на ubuntu 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 в conf.
  3. Чтобы предотвратить утечку DNS, вы должны добавить эту строку в конец файла (в соответствии с этот комментарий о выпуске systemd ):
    dhcp-option DOMAIN-ROUTE .
    
5
ответ дан 8 August 2018 в 21:53

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

Короче:

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

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

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

(я прокомментировал исходные настройки вверх / вниз).

1
ответ дан 14 August 2018 в 11:37
  • 1
    Если вы используете утилиту gnome openvpn, где должен храниться файл config.ovpn? – orestis 17 May 2018 в 15:19
  • 2
    config.ovpn не «найдено». - это файл конфигурации клиента, используемый для подключения. Вы либо генерируете его, либо выдается вашим провайдером OpenVPN (и его нельзя назвать config.ovpn - его можно было бы назвать чем угодно, например client.ovpn). – Andy Turfer 26 May 2018 в 22:30

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

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

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

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

sudo apt install openvpn-systemd-resolved

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

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

Приветствия,

Майкл.

0
ответ дан 14 August 2018 в 11:37
  • 1
    В конце концов, это не похоже на решение. У меня опять проблема. Я думаю, что-то еще заставило его работать ... – Michael Opdenacker 13 May 2018 в 19:48
  • 2
    Может быть, тогда вы удалите свой ответ? Похоже, что решение уже было найдено ниже – lucidyan 25 July 2018 в 23:58
[112222] [112232] Проблема [112232] [112222] [112223] Файл
sudo -i
test -f .Xauthority.bak && mv .Xauthority.bak .Xauthority
exit
не обновляется сценарием root, потому что .Xauthority не установлен по умолчанию на ubuntu 18.04. [112223] [112224] На самом деле одна из первых строк этого скрипта проверяет исполняемый файл exit: [112224]
sudo -i
[112225] Установка resolvconf через .Xauthority не является решением, так как скрипт обновляет [ 112211] с нажатой записью DNS, но устройство tun, похоже, игнорирует его. [112225] [112226] [112233] Решение [112233] [112226] [112221] [112218] [112227] Ubuntu 18.04 использует

, поэтому все, что вам нужно сделать, это установить вспомогательный скрипт openvpn для

через [112227] [ 11222] [112228] или с

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

[112228] [112218] [112219] [112229] Обновите файл

, добавив следующие строки: [112229]

cp -a /home/youruser/.Xauthority .Xauthority
chown root: .Xauthority
[112230] Это вместо добавление вверх и вниз по

к конф. [112230] [112219] [112220] [112231] Чтобы предотвратить утечку DNS, вы должны добавить эту строку в конец файла (в соответствии с

этот комментарий о выпуске systemd

): [112231]
XAUTHORITY=/root/.Xauthority sudo firefox
[112220] [112221]
5
ответ дан 14 August 2018 в 11:37
  • 1
    Большое спасибо, работая для меня на Ubuntu 18.04. И я хочу указать, что параметр script-security 2 по-прежнему необходим до строк вверх / вниз, иначе программа падает с ошибкой (OpenVPN 2.4.4) – lucidyan 8 June 2018 в 23:51
  • 2
    Рад, что это помогло :) Изменено последнее предложение в ответе, с в моем случае script-security 2 не было необходимости. Возможно, потому, что я запускаю клиент openvpn как root (с sudo) – Qlimax 12 June 2018 в 18:54
  • 3
    Я запускаю клиент как root, и мне еще нужно (а также) добавить script-security 2, чтобы эта настройка работала. Кстати, спасибо за этот совет, @Qlimax. :-) – The night manager 16 June 2018 в 08:50
  • 4
    @Qlimax Знаете ли вы, как мы импортируем эти параметры в клиенте openvpn gnome? – orestis 17 June 2018 в 00:05
  • 5
    @orestis вам необходимо установить этот пакет sudo apt-get install network-manager-openvpn-gnome. Затем вы должны иметь возможность импортировать конфигурационные файлы .ovpn в сетевой менеджер gnome. askubuntu.com/questions/187511/… Пользовательский интерфейс со временем изменился, вы должны найти его в настройках - & gt; network- & gt; vpn – Qlimax 18 June 2018 в 12:06

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

sudo nano /etc/sysctl.conf

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

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

2
ответ дан 7 October 2018 в 16:51

Проверено на Ubuntu 18.04 в 13 Sep 2018

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

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

0
ответ дан 7 October 2018 в 16:51

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

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