openvpn через командную строку: отказано в разрешении на обновление resolv.conf - proUbuntu
Винтажный Клуб для гитаристов
2 голосов
/

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

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

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

в файл .ovpn, предоставленный Cyberghost.

При попытке подключения с помощью

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

openvpn 2.4.0-4ubuntu1.3

Полный .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 ]

1 голос
/

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

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

это не то, как работает эта функциональность. Скорее, пакет openvpn-systemd-resolved динамически обновляет файл /etc/resolv.conf, указывая исполняемый сценарий после up и down в вашей клиентской конфигурации openvpn (согласно связанному (и неполному!) "Учебному пособию"). Но также обратите внимание, что существуют разные версии этой функциональности; более поздние версии используют 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; но в Windows они обычно используют .ovpn для правильное сопоставление файлов с openvpn) - клиентский файл openvpn будет содержать, например,

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

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

0 голосов
/

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

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 только если ничего не работает, так как это может вызвать дыру в безопасности.

Добро пожаловать на сайт proUbuntu, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...