====== Configuration du réseau privé Linuxed ====== ===== Topologie ===== 1 serveur OpenVPN central et X clients pour X démons OpenVPN. Il est possible de faire 1 seul démon openVPN pour X clients! ===== Certification SSL ===== 1 cryptage symétrique, donc avec une clef partagée, pour l'ouverture des sessions. 1 cryptage assymétrique, avec donc des certificats signés par un CA, pour les transmissions. ==== En-tAutorité de Certification (CA) ==== L'autorité de certification signe tous les certificats présents sur les clients qui voudront se connecter au serveur OpenVPN. La clef publique du CA devra aussi être présente sur les clients. ==== Génération des certificats ==== Le client veut un certificat, il fait une demande de signature de certificat (Certificat Signature Request = CSR). openssl req -nodes -new -keyout client1.key -out client1.csr La clef client1.key doit rester privée et ne pas circuler. La demande client1.csr est envoyée au CA. Le CA signe le csr et génére ainsi un certificat. openssl ca -cert ca.crt -keyfile ca.key -out client1.crt -in client1.csr -days 365 Le fichier ca.crt (certificat public du CA) et client1.crt peuvent être renvoyés au client. ===== OpenVPN ===== ==== Coté serveur ==== Exemple de configuration utilisant les certificats générés plus haut. La liaison reliera la machine server à la machine client1. Fichier de configuration /etc/openvpn/liaison_client1.conf: # Nom de l'interface dev tun1 # Port d'ecoute port 9241 # Définition IP locale / distante ifconfig 10.156.1.1 10.156.1.2 # Reseau distant route 192.168.1.0 255.255.255.0 10.156.1.2 # Il s'agit du serveur pour le cryptage tls-server # Clef symetrique dh /root/vpn/dh.pem # Certificat du CA ca /root/vpn/linuxed-ca.crt # Certificat du serveur cert /root/vpn/bohort.crt # Clef privée en rapport avec le certificat key /root/vpn/bohort.key # On renegocie toutes les 300 secondes reneg-sec 300 # On verifie l'etat de la connexion toute les 60 secondes avec un timeout apres 360 secondes sans reponse keepalive 60 360 # On utilise la compression LZO comp-lzo ==== Coté client ==== ===== Scripts de generation/configuration ===== ===== IPv6 ===== Informations sur [[IPv6]]. Si le serveur central dispose d'une ipv6 publique il peut servir de tunnel ipv6 pour les clients qui n'en disposeraient pas. Dans le fichier de conf, ajouter l'option tun-ipv6.