Retour au portfolio
Contexte et Besoin
En première année de BTS SIO, j'ai réalisé ce projet personnel pour approfondir mes connaissances en réseaux sécurisés et découvrir les technologies VPN modernes.
🎯 Objectifs pédagogiques :
- Découvrir l'administration Linux sur Raspberry Pi
- Comprendre le fonctionnement d'un VPN
- Maîtriser le protocole WireGuard
- Apprendre la sécurisation des accès distants
- Développer des compétences en réseau
Matériel et Technologies
Raspberry Pi OS
Debian Lite 64-bit
Pourquoi WireGuard ?
- Performance : Plus rapide qu'OpenVPN (protocole moderne)
- Sécurité : Cryptographie de pointe (ChaCha20, Curve25519)
- Simplicité : Configuration minimale (4000 lignes vs 100 000 pour OpenVPN)
- Mobilité : Reconnexion instantanée lors du changement de réseau
- Batterie : Consommation réduite sur appareils mobiles
Installation et Configuration
1. Préparation du Raspberry Pi
# Mise à jour du système
sudo apt update && sudo apt upgrade -y
# Installation des dépendances
sudo apt install curl git -y
# Configuration IP statique
sudo nano /etc/dhcpcd.conf
# Ajouter :
# interface eth0
# static ip_address=10.0.60.50/24
# static routers=10.0.60.1
# static domain_name_servers=10.0.60.1
2. Installation de PiVPN avec WireGuard
# Installation automatique de PiVPN
curl -L https://install.pivpn.io | bash
# Sélectionner WireGuard lors de l'installation
# Port par défaut : 51820
# DNS : Pi-hole (10.0.60.50)
3. Configuration du Pare-feu et Redirection de Ports
# Configuration UFW
sudo ufw allow 51820/udp
sudo ufw enable
# Redirection de port sur le routeur/pare-feu
# Port externe : 51820 UDP → 10.0.60.50:51820
4. Création des Profils Utilisateurs
# Créer un profil VPN
pivpn add
# Nom du client : tom-laptop
# Générer le QR Code pour mobile
pivpn -qr tom-phone
# Lister les clients
pivpn -l
# Révoquer un accès
pivpn -r ancien-employe
Intégration Pi-hole
Pour améliorer la sécurité et bloquer les publicités/trackers, j'ai intégré Pi-hole comme serveur DNS.
Installation Pi-hole :
# Installation automatique
curl -sSL https://install.pi-hole.net | bash
# Configuration PiVPN pour utiliser Pi-hole
sudo nano /etc/pivpn/wireguard/setupVars.conf
# pivpnDNS1=10.0.60.50
Avantages :
- Blocage des publicités et trackers sur tous les appareils connectés au VPN
- Protection contre les domaines malveillants
- Statistiques détaillées des requêtes DNS
- Amélioration de la vitesse de navigation
Configuration des Clients
Sur Windows :
- Télécharger WireGuard depuis wireguard.com
- Importer le fichier .conf généré par PiVPN
- Activer la connexion
Sur Android/iOS :
- Installer l'application WireGuard
- Scanner le QR Code généré par
pivpn -qr
- Activer la connexion
Sur Linux :
# Installation WireGuard
sudo apt install wireguard
# Copier le fichier de configuration
sudo cp client.conf /etc/wireguard/wg0.conf
# Démarrer le VPN
sudo wg-quick up wg0
# Activer au démarrage
sudo systemctl enable wg-quick@wg0
Sécurisation Avancée
Mesures de sécurité implémentées :
- Fail2Ban : Protection contre les attaques brute-force
- Clés cryptographiques : Génération automatique de paires de clés uniques
- Rotation des clés : Renouvellement tous les 6 mois
- Logs centralisés : Surveillance des connexions
- Firewall strict : Seul le port 51820 UDP est ouvert
Installation Fail2Ban :
# Installation
sudo apt install fail2ban -y
# Configuration
sudo nano /etc/fail2ban/jail.local
# Ajouter protection SSH et monitoring des logs
Monitoring et Maintenance
Commandes de gestion :
# Voir les clients connectés
sudo wg show
# Statistiques de connexion
pivpn -c
# Logs en temps réel
sudo journalctl -u wg-quick@wg0 -f
# Backup des configurations
pivpn -bk
Surveillance mise en place :
- Script de monitoring de la disponibilité (ping toutes les 5 minutes)
- Alertes email en cas de panne
- Dashboard Pi-hole pour les statistiques DNS
- Logs de connexion archivés pendant 90 jours
Résultats et Apprentissages
- Économie : Solution à 80€ vs 500€/an pour un VPN commercial
- Performance : Latence < 10ms, débit 100 Mbps
- Tests : 5 profils créés pour valider le fonctionnement
- Disponibilité : Serveur opérationnel 24/7 pendant les tests
- Sécurité : Chiffrement WireGuard validé
- Écologie : Consommation électrique < 5W
- Blocage pub : Pi-hole fonctionnel et efficace
Compétences Développées
- Administration Linux (Debian/Raspberry Pi OS)
- Configuration VPN WireGuard
- Gestion de serveur DNS (Pi-hole)
- Sécurisation réseau et pare-feu
- Scripting Bash pour l'automatisation
- Redirection de ports et NAT
- Monitoring et maintenance système
- Gestion des certificats et clés cryptographiques
- Documentation technique
Difficultés et Solutions
Problème 1 : Connexion VPN impossible depuis l'extérieur
Solution : Vérification de la redirection de port sur le pare-feu Fortinet, ajout d'une règle NAT spécifique
Problème 2 : Clients mobiles perdent la connexion fréquemment
Solution : Configuration du PersistentKeepalive à 25 secondes dans WireGuard
Problème 3 : Carte SD corrompue après coupure électrique
Solution : Migration vers SSD USB, configuration de sauvegardes automatiques quotidiennes
Évolutions Futures
- Mise en place d'un second Raspberry Pi en haute disponibilité
- Intégration avec Active Directory pour l'authentification
- Dashboard de monitoring avec Grafana
- Authentification à deux facteurs (2FA)
- Split tunneling pour optimiser la bande passante
- VPN site-to-site avec les agences distantes
Documentation Créée
- Guide d'installation complet (15 pages)
- Procédure de création de profils utilisateurs
- Guide de connexion pour les utilisateurs (Windows/Mac/Mobile)
- Procédure de dépannage
- Plan de reprise d'activité (PRA)
- Schéma d'architecture réseau
Retour au portfolio