all:bibles:linux:openvpn
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| all:bibles:linux:openvpn [2025/07/29 16:16] – [Client] omeylhoc | all:bibles:linux:openvpn [2025/09/23 11:09] (Version actuelle) – [Activation VPN] omeylhoc | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== openVPN ====== | ||
| + | ---- | ||
| + | |||
| + | ===== Installation ===== | ||
| + | |||
| + | ==== openvpn ==== | ||
| + | |||
| + | Normalement déjà installé avec Ubuntu mais en version 2. Pour installer openvpn3 suivre la procédure suivante : | ||
| + | |||
| + | <code bash> | ||
| + | sudo apt purge openvpn | ||
| + | sudo mkdir -p / | ||
| + | DISTRO=$(lsb_release -c -s) | ||
| + | echo "deb [signed-by=/ | ||
| + | sudo apt update | ||
| + | sudo apt install openvpn3 | ||
| + | </ | ||
| + | |||
| + | ==== easy-rsa ==== | ||
| + | |||
| + | <code bash> | ||
| + | sudo apt install easy-rsa | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Création des certificats sur le serveur ===== | ||
| + | |||
| + | ==== Configuration autorité de certification ==== | ||
| + | |||
| + | <code bash> | ||
| + | sudo make-cadir / | ||
| + | </ | ||
| + | |||
| + | * Editer le fichier <color # | ||
| + | |||
| + | <code bash> | ||
| + | set_var EASYRSA " | ||
| + | set_var EASYRSA_OPENSSL " | ||
| + | set_var EASYRSA_PKI | ||
| + | set_var EASYRSA_KEY_SIZE | ||
| + | set_var EASYRSA_ALGO | ||
| + | set_var EASYRSA_CA_EXPIRE | ||
| + | set_var EASYRSA_TEMP_FILE | ||
| + | </ | ||
| + | |||
| + | * Pour vérifier en listant les lignes non vides ne commençant pas par un commentaire : | ||
| + | |||
| + | <code bash> | ||
| + | cat vars | awk ' | ||
| + | </ | ||
| + | |||
| + | === Création de l' | ||
| + | |||
| + | <code bash> | ||
| + | sudo -s | ||
| + | cd / | ||
| + | ./easyrsa init-pki | ||
| + | ./easyrsa build-ca nopass | ||
| + | </ | ||
| + | |||
| + | ==== Certificats et clefs serveur ==== | ||
| + | |||
| + | * Génération certificat | ||
| + | |||
| + | <code bash> | ||
| + | ./easyrsa gen-req < | ||
| + | </ | ||
| + | |||
| + | * Signature du certificat | ||
| + | |||
| + | <code bash> | ||
| + | ./easyrsa gen-dh | ||
| + | ./easyrsa sign-req server < | ||
| + | </ | ||
| + | |||
| + | * Copier certificats et clefs | ||
| + | |||
| + | <code bash> | ||
| + | cp pki/dh.pem pki/ca.crt pki/ | ||
| + | </ | ||
| + | |||
| + | ==== Certificats client ==== | ||
| + | |||
| + | === Création certificats === | ||
| + | |||
| + | <code bash> | ||
| + | ./easyrsa gen-req < | ||
| + | ./easyrsa sign-req client < | ||
| + | </ | ||
| + | |||
| + | === Transfert fichiers === | ||
| + | |||
| + | Copier les fichiers suivant sur le client dans le répertoire <color # | ||
| + | |||
| + | * pki/ca.crt | ||
| + | * pki/ | ||
| + | * pki/ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
| + | |||
| + | ===== Configuration Serveur ===== | ||
| + | |||
| + | ==== Configuration ==== | ||
| + | |||
| + | === Fichier === | ||
| + | |||
| + | * Copier le fichier d' | ||
| + | |||
| + | <code bash> | ||
| + | sudo cp / | ||
| + | sudo gzip -d / | ||
| + | </ | ||
| + | |||
| + | * Mettre à jour le fichier <color # | ||
| + | |||
| + | <code bash> | ||
| + | ca ca.crt | ||
| + | cert < | ||
| + | key < | ||
| + | dh dh2048.pem | ||
| + | </ | ||
| + | |||
| + | * Autres paramètres intéressants : | ||
| + | |||
| + | <code bash> | ||
| + | port 1195 ; port (par défaut 1194) | ||
| + | proto udp ; possibilité de mettre udp4 pour IP V4 | ||
| + | server 10.8.0.0 255.255.255.0 | ||
| + | comp-lzo | ||
| + | user nobody | ||
| + | group nogroup | ||
| + | log / | ||
| + | log-append | ||
| + | verb 5 ; niveau de verbosité | ||
| + | </ | ||
| + | |||
| + | <note tip>Le paramètre **verb** permet de mettre un niveau d' | ||
| + | |||
| + | === TLS === | ||
| + | |||
| + | * Générer une clef pour le TLS | ||
| + | |||
| + | <code bash> | ||
| + | sudo openvpn --genkey --secret ta.key | ||
| + | </ | ||
| + | |||
| + | === IP forwarding === | ||
| + | |||
| + | * Enlever le commentaire dans le fichier <color # | ||
| + | |||
| + | <code bash> | ||
| + | net.ipv4.ip_forward=1 | ||
| + | </ | ||
| + | |||
| + | * Recharger sysctl | ||
| + | |||
| + | <code bash> | ||
| + | sudo sysctl -p / | ||
| + | </ | ||
| + | |||
| + | ==== Activation VPN ==== | ||
| + | |||
| + | <code bash> | ||
| + | sudo systemctl start openvpn@< | ||
| + | </ | ||
| + | |||
| + | ==== Logs ==== | ||
| + | |||
| + | <code bash> | ||
| + | journalctl -u openvpn@< | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Configuration client ===== | ||
| + | |||
| + | ==== Configuration ==== | ||
| + | |||
| + | <code bash> | ||
| + | openvpn3 config-import --config / | ||
| + | openvpn3 config-acl --show --lock-down true --grant root --config <nom connexion> | ||
| + | </ | ||
| + | |||
| + | ==== Lister les configurations ==== | ||
| + | |||
| + | <code bash> | ||
| + | openvpn3 configs-list --verbose | ||
| + | </ | ||
| + | |||
| + | ==== Suppression d'une configuration ==== | ||
| + | |||
| + | <code bash> | ||
| + | openvpn3 config-remove --config <nom connexion> | ||
| + | openvpn3 config-remove --path / | ||
| + | </ | ||
| + | |||
| + | ==== Activation VPN ==== | ||
| + | |||
| + | <code bash> | ||
| + | sudo systemctl start openvpn3-session@< | ||
| + | </ | ||
| + | |||
| + | ==== Logs ==== | ||
| + | |||
| + | <note tip> | ||
| + | |||
| + | <code bash> | ||
| + | journalctl -u openvpn@< | ||
| + | tail -f / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
| + | |||
| + | ===== Vérifications ===== | ||
| + | |||
| + | ==== Côté serveur ==== | ||
| + | |||
| + | === Service === | ||
| + | |||
| + | <code bash> | ||
| + | sudo systemctl status openvpn@< | ||
| + | </ | ||
| + | |||
| + | === Tunnel === | ||
| + | |||
| + | Vérifier la présence de l' | ||
| + | |||
| + | <code bash> | ||
| + | ip addr | ||
| + | </ | ||
| + | |||
| + | <note important> | ||
| + | ==== Client ==== | ||
| + | |||
| + | === Tunnel === | ||
| + | |||
| + | Vérifier la présence de l' | ||
| + | |||
| + | <code bash> | ||
| + | ip addr | ||
| + | ip route | ||
| + | ping <IP gateway> | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
| + | |||
| + | |||
| + | ===== Sources ===== | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | ---- | ||
| + | [[all: | ||
