PiVPN - Pour transformer un Raspberry Pi en serveur OpenVPN
Si vous voulez vous installer un petit serveur OpenVPN à la maison et utiliser votre connexion perso pour y faire transiter vos paquets en toute sécurité, c’est possible grâce à un Raspberry Pi, une petite carte SD d’au moins 8GB et le script PiVPN.
Pour procéder à l’installation, connectez vous en ssh sur votre Raspberry Pi. Sous Raspbian, il faut faire :
ssh pi@ADRESSE_IP
Et utiliser comme mot de passe : raspberry
Ensuite, lancez la commande suivante qui aura pour effet de télécharger et lancer le script PiVPN.
curl -L https://install.pivpn.io | bash
Ça va faire quelques mises à jour…
Puis ça va vous expliquer ce qui se passe et vous poser quelques questions.
PiVPN vous indique que ça va utiliser l’adresse IP attribuée via DHCP par votre routeur ou votre box.
Puis on vous demandera de choisir un utilisateur local qui gérera toutes les configs OpenVPN. Ici, je n’en ai qu’un et c’est le user “pi”.
Et puis on enchaine sur une mise à jour de patchs de sécurité.
Optez ensuite pour l’UDP concernant le protocole :
Vous pouvez changer le port du serveur OpenVPN mais par défaut c’est 1194. Pensez aussi à l’ouvrir sur votre box ou routeur si cela est filtré.
Et là, il faut choisir le niveau de chiffrement utilisé par OpenVPN… Plus le chiffre est élevé, plus le chiffrement sera dur à casser.
Le script PiVPN va alors générer les certificats de chiffrement…
Concernant la génération des paramètres Diffie Hellman, cela peut prendre beaucoup de temps à faire sur le Raspberry Pi. On parle de plusieurs heures. Évidemment, si vous n’êtes pas pressé, c’est ce que je vous recommande (choisir “No”). Mais si vous voulez aller plus vite, PiVPN vous propose de récupérer des paramètres générés aléatoirement sur un serveur public (choisir “Yes”). À vous de voir…
Une fois que c’est fait, on vous demandera si les clients vont se connecter en utilisant l’adresse IP publique de votre Raspberry Pi ou un nom de domaine (référencé sur DNS public)
Puis vous devrez choisir vos serveurs DNS… Ceux de Google, d’OpenDNS, de Level3…etc. Ou choisissez Custom pour mettre les vôtres. Par facilité pour ce tuto, j’ai choisi OpenDNS.
Voilà, la config est terminée. À ce moment, le script PiVPN nous indique une commande pour créer des profils pour pouvoir se connecter. On va donc s’en servir…
…mais avant, on a besoin de redémarrer le Raspberry Pi !
Une fois que c’est redémarré, reconnectez-vous via SSH à votre Rpi. Vous pouvez pour plus de sécurité changer aussi le mot de passe par défaut avec la command “passwd”.
Lancez ensuite la commande
pivpn add
Pour créer un nouveau profil de connexion à votre serveur OpenVPN. Donnez-lui un nom d’utilisateur, un mot de passe et paf, une clé sera générée et un fichier USERNAME.ovpn sera placé dans le dossier /home/pi/ovpns
Ce fichier *.ovpn est très important, car il contient les clés nécessaires à un client OpenVPN pour se connecter à votre serveur. Vous devez donc le copier et le transmettre aux appareils qui ont besoin de se connecter à votre serveur OpenVPN.
Par exemple, sous Android, vous pouvez télécharger et installer le client suivant et y importer ce fichier .ovpn. Il ne vous sera alors demandé uniquement votre mot de passe et la connexion s’établira.
Ensuite pour la gestion, vous pouvez utiliser les commandes suivantes :
pivpn clients (pour afficher les clients connectés)
pivpn list (pour afficher les certificat valides et révoqués)
pivpn revoke (pour révoquer un certificat précis)
et
pivpn uninstall (pour désinstaller pivpn)
Et voilà ! Trop facile !