Vous voulez accéder à votre réseau local depuis l’extérieur, ou sécuriser votre connexion sur un Wi-Fi public ? Un VPN auto-hébergé est la solution. Voici comment installer WireGuard (moderne et rapide) ou OpenVPN (compatible partout) sur un serveur Linux.

WireGuard vs OpenVPN

CritèreWireGuardOpenVPN
PerformanceTrès rapideCorrect
ConfigurationSimpleComplexe
CompatibilitéLinux, Windows, macOS, Android, iOSIdem
SécuritéCryptographie moderneÉprouvé depuis 20 ans
Code source~4000 lignes~100 000 lignes

Recommandation : choisissez WireGuard sauf si vous avez besoin d’une compatibilité maximale avec des équipements anciens.

Option 1 : WireGuard

Installation du serveur

sudo apt update
sudo apt install wireguard

Générer les clés

# Clé du serveur
wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key

# Clé du client
wg genkey | tee /etc/wireguard/client_private.key | wg pubkey > /etc/wireguard/client_public.key

Configuration du serveur

Créez /etc/wireguard/wg0.conf :

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <contenu de server_private.key>

# Activer le forwarding
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = <contenu de client_public.key>
AllowedIPs = 10.0.0.2/32

Activer le forwarding IP

echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Démarrer WireGuard

sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

Ouvrir le port dans le firewall

sudo ufw allow 51820/udp

Configuration du client

Créez un fichier client.conf :

[Interface]
Address = 10.0.0.2/24
PrivateKey = <contenu de client_private.key>
DNS = 1.1.1.1

[Peer]
PublicKey = <contenu de server_public.key>
Endpoint = votre-serveur.fr:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

Importez ce fichier dans l’application WireGuard sur votre PC ou téléphone.

Option 2 : OpenVPN (méthode simplifiée)

Le script openvpn-install automatise toute l’installation :

wget https://git.io/vpn -O openvpn-install.sh
chmod +x openvpn-install.sh
sudo ./openvpn-install.sh

Le script vous guide pas à pas :

  1. Choisissez le protocole (UDP recommandé)
  2. Choisissez le port (1194 par défaut)
  3. Choisissez le DNS (1.1.1.1 ou 9.9.9.9)
  4. Entrez un nom pour le premier client

Un fichier .ovpn est généré — importez-le dans le client OpenVPN de votre appareil.

Ajouter un client supplémentaire

Relancez le script :

sudo ./openvpn-install.sh

Choisissez Add a new client et donnez-lui un nom.

Vérifier que le VPN fonctionne

Une fois connecté au VPN :

# Vérifiez votre IP publique (doit être celle du serveur VPN)
curl ifconfig.me

# Testez la connectivité au réseau interne
ping 10.0.0.1

Sécurité supplémentaire

  • Fail2ban : protégez le port VPN contre le brute-force
  • DNS leak : vérifiez que vos requêtes DNS passent bien par le VPN sur dnsleaktest.com
  • Kill switch : configurez votre client pour couper internet si le VPN se déconnecte

Besoin d’aide pour mettre en place un VPN pour votre entreprise ? Contactez-nous pour une installation clé en main.