Créer un serveur VPN sur Raspberry Pi

Serveur VPN Raspberry Pi

Créer un serveur VPN avec votre Raspberry Pi est un excellent moyen de garantir une navigation sécurisée et privée sur Internet. Voici un guide détaillé pour vous aider à réaliser ce projet en utilisant OpenVPN.

Sommaire

  1. Introduction
  2. Matériel Nécessaire
  3. Préparation du Raspberry Pi
  4. Installation d’OpenVPN
  5. Configuration d’OpenVPN
  6. Génération des Certificats et Clés
  7. Configuration du Client VPN
  8. Tests et Ajustements
  9. Conclusion

1. Introduction

Un VPN (Virtual Private Network) permet de créer une connexion sécurisée et cryptée entre votre appareil et un serveur. En utilisant un Raspberry Pi comme serveur VPN, vous pouvez naviguer sur Internet en toute sécurité et accéder à des contenus restreints géographiquement.

2. Matériel nécessaire

3. Préparation du Raspberry Pi

  1. Installer Raspbian :
    • Téléchargez l’image de Raspbian depuis le site officiel.
    • Utilisez un outil comme balenaEtcher pour graver l’image sur la carte microSD.
    • Insérez la carte microSD dans le Raspberry Pi et démarrez-le.
  2. Configurer le Raspberry Pi :
    • Connectez-vous avec les identifiants par défaut (utilisateur : pi, mot de passe : raspberry).
    • Mettez à jour le système avec les commandes suivantes :
      • sudo apt update
      • sudo apt upgrade

4. Installation d’OpenVPN

  1. Installer OpenVPN et Easy-RSA :
    • OpenVPN est un logiciel de serveur VPN open-source et Easy-RSA est un outil de gestion de PKI (Public Key Infrastructure) :
      • sudo apt install openvpn easy-rsa
  2. Configurer Easy-RSA :
    • Copiez les fichiers Easy-RSA dans le répertoire OpenVPN :
      • make-cadir ~/openvpn-ca
      • cd ~/openvpn-ca

5. Configuration d’OpenVPN

  1. Modifier les variables Easy-RSA :
    • Éditez le fichier vars pour configurer les paramètres de votre CA (Certificate Authority) :
      • nano ~/openvpn-ca/vars
    • Modifiez les lignes suivantes selon vos informations :
      • set_var EASYRSA_REQ_COUNTRY "FR"
      • set_var EASYRSA_REQ_PROVINCE "Ile-de-France"
      • set_var EASYRSA_REQ_CITY "Paris"
      • set_var EASYRSA_REQ_ORG "MonOrganisation"
      • set_var EASYRSA_REQ_EMAIL "email@example.com"
      • set_var EASYRSA_REQ_OU "MonUnité"
  2. Construire la CA :
    • Initialisez le PKI et construisez la CA :
      • ./easyrsa init-pki
      • ./easyrsa build-ca
  3. Générer le certificat et la clé pour le Serveur :
    • Créez la demande de signature de certificat (CSR) et signez le certificat :
      • ./easyrsa gen-req server nopass
      • ./easyrsa sign-req server server
  4. Générer les clés Diffie-Hellman et HMAC :
    • Ces clés ajoutent une couche de sécurité supplémentaire :
      • ./easyrsa gen-dh
      • openvpn --genkey --secret ta.key
  5. Configurer le serveur OpenVPN :
    • Créez un fichier de configuration pour le serveur VPN :
      • sudo nano /etc/openvpn/server.conf
    • Ajoutez le contenu suivant :
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA256
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 1.0.0.1"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log-append /var/log/openvpn.log
verb 3
crl-verify crl.pem

6. Génération des certificats et clés

  1. Créer des certificats et clés pour les clients :
    • Pour chaque client, générez une clé et un certificat :
      • ./easyrsa gen-req client1 nopass
      • ./easyrsa sign-req client client1
  2. Créer un fichier de configuration pour le client :
    • Créez un fichier client.ovpn avec le contenu suivant :
client
dev tun
proto udp
remote your_domain_or_ip 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
remote-cert-tls server
auth SHA256
cipher AES-256-CBC
verb 3
<ca>
-----BEGIN CERTIFICATE-----
# Copiez le contenu de ca.crt
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
# Copiez le contenu de client1.crt
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
# Copiez le contenu de client1.key
-----END PRIVATE KEY-----
</key>
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
# Copiez le contenu de ta.key
-----END OpenVPN Static key V1-----
</tls-auth>

7. Configuration du client VPN

  1. Configurer le client VPN :
    • Installez un client OpenVPN sur vos appareils (Windows, macOS, Android, iOS) et importez le fichier client.ovpn.

8. Tests et ajustements

  1. Tester la connexion VPN :
    • Connectez-vous à votre serveur VPN depuis un appareil client pour vérifier que tout fonctionne correctement.
  2. Ajuster les paramètres :
    • Ajustez les paramètres de sécurité et de performance selon vos besoins spécifiques.

9. Conclusion

En suivant ce guide, vous avez maintenant un serveur VPN fonctionnel avec un Raspberry Pi. Vous pouvez naviguer sur Internet en toute sécurité et accéder à des contenus restreints géographiquement. Profitez de votre serveur VPN et n’hésitez pas à ajouter des fonctionnalités supplémentaires pour le rendre encore plus performant !