La mise en place d'une connexion VPN sur Linux est assez simple. Dans cet article, nous allons voir comment paramétrer OpenVPN sur un Raspberry Pi sous Raspbian pour se connecter automatiquement à un compte Premium de CyberGhost.

OpenVPN est simple d'installation, disponible sur beaucoup de plateformes, open-source et sécurisé ! Nous allons l'utiliser pour se connecter à CyberGhost sur un Raspberry Pi 2 fonctionnant sous Raspbian.

Installation d'OpenVPN

Avant tout paramétrage, il faut bien sûr installer OpenVPN :

apt-get install openvpn openssl openresolv

Récupération de la configuration de CyberGhost

Rendez-vous sur le site de CyberGhost pour vous connecter à votre interface. Puis allez sur l'onglet "Devices".

Cliquez sur "Other devices" à droite.
Choisissez OpenVPN (UDP), Linux puis un pays parmi la liste.

Cliquez enfin sur le bouton "Download Configuration".

Paramétrage d'OpenVPN

Vous allez vous retrouver avec une archive ZIP contenant 4 fichiers :

  • ca.crt : certificat de l'autorité de certification racine
  • client.crt : certificat de l'utilisateur
  • client.key : votre clé privée
  • openvpn.ovpn : fichier de configuration pour OpenVPN

Renommez le fichier openvpn.opvn en "CyberGhost_de.conf" par exemple.

Copiez ces 4 fichiers dans le dossier /etc/openvpn/ du Pi, avec WinSCP par exemple.

Nous allons ensuite ajouter la connexion automatique avec le couple utilisateur / mot de passe de votre compte CyberGhost.
Pour cela, créez un fichier auth.txt dans /etc/openvpn/ :

nano /etc/openvpn/auth.txt

Inscrivez-y simplement vos identifiants :

Nom d'utilisateur
Mot de passe

Ensuite, ouvrez le fichier CyberGhost_de.conf et retrouvez la ligne auth-user-pass (vers le début) pour la modifier ainsi :

auth-user-pass /etc/openvpn/auth.txt

Vers la fin du fichier, ajoutez ces lignes après comp-lzo :

up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

Enregistrez votre fichier puis ouvrez celui-ci :

nano /etc/default/openvpn

Ajoutez la ligne suivante :

AUTOSTART="CyberGhost_de"

Elle permet de charger automatiquement le fichier de configuration "CyberGhost_de.conf" (attention à ne pas rajouter l'extension .conf !).

Test de connexion

Maintenant qu'OpenVPN est correctement configuré, nous allons pouvoir tester son fonctionnement.

Avant tout, vérifiez votre IP WAN avec :

curl http://ezservermonitor.com/myip

Cela doit retourner votre IP Internet actuelle.

Lancez OpenVPN :

service openvpn start

Puis revérifiez votre IP WAN pour constater qu'elle a changé. Vous pouvez aussi vérifier avec la commande route que vous passez bien par des serveurs étrangers.

Vérifiez également vos DNS avec :

cat /etc/resolv.conf

Le fichier doit contenir des serveurs DNS de CyberGhost.

Problèmes rencontrés et leurs solutions

Avant d'écrire ce tuto, j'ai rencontré un problème avec le fichier /etc/resolv.conf. Avant le démarrage d'OpenVPN, il était correctement renseigné. Une fois OpenVPN lancé, les DNS étaient bien modifiés par ceux de CyberGhost mais quand j'arrêtais le service OpenVPN, le fichier se vidait !

J'ai dû modifier le fichier /etc/openvpn/update-resolv-conf pour qu'il fasse une copie du fichier /etc/resolv.conf original au démarrage du service OpenVPN et qu'il l'écrase à son arrêt.
La source : https://forums.openvpn.net/topic15508.html#p39827.

Dans le cas "up)", après le dernier "done", inscrivez ceci :

cp /etc/resolv.conf /etc/resolv.conf.default

Puis dans le cas "down)", mettez ceci avant les ";;" :

mv -f /etc/resolv.conf.default /etc/resolv.conf

J'ai rencontré un autre problème : au reboot du Pi, le fichier /etc/resolv.conf (toujours le même...) était vide... J'ai donc rajouté cette ligne dans la déclaration de mon interface réseau dans le fichier /etc/network/interfaces (changez 8.8.8.8 par l'adresse de votre serveur DNS préféré) :

dns-nameservers 8.8.8.8

Puis j'ai fait un resolvconf -u pour mettre à jour le fichier de base de resolvconf.

Un petit reboot pour vérifier et tout est rentré dans l'ordre !