openvpn через командную строку: разрешение, отклоненное для обновления resolv.conf

Это могло бы быть дубликатом этого вопроса, но я не являюсь достаточно опытным в сетях вопросов для сообщения наверняка.

Я использую сервис VPN под названием Киберфантом для пребывания частным в Интернете. После направления с DNS протекает при использовании network-manager Я пытался использовать командную строку, и реализация фиксирует продвинутый онлайн. Aparantly block-outside-dns работы над окнами только. Поэтому я следовал этому учебному руководству и добавил строки

script-security 2
up /etc/resolv.conf
down /etc/resolv.conf

в .ovpn файл, обеспеченный киберфантомом.

При попытке соединить использование

sudo openvpn --config /home/username/CG/DE/DE.ovpn

однако я получаю следующую ошибку:

Options error: --up script fails with '/etc/resolv.conf': Permission denied
Options error: Please correct this error.
Use --help for more information.

Соединение без вверх и вниз по команде хорошо работает, но вызывает утечки DNS. Я не встречаюсь с проблемами, вручную редактируя resolv.conf использование sudo полномочия поэтому, я не уверен, почему openvpn должен испытать недостаток в разрешении сделать так.

Спасибо за Ваши мысли и Вашу справку,

Alex


Система: Kubuntu 17.04

2.4.0-4ubuntu1.3 openvpn

Полный .ovpn-файл следующие:

client

remote 1-de.cg-dialup.net 443

dev tun 

proto udp

auth-user-pass /home/username/CG/DE/auth.txt




resolv-retry infinite 

redirect-gateway def1

persist-key

persist-tun

nobind

cipher AES-256-CBC

auth MD5

ping 5

ping-exit 60

ping-timer-rem

explicit-exit-notify 2

script-security 2

remote-cert-tls server

route-delay 5

tun-mtu 1500 

fragment 1300

mssfix 1300

verb 4

comp-lzo


ca /home/username/CG/DE/ca.crt

cert /home/username/CG/DE/client.crt

key /home/username/CG/DE/client.key

script-security 2
up /etc/resolv.conf
down /etc/resolv.conf
2
задан 20 August 2017 в 17:11

2 ответа

Единственное решение, о котором я могу думать, работает

sudo -s

Затем выполнение

openvpn --config file.ovpn

, Если это не работает попытка, работающая

sudo chown root /etc/resolv.conf

или

sudo chown $USER /etc/resolv.conf

и как последнее прибежище

sudo chmod 777 /etc/resolv.conf

Только использование chmod 777, если ничто иное не работает, поскольку это может вызвать дыру в системе безопасности.

0
ответ дан 2 December 2019 в 03:37

Независимо от того, является ли это тем, что Вы действительно хотите или должны сделать, этот бит здесь:

up /etc/resolv.conf
down /etc/resolv.conf

не то, как эта функциональность работает. Скорее openvpn-systemd-resolved пакет динамично обновляет файл /etc/resolv.conf, путем определения исполняемого сценария после up и down в Вашем openvpn клиенте conf (согласно связанному (и неполный!) "учебное руководство"). Но также и, примечание там является различными версиями этой функциональности; более поздние версии используют dbus, на который я ссылаюсь; предыдущая версия просто использовала сценарии и временные файлы. Так вот почему существует некоторое несоответствие через статьи/документы/учебные руководства.

Так, принятие этого пакета установлено (любой через apt-get или apt):

sudo apt-get install openvpn-systemd-resolved

и проверка сервиса работает (если нет: включите его и запустите его вручную):

sudo service systemd-resolved status

затем, должен быть сценарий, установленный как /etc/openvpn/update-resolv-conf (или возможно в /etc/openvpn/scripts/ в других дистрибутивах), который изменяет /etc/resolv.conf для Вас.

Так Ваш openvpn клиент conf (который на клиентах не-Windows должен условно иметь".conf"суффикс, и они будут автоматически считаны если в /etc/openvpn; но на окнах они обычно используют .ovpn для надлежащей ассоциации файлов w/openvpn) - openvpn клиент conf содержал бы, например,

script-security 2
setenv PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre

Затем Вы будете замеченный, что это /etc/openvpn/update-systemd-resolved сценарий, который должен быть исполняемым файлом (это по умолчанию), и /etc/resolv.conf будет простой текстовый файл, который затем обновляется с корректным domain, nameserver, search записи (это не исполняемый сценарий).

Последний элемент, который свяжет это вместе, должен изменить /etc/nsswitch.conf содержать что-то как следующее (заменяющий существующее hosts: запись):

# Use systemd-resolved first, then fall back to /etc/resolv.conf
hosts: files resolve dns myhostname

Посмотрите связанную update-systemd-resolved страницу GitHub для деталей и опций.

2
ответ дан 2 December 2019 в 03:37

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

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