Outils pour utilisateurs

Outils du site


documentation:technique:openvpn:serveur

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

Voir la procédure

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élium
  • nomduserveur.key - la clé privée du serveur VPN
  • nomduserveur.crt - la clé publique du serveur VPN, signée par le CA
  • dh.pem - la clé pour les paramètres Diffie Hellman
  • ta.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

8-O 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

TODO configuration de ferm

documentation/technique/openvpn/serveur.txt · Dernière modification : 2022/12/04 21:42 de sragons

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki