Retour au portfolio

Serveur VPN Raspberry Pi

Déploiement d'un serveur VPN sécurisé avec PiVPN pour l'accès distant

2024 - 1ère année BTS
Projet Personnel BTS SIO
2 mois

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 4

4 GB RAM

Raspberry Pi OS

Debian Lite 64-bit

PiVPN

WireGuard

Pi-hole

DNS + Filtrage

Pourquoi WireGuard ?

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 :

Configuration des Clients

Sur Windows :

Sur Android/iOS :

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 :

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 :

Résultats et Apprentissages

Compétences Développées

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

Documentation Créée

Retour au portfolio