Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== OpenVPN ====== ===== Objectifs ===== Relier 2 réseaux privés de manière sécurisée via Internet. ===== Architecture ===== Soit 2 réseaux: * 192.168.1.0/24 dit lan1 * 192.168.2.0/24 dit lan2 Pour faire simple, le serveur OpenVPN fait passerelle. On prendra la dernière ip disponible (.254). Sur le lan1, une machine fait office de serveur OpenVPN. Elle a donc comme adresse ip 192.168.1.254 et s'appelle serveur.lan1. Sur le lan2, une machine fait office de client OpenVPN. Elle a comme adresse ip 192.168.2.254 et s'appelle clientvpn.lan2. Une plage sera reservée pour le tunnel, en 172.16.254.X. Elle sera par exemple en 172.16.254.1 sur le serveur OpenVPN, et attribuée automatiquement sur le client. Nos 2 machines OpenVPN auront donc chacune une interface sur ce reseau, interface qui sera créée par OpenVPN (normalement tap0). La procédure à suivre est la suivante: - Installation et configuration d'OpenVPN sur le serveur - Creation des certificats SSL - Installation et configuration d'OpenVPN sur le client - Configuration des tables de routage ===== Mise en oeuvre ===== ==== Installation et configuration d'OpenVPN sur le serveur ==== === Installation === L'installation sur la machine serveur.lan1 du paquet OpenVPN se fait avec la commande suivante: yum install openvpn === Configuration === Pour la configuration du serveur OpenVPN, création d'un fichier /etc/openvpn/vpn.conf avec le contenu suivant: port 1194 proto tcp dev tap cipher AES-256-CBC ca /etc/pki/CA/ca.crt cert /etc/pki/openvpn/serveur.crt key /etc/pki/openvpn/serveur.key dh /etc/pki/openvpn/dh.pem ifconfig 172.16.254.1 255.255.255.0 server-bridge 172.16.254.1 255.255.255.0 172.16.254.50 172.16.254.100 ifconfig-pool-persist ipp.txt client-to-client keepalive 10 120 comp-lzo max-clients 100 user nobody group nobody status /var/log/vpn-status.log log /var/log/vpn.log verb 3 Les options //port// et //proto// permettent de définir le protocole utilisé (par défaut udp) et le port (par defaut 1194). L'option //dev// permet d'indiquer quel type de tunnel utiliser, //tap// pour du niveau 2 (ethernet), //tun// pour du niveau 3 (ip). Ici l'option tap générera normalement une interface //tap0// sur le serveur. L'option //cipher// permet d'indiquer le type de chiffrement utiliser. Les options //ca//, //cert//, //key// et //dh// sont en rapport avec les certificats SSL que nous allons générer plus tard. L'option //ifconfig// permet de configurer l'adresse ip du point d'entrée du tunnel, qui sera portée par //tap0//. L'option //server-bridge// permet de simplifier la mise en place de VPN de type tap (ethernet), avec la gestion d'un DHCP pour l'attribution dynamique des adresses IP aux clients VPN. L'option //ifconfig-pool-persist// permet de rendre statique autant que possible les adresses attribuées aux clients VPN. L'option //client-to-client// permet d'autoriser les flux entre les clients. Sinon par défaut seuls les flux clients serveur sont autorisés. Le reste est plutôt explicite. === Gestion des certificats === Pour authentifier les clients, des certificats SSL vont être émis par notre serveur. Il fera donc office d'autorité de certification (CA). Pour faciliter la gestion des certificats, les scripts easy-rsa sont installés avec le paquet OpenVPN. Ils sont présents dans le repertoire /usr/share/openvpn/easy-rsa/2.0/. Il faut commencer par éditer le fichier /usr/share/openvpn/easy-rsa/2.0/vars, pour les clefs suivantes: export KEY_COUNTRY="FR" export KEY_PROVINCE="Ile de France" export KEY_CITY="Paris" export KEY_ORG="VPN" Une fois le fichier éditer, il faut le sourcer pour que ces variables soit présentes dans notre environnement shell: cd /usr/share/openvpn/easy-rsa/2.0 source vars ./clean-all Nous allons maintenant générer le fichier DH (Diffie Hellman) qui sert lors de l'initialisation du tunnel. Cette phase utilise un chiffrage symétrique reposant sur ce fichier, avant de pouvoir passer au chiffrement assymétrique. Pour générer le fichier DH: ./build-dh linux/openvpn.txt Dernière modification : 2021/07/30 08:58de madko