Table des matières
Serveur OpenVPN
Setup du serveur
Pré-requis
- Installation de la version 3 Easy-RSA
- Créer une paire de clé pour le CA
- Créer une paire de clé pour le CA intermédiaire (optionnel)
- Créer une paire de clé pour le serveur
Installation
apt-get install openvpn
Configuration
Créer un fichier server.conf
dans le répertoire dédié aux profils serveurs dans /etc/openvpn/server
. Dans ce même répertoire il doit y avoir les différentes clés:
ca.crt
- la clé publique du CA racine ou intermédiaire de Mycéliumnomduserveur.key
- la clé privée du serveur VPNnomduserveur.crt
- la clé publique du serveur VPN, signée par le CAdh.pem
- la clé pour les paramètres Diffie Hellmanta.key
- la clé de sécurisation du Handshake SSL/TLS (commun sur tous les serveurs)
Génération des clés DH et TA
DH
cd /etc/openvpn/server openssl dhparam -out dh.pem 2048
La génération peut prendre un certain temps (ex. ~10min sur russule, avec une taille de 2048).
TA
cd /etc/openvpn/server openvpn --genkey --secret ta.key
Ce fichier généré devra aussi être présent sur tous les clients.
Fichier de configuration serveur
- /etc/openvpn/server/server.conf
# port et mode mode server port 1194 proto udp dev tun explicit-exit-notify 1 # certificats et cles ca ca.crt cert nomduserveur.crt key nomduserveur.key dh dh.pem tls-auth ta.key 0 cipher AES-256-CBC # reseau server 10.8.0.0 255.255.255.0 topology subnet #push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 80.67.169.12" push "dhcp-option DNS 80.67.169.40" keepalive 10 120 # clients client-config-dir ccd client-to-client ifconfig-pool-persist ipp.txt # securite user nobody group nogroup persist-key persist-tun comp-lzo # journaux verb 3 mute 20 status openvpn-status.log log-append /var/log/openvpn.log
Répertoire des configurations des clients
Pour que chaque client dispose par exemple d'une IP fixe associée à sa clé, il faut créer un répertoire et créer un fichier avec les paramètres nécessaires.
mkdir /etc/openvpn/server/ccd
Exemple pour le client champipi (il se présente avec sa clé signée par le CA Mycélium avec le CN (Common Name) champipi), le fichier /etc/openvpn/server/ccd/champipi
push ifconfig-push 10.8.0.10 255.255.255.0 push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 80.67.169.12" push "dhcp-option DNS 80.67.169.40"
Démarrage du service OpenVPN
Une fois configurée, démarrage du service.
systemctl start openvpn-server@server
il existe aussi openvpn-server@client
Un petit status
pour voir si tous va bien
systemctl status openvpn-server@server
Le fichier de log se trouve dans /var/log/openvpn.log
Démarrage automatique au boot du serveur
systemctl enable openvpn-server@server
Voir l'état du tunnel et le routage
ip a ip r
Configuration réseau
Activer l'IP Forwarding
Activer la ligne suivante dans le fichier /etc/sysctl.conf
:
net.ipv4.ip_forward=1
Recharger le fichier de configuration pour la prise en compte
sysctl -p --system
Activer le routage et NAT
configuration de ferm