Cela pourrait être un doublon de cette question , mais je ne suis pas assez compétent en matière de réseautage pour pouvoir le dire avec certitude.
J'utilise un service VPN nommé Cyberghost pour rester privé sur Internet. Après avoir été confronté à des fuites DNS lors de l'utilisation de network-manager
, j'ai essayé d'utiliser la ligne de commande et d'implémenter les correctifs mis en ligne. Aparantly block-outside-dns
ne fonctionne que sous Windows. J'ai donc suivi ce tutoriel et ajouté les lignes
script-security 2
up /etc/resolv.conf
down /etc/resolv.conf
au fichier .ovpn fourni par cyberghost.
Lorsque vous essayez de vous connecter en utilisant
Sudo openvpn --config /home/username/CG/DE/DE.ovpn
cependant j'obtiens l'erreur suivante:
Options error: --up script fails with '/etc/resolv.conf': Permission denied
Options error: Please correct this error.
Use --help for more information.
Se connecter sans la commande up and down fonctionne bien mais provoque des fuites DNS. Je ne rencontre pas de problèmes lors de l'édition manuelle de resolv.conf
avec les privilèges de Sudo; par conséquent, je ne suis pas sûr de savoir pourquoi openvpn ne devrait pas avoir l'autorisation de le faire.
Merci pour vos pensées et votre aide,
Alex
Système: Kubuntu 17.04
openvpn 2.4.0-4ubuntu1.3
Le fichier .ovpn complet est le suivant:
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
Peu importe si c'est ce que vous voulez ou devez vraiment faire, voici ce qui suit:
_up /etc/resolv.conf
down /etc/resolv.conf
_
n'est pas comment cette fonctionnalité fonctionne. Au lieu de cela, le package _openvpn-systemd-resolved
_ met à jour le fichier _/etc/resolv.conf
_ de manière dynamique en spécifiant un script exécutable après les commandes up
et down
de votre client openvpn (comme indiqué dans le fichier lié (et incomplet)). !) "Didacticiel"). Mais aussi, notez qu'il existe différentes versions de cette fonctionnalité; les versions ultérieures utilisent dbus , que je référence; le version précédente vient d'utiliser des scripts et des fichiers temporaires. C'est pourquoi il y a une certaine incohérence entre les articles/docs/tutoriels.
Donc, en supposant que ce paquet soit installé (soit via _apt-get
_ ou apt
):
_Sudo apt-get install openvpn-systemd-resolved
_
et vérifier que le service est en cours d’exécution (si ce n’est pas le cas: activez-le et démarrez-le manuellement):
_Sudo service systemd-resolved status
_
alors, il devrait y avoir un script installé en tant que _/etc/openvpn/update-resolv-conf
_ (ou éventuellement dans _/etc/openvpn/scripts/
_ dans d'autres distributions) qui modifie le _/etc/resolv.conf
_ pour vous.
Ainsi, votre client openvpn (qui sur les clients autres que Windows devrait, par convention, porter le suffixe "_.conf
_" et sera lu automatiquement si, dans _/etc/openvpn
_; mais sous Windows, ils utilisent généralement _.ovpn
_ pour l'association de fichier appropriée w/openvpn) - la configuration du client openvpn contiendrait, par exemple,
_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
_
Ensuite, vous remarquerez que c’est le script _/etc/openvpn/update-systemd-resolved
_ qui doit être exécutable (il s’agit par défaut), et _/etc/resolv.conf
_ sera un simple fichier texte mis à jour avec le correct domain
, nameserver
, search
entrées (c'est pas un script exécutable).
Le dernier élément à lier est de modifier _/etc/nsswitch.conf
_ pour contenir quelque chose comme ce qui suit (en remplacement de l'entrée _hosts:
_ existante):
_# Use systemd-resolved first, then fall back to /etc/resolv.conf
hosts: files resolve dns myhostname
_
Voir la page liée github update-systemd-resolue pour plus de détails et d’options.
La seule solution à laquelle je peux penser est en cours d'exécution
Sudo -s
Puis courir
openvpn --config file.ovpn
Si cela ne fonctionne pas, essayez de courir
Sudo chown root /etc/resolv.conf
ou
Sudo chown $USER /etc/resolv.conf
et en dernier recours
Sudo chmod 777 /etc/resolv.conf
N'utilisez chmod 777
que si rien d'autre ne fonctionne, car cela pourrait créer une faille de sécurité.