Tarte à la framboise #2 - Crème mascarpone avec PiVPN
02 Apr 2021
Depuis quelques temps, et encore plus depuis début 2020 avec le confinement et le télétravail généralisé pour ceux qui peuvent, le VPN est présenté comme l'outil magique pour être en sécurité sur internet. Vous avez de la chance si vous n'avez pas subi le gros matraquage publicitaire des fournisseurs de VPN. Ils mettent en avant la confidentialité et la sécurité en ligne, la possibilité de contourner des blocages géographiques ou encore la possibilité de cacher son IP pour faire du téléchargement illégal. Difficile de ne pas en voir l'intérêt. Mais en vrai, c'est quoi un VPN ? Et c'est quoi le rapport avec le titre de l'article ?
VPN ?
Un VPN, pour Virtual Private Network (Réseau Privé Virtuel en français), permet avant tout de faire communiquer deux systèmes comme s'ils étaient sur le même réseau. Par exemple, c'est comme si votre PC portable professionnel et le serveur de fichiers de votre entreprise étaient connectés sur votre réseau, alors que vous êtes en télétravail chez vous et que le serveur de fichiers est dans les locaux de votre entreprise, ou dans le cloud. Ça c'est pour le Virtual Network. Pour éviter que personne ne puisse voir/modifier/intercepter les données qui transitent, des mesures de sécurité, telles que le chiffrement des données, sont mises en place nativement. Et ça c'est pour le Private.
Le premier usage est donc de pouvoir simuler un réseau local pour faire communiquer de manière sécurisée des systèmes entre eux, peu importe leur localisation géographique.
Le 2e effet kiss-kool est qu'en étant sur le même réseau virtuel, le VPN va faire transiter votre connexion internet via sa localisation et non pas via votre localisation (plus précisément votre IP sera remplacée par celle de votre serveur VPN). Vous pourrez ainsi simuler le fait d'être présent à un endroit spécifique (où est situé le serveur hébergeant le VPN) alors qu'en fait vous êtes pas du tout à cet endroit (genre un autre pays).
Pour l'instant ça parait être une solution de ouf pour se protéger sur internet : les données sont chiffrées, mon IP est cachée, bref je suis complètement anonyme.
Ce n'est malheureusement pas si simple :
- votre fournisseur de VPN a accès à tous vos logs (quels sites vous visitez, d'où, avec quel appareil, quand...), car ils transitent via ses serveurs. Et malgré toutes ses promesses, rien ne vous garantit qu'il n'en fait pas ce qu'il veut : les revendre, les fournir aux autorités...
- votre IP n'a qu'une utilité ridicule pour les sociétés spécialisées dans le traçage de votre activité en ligne. Elles utilisent surtout des informations récupérées via votre navigateur ou d'autres logiciels que vous utilisez (Android, Windows...)
Voilà pour la théorie, passons à la pratique.
PiVPN
L'idée générale d'avoir un serveur VPN installé sur son Raspberry Pi est d'être son propre fournisseur de VPN :
- les logs restent chez vous et personne d'autre ne peut les voir
- vous pouvez accéder aux appareils présents sur votre réseau local
- vous pouvez simuler le fait d'être présent chez vous alors que vous êtes ailleurs
Ça a encore plus d'intérêt dans le cas d'une utilisation couplée à un Pi-Hole et Unbound DNS (voir l'article précédent), car avec le Pi-Hole vous bénéficiez du blocage des publicités, et avec Unbound DNS du fait que votre FAI ne sait pas quels sites vous visitez.
Le seul "petit" truc que ça ne résout pas, c'est par rapport aux sociétés de traçage, ça ne change rien de spécial pour elles, elles continuent de pouvoir suivre votre activité par d'autres moyens.
Pour l'implémentation technique, ça se fait avec l'outil PiVPN, un VPN basé sur OpenVPN avec une installation facilitée pour le Raspberry Pi.
Je vous avoue avoir bien bien galéré pour installer PiVPN et le faire fonctionner avec le Pi-Hole et Unbound, mais j'y suis parvenu avec mes faibles connaissances en réseau, shell linux... principalement en suivant des tutos (voir la liste des liens ci-dessous dans Ressources).
Une fois votre serveur VPN bien configuré, vous pourrez installer le client OpenVPN sur tous les appareils que vous voulez (smartphone, tablette, ordinateur) afin de profiter de votre VPN. Là par contre c'est ultra simple et bien documenté.
Ressources :
- https://pivpn.io
- https://pimylifeup.com/raspberry-pi-vpn-server
- https://github.com/pivpn/pivpn/blob/master/README.md
- https://docs.pi-hole.net/guides/vpn/setup-openvpn-server
- https://docs.pi-hole.net/guides/vpn/dual-operation
- https://www.comparitech.com/blog/vpn-privacy/raspberry-pi-vpn
- https://marcstan.net/blog/2017/06/25/PiVPN-and-Pi-hole
Différents fichiers de log/conf dont l'emplacement pourra vous être utile :
nano /etc/iptables/rules.v4
nano /var/log/openvpn.log
nano /etc/openvpn/server.conf
nano /etc/pivpn/hosts.openvpn
nano /etc/pivpn/setupVars.conf
nano /etc/dhcpcd.conf
nano /etc/dnsmasq.d/02-pivpn.conf
Merci au site des arsouyes qui m'a bien aidé pour rédiger la partie théorique sur ce qu'est un VPN. Si vous voulez plus d'infos :