On ne le répétera jamais assez mais votre sécurité sur des WIFI publics est fortement conditionnée à l’utilisation d’un VPN. Quoi de mieux que d’utiliser son propre VPN pour assurer la confidentialité de ses communications de son pc,de son téléphone Androïd sur Internet?
Bien souvent l’installation et la configuration d’un serveur VPN sous Linux rebute pas mal d’utilisateurs. C’est plutôt difficile à mettre en oeuvre avec ces histoires de génération de certificat, de clé privée, de clé publique …
Heureusement, des passionnés ont créé un script shell PIVPN proposant une installation automatique et sécurisée d’OpenVPN sur un Raspberry.
Installation d’openvpn server:
- Connexion au raspberry:
ssh pi@192.168.0.x
- Mise à jour de la Raspbian
sudo apt-get update && sudo apt-get upgrade
- Installation du script:
curl -L https://install.pivpn.io | bash
Configuration du serveur:
Une interface graphique s’affiche avec plusieurs questions qui vont vous être posées pour paramétrer au mieux votre serveur VPN.
- Adresse IP , par défaut celle que le DHCP de votre box aura attribué au rpi. Perso ,je conseille de créer un bail statique pour votre rpi au niveau de la box.
- l’utilisateur local , l’utilisateur « pi » par défaut en général présent sur toute distribution Raspbian
- choisir UDP en protocole et laisser port 1194 par défaut
- choisir 4096 bits en level encryption
- Répondre « No » à la génération des paramètres Diffie-Hellman. Perso j’ai mis 1 heure, je trouve que c’est un bon rapport temps/sécurité 🙂
- N’ayant pas de DNS , j’ai choisi l’IP de ma box pour pouvoir joindre mon serveur VPN.
- Pour le choix du DNS utilisé par le serveur VPN, attention je pense que ce paramètre n’est pas à prendre à la légère. Les DNS proposés sont ceux de Google (le Mal), OpenDNS (bof, je vous invite à lire cet article pour vous dissuader d’opter pour lui).
- Puisqu’on en est à essayer de préserver un peu de vie privée , autant prendre les DNS du plus vieux des fournisseurs d’accès français bien connu pour faire de la vie privée et de la neutralité du net son cheval de bataille, j’ai nommé FrenchDataNetwork.Donc en résumé , tu sélectionnes « Custom » puis tu rentres une des 2 adresses ip de dessous:
- Reboot du serveur
Création d’un utilisateur VPN
avec la commande:
pivpn add
Choisissez un login/passwd.
Ce sera celui que vous utiliserez sur votre pc ou votre smartphone.
Et vous obtenez le fameux fichier de type « login.ovpn« .
C’est ce dernier qui sera utilisé par le client vpn pour se connecter au serveur.
Il embarque toute votre config, les clés et le certificat.
Configuration des clients :
1/ récupérer le fichier « login.ovpn » généré précédemment
2/ copier sur les clients qui doivent se connecter au serveur openvpn.
[à partir d’un pc sous linux]:
scp pi@192.168.0.x:/home/pi/ovpns /dossierLocal
[à partir d’un téléphone sous Androïd]:
Plusieurs méthodes existent mais la plus « secure » à mon sens est la plus simple:
On connecte son téléphone en USB au pc. Puis on copie le fichier du pc /repertoire_local/benzo.ovpn vers le téléphone.
Installer openVPN à partir du dépôt FDROID.
– ouvrir directement le fichier avec l’appli openvpn
Derniers paramétrages:
– redirection du port UDP 1194 si le raspberry est derrière une box ou un autre type de routeur.
– activer routage:
Dans « /etc/sysctl.conf » =>
net.ipv4.ip_forward=1
sysctl -p
+ règles iptables
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sh -c “iptables-save > /etc/iptables.rules”
vim /etc/network/interfaces
up iptables-restore < /etc/iptables.ipv4.nat
Pour ceux qui utilisent UFW le firewall d’ubuntu , voir ce lien
- connexion client vers serveur sous linux:
apt-get install openvpn
openvpn --config login.ovpn
Test de l’anonymat du vpn
Si vous pensez être super bien protégé par le vpn tout fraîchement installé voici un site super bien fait qui concentre tous les tests d’anonymat et de failles potentielles :
Si vous êtes vulnérable à la faille webrtc , celle qui permet d’afficher votre ip réelle et ce même si vous êtes connecté derrière un VPN:
-dans firefox c’est simple:
Taper « about:config »
Puis passer media.peerconnection.enabled à false
Pour Chrome, installez l’extension WebRTC Network Limiter.
Sécurisation:
– avec fail2ban , créer un filtre qui détectera les erreurs dans /var/log/openvpn.log.
Bémols
Inconvénient d’une solution entièrement automatisée, on installe super facilement mais on ne maîtrise pas forcément les mécanismes liés au VPN.Vous allez me dire c’est le but, oui mais en sécurité il est quand même important de savoir ce que l’on fait. Donc cette solution de VPN est idéale pour créer en peu de temps de la confidentialité dans les échanges entre mon pc et un réseau qui serait hostile (Wifi public …)
Il ne faut en aucun cas croire qu’avec cette solution vous êtes anonymes sur la toile puisque c’est avec l’IP publique de votre box que vous consulterez les pages webs.
Merci pour ce tuto, mais quid du test de débit ? Certainement fortement limité par le peu de patate d’un core du rpi 😉
Bonne remarque mais tout dépend de l’usage que tu en fait.
Le débit sera limité à celui du upload de ton Fai.
Pour accéder à des sites web, télécharger des petits fichiers, qd j’ai testé je trouvais que ça passait plutot bien . Mon objectif était surtout detre en relative sécu sur des Wifi public
Bonjour,
Pour ma part l’installation s’arrête après l’IP. Il me donne la bonne IP, puis ensuite Ip Conflit. Il y a une réservation d’IP sur le routeur par mac adress.
ET je ne parviens pas au stade suivant…
J’ai le message Static IP already configured, puis la mire pour entrer une nouvelle commande.
Bonjour,
Merci pour ce super Tuto ! Sinon je tiens a partager ce guide : https://anonymster.com/fr/comment-mettre-en-place-un-serveur-vpn/
Ca permet de creer son propre vpn gratuitement…
Quand tu dis gratuit, c’est quoi, car sur ton lien ça annonce 5 dols par mois….
« Perso j’ai mis 1 heure, je trouve que c’est un bon rapport temps/sécurité 🙂 »
Pour moi au bout de 4-5h il a toujours pas fini j’ai donc décidé de l’arrêter y a t il un moyen de le faire + rapidement ??
« « Perso j’ai mis 1 heure, je trouve que c’est un bon rapport temps/sécurité 🙂 »
Pour moi au bout de 4-5h il a toujours pas fini j’ai donc décidé de l’arrêter y a t il un moyen de le faire + rapidement ?? »
Bonsoir,
Personnellement ça fait presque 7h que ça tourne et j’ai l’impression que ça s’arrêtera jamais. As-tu trouver un autre moyen nico85 ?
c’est sur quel modèle de raspberry? un rpi 3?
Cherche du coté de l’entropie, je l’ai expliqué ici
Essaye avec une clé à 1024bits pour voir si c’est plus rapide…
Bonjour,
Quand j’entre l’adresse ip de fdn, pivpn me dit que le format est invalide.
Avez-vous une explication ?
Merci.
Slt JP,
Je rentre l’@ip dns de FDN (80.67.169.12) dans la fenêtre « upstream dns provider », je n’ai aucun soucis de validité
Bonjour, Benzo,
Et merci pour votre réponse.
Le problème est que je n’accède pas à la fenêtre « upstream dns provider » dans l’installation de pivpn. Est-ce que c’est parce que je n’ai pas installé pihole ?
Merci
Bonjour, Benzo,
Tout fonctionne maintenant, je n’avais pas redirigé le port 1194 vers l’@ip du serveur vpn.
Merci
bien joué 😉
Merci Benzo.
Je suis un grand débutant mais j’essaie d’apprendre.
Quand, depuis mon téléphone, j’entre mon adresse ip publique, j’arrive sur l’interface de mon routeur. Comment puis-je aller au-delà, accéder à mon serveur Raspberry et enfin, à mes disques durs externes partagés ?
Merci et bonne soirée.
Bsr JPP,
1/ si tu es connecté en VPN, tu accèdes à tes machines comme si t’étais à la maison. Dc tu utilises les mêmes adresses internes pour les joindre.
2/ si tu nes pas en VPN et que tu cherches à joindre une machine de ton réseau privé derrière le routeur , alors il faut faire du « port forwarding ».
En gros sur ta box ou ton routeur, tu dis qu’une requête arrivant d’internet sur tel port doit être redirigée vers tel@ip de ton LAN et tel port. Je ne sais pas quel matériel tu as mais pour une freebox par ex cest décrit ici comment faire:
http://pixelboys.fr/creer-une-redirection-de-port-chez-free/
Bonjour, Benzo,
Merci de tes explications.
J’ai déjà redirigé le port 1194 vers l’@ IP de mon routeur Netgear 834.
Je me connecte via le client Openvpn installé sur mon téléphone. Mais je n’accède qu’à l’interface d’administration du routeur. Quelque chose doit m’échapper. j’espère ne pas te déranger trop avec mes problèmes.
Cordialement,
JPP
On va partir du principe que tu as un raspberry serveur web qui tourne chez toi derrière ta box. Son @ip privée est 192.168.0.10
Normalement, une fois connecté en VPN sur ton tel,t u tapes l’adresse IP de ton raspberry dans firefox et tu devrais pouvoir y accéder.
ex: http://192.168.0.10/siteweb
Bonsoir, Benzo,
Si j’entre l’@ ip de mon raspberry (192.168.0.*), la réponse est ERR_CONNECTION_REFUSED, idem si j’entre l’@ ip de mon disque dur externe (192.168.0.*/media/pi/Mon_DD_Externe).
Il y a peut-être un identifiant et mot de passe à saisir dans un fichier de configuration ? Mais où ? Ou je me trompe ?
Merci de ta patience,
JPP
Cest quoi les services qui tournent sur ton raspberry (web, samba)? quand t’essayes de te connecter sans VPN avec un pc connecté à ta box ca donne quoi?
Si je lance sudo service –status-all : j’ai
[ – ] alsa-utils
[ + ] avahi-daemon
[ + ] bluetooth
[ – ] console-setup.sh
[ + ] cron
[ + ] cups
[ + ] cups-browsed
[ + ] dbus
[ + ] dhcpcd
[ + ] dphys-swapfile
[ + ] exim4
[ + ] fail2ban
[ + ] fake-hwclock
[ – ] hwclock.sh
[ – ] keyboard-setup.sh
[ + ] kmod
[ + ] lightdm
[ + ] netfilter-persistent
[ – ] networking
[ – ] nfs-common
[ + ] nmbd
[ + ] openvpn
[ – ] paxctld
[ – ] pcscd
[ – ] plymouth
[ – ] plymouth-log
[ – ] procps
[ + ] raspi-config
[ ? ] rng-tools
[ – ] rpcbind
[ – ] rsync
[ + ] rsyslog
[ + ] samba
[ – ] samba-ad-dc
[ – ] saned
[ + ] smbd
[ + ] ssh
[ – ] sudo
[ + ] triggerhappy
[ + ] udev
[ + ] unattended-upgrades
[ – ] x11-common
@JPP, je te propose de continuer nos échanges par mail ici:
tutox@protonmail.com