openvpn via linha de comando: permissão negada para atualizar o resolv.conf

2

Esta pode ser uma duplicata de esta questão , mas eu não sou proficiente o suficiente em questões de rede para dizer com certeza.

Eu uso um serviço VPN chamado Cyberghost para permanecer privado na internet. Depois de enfrentar vazamentos de DNS ao usar network-manager , tentei usar a linha de comando e implementar correções promovidas on-line. Aparentemente block-outside-dns funciona apenas no windows. Portanto, eu segui este tutorial e adicionei o linhas

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

para o arquivo .ovpn fornecido pelo cyberghost.

Ao tentar se conectar usando

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

no entanto, recebo o seguinte erro:

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

A conexão sem o comando para cima e para baixo funciona bem, mas causa vazamentos de dns. Eu não encontro problemas manualmente editando resolv.conf usando sudo privilleges, portanto, eu não tenho certeza porque o openvpn deve ter a permissão para fazê-lo.

Obrigado por seus pensamentos e sua ajuda,

Alex

Sistema: Kubuntu 17.04

openvpn 2.4.0-4ubuntu1.3

O arquivo .ovpn completo é o seguinte:

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
    
por Alex 20.08.2017 / 16:11

2 respostas

1

Independentemente de isso ser ou não o que você realmente quer ou precisa fazer, aqui está:

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

não é como essa funcionalidade funciona. Em vez disso, o pacote openvpn-systemd-resolved atualiza dinamicamente o arquivo /etc/resolv.conf , especificando um script executável após o up e down em seu cliente openvpn conf (conforme o "tutorial" vinculado (e incompleto!)). Mas também observe que existem diferentes versões dessa funcionalidade; versões posteriores usam dbus , que eu estou referenciando; o versão anterior apenas usou scripts & arquivos temporários. Então é por isso que há alguma inconsistência entre artigos / docs / tutoriais.

Portanto, supondo que esse pacote esteja instalado (via apt-get ou apt ):

sudo apt-get install openvpn-systemd-resolved

e verificar se o serviço está sendo executado (se não: ative-o e inicie-o manualmente):

sudo service systemd-resolved status

então, deve haver um script instalado como /etc/openvpn/update-resolv-conf (ou possivelmente em /etc/openvpn/scripts/ em outras distribuições) que modifica o /etc/resolv.conf para você.

Portanto, seu cliente openvpn conf (que em clientes que não são Windows devem por convenção ter um sufixo " .conf " e eles serão lidos automaticamente se em /etc/openvpn ; mas no windows eles geralmente usam .ovpn para associação adequada de arquivos w / openvpn) - o conf openvpn client conteria, por exemplo,

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

Em seguida, você notará que é o script /etc/openvpn/update-systemd-resolved que precisa ser executável (por padrão) e /etc/resolv.conf será um arquivo de texto simples que será atualizado com% corretodomain, nameserver , search entradas (não é um script executável).

O último elemento a ser unido é modificar /etc/nsswitch.conf para conter algo como o seguinte (substituindo a entrada hosts: existente):

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

Consulte a página do github com atualização do system-updated para obter detalhes e opções.

    
por michael 01.01.2018 / 16:14
0

A única solução em que consigo pensar é a execução

sudo -s

Em seguida, executando

openvpn --config file.ovpn

Se isso não funcionar, tente executar

sudo chown root /etc/resolv.conf

ou

sudo chown $USER /etc/resolv.conf

e como último recurso

sudo chmod 777 /etc/resolv.conf

Use apenas chmod 777 se nada mais funcionar, pois isso pode causar uma falha de segurança.

    
por NerdOfLinux 20.08.2017 / 16:16