┌──┐ ┌───────┐ │CA│ │OpenVPN│ └┬─┘ └───┬───┘ │ │ │ ╔═══════════╧═══════════════════════════╗ ══════╪══════════════════════════════════════════╣ Préparation du CA : création de la PKI╠═════════════════════════════════════════════════ │ ╚═══════════╤═══════════════════════════╝ │ │ │────┐ │ │ │ Installer EasyRSA │ │<───┘ │ │ │ │────┐ │ │ │ Compléter les variables du CA │ │<───┘ dans le fichier vars │ │ │ │ │ │────┐ │ │ │ Initier la PKI │ │<───┘ -> easyrsa init-pki sur CA │ │ │ │ │ │────┐ │ │ │ Création de la CA avec common name │ │<───┘ -> easyrsa build-ca nopass │ │ -> création de ca.crt & ca.key │ │ │ │ │ │ │ │ ╔═══════╧═══════════════════════╗ ══════╪══════════════════════════════════════════════╣ Préparation du serveur OpenVPN╠═════════════════════════════════════════════════════ │ ╚═══════╤═══════════════════════╝ │ │ │ │────┐ │ │ │ Installer OpenVPN │ │<───┘ │ │ │ │────┐ │ │ │ Installer EasyRSA │ │<───┘ │ │ │ │────┐ │ │ │ Initier la PKI │ │<───┘ ->easyrsa init-pki │ │ │ │ │ │────┐ │ │ │ création clé et requête avec common name │ │<───┘ -> easyrsa gen-req │ │ -> création OpenVPN.key & OpenVPN.req │ │ │ │ │ │────┐ │ │ │ copie clé privée OpenVPN.key │ │<───┘ dans le dossier du logiciel OpenVPN /etc/openvpn │ │ │ │ │ transfert de OpenVPN.req │ │ <───────────────────────────────────────────────────── │ │ │────┐ │ │ │ Import de fichier OpenVPN.req │ │<───┘ -> easyrsa import-reg │ │ │ │ │ │────┐ │ │ Signer le certificat en précisant le type server │<───┘ -> easyrsa sign-req server │ │ │ │ transfert certificat signé OpenVPN.crt │ │ dans le dossier du logiciel OpenVPN │ │ ─────────────────────────────────────────────────────> │ │ │ transfert certificat public du CA ca.crt │ │ dans le dossier du logiciel OpenVPN │ │ ─────────────────────────────────────────────────────> │ │ │ │────┐ │ │ │ Création d'un clé Diffie-Hellman dh.pem │ │<───┘ -> easyrsa gen-dh │ │ -> mise dans le dossier du logiciel OpenVPN │ │ │ │ │ │────┐ │ │ │ génération d'une signature HMAC ta.key │ │<───┘ -> openvpn - -genkey - -secret │ │ -> mise dans le dossier du logiciel OpenVPN │ │ │ │ │ │ │ ╔═══════════════════╧══════════════════════════════════╗ ══════╪══════════════════════════════════╣ Préparation du serveur OpenVPN pour gérer les clients╠══════════════════════════════════════════ │ ╚═══════════════════╤══════════════════════════════════╝ │ │ │ │────┐ │ │ │ Création du dossier ~/client-configs/keys │ │<───┘ │ │ │ │────┐ │ │ │ Sécurisation du dossier │ │<───┘ -> chmod -R 700 ~/client-configs │ │ │ │ │ │ │ ╔════════════════════╧═══════════════════════════════════╗ ══════╪═════════════════════════════════╣ Gestion de chaque nouveau client sur le serveur OpenVPN╠═════════════════════════════════════════ │ ╚════════════════════╤═══════════════════════════════════╝ │ │ │ │────┐ │ │ │ Génération des clés pour un client │ │<───┘ -> easyrsa gen-req client1 nopass │ │ -> création de client1.key & clienty1.req │ │ │ │ │ │────┐ │ │ │ Copie de la clé privée client1.key │ │<───┘ dans le dossier ~/client-configs/keys │ │ │ │ │ transfert de clienty1.req │ │ <───────────────────────────────────────────────────── │ │ │────┐ │ │ │ Import de fichier clienty1.req │ │<───┘ -> easyrsa import-reg │ │ │ │ │ │────┐ │ │ Signer le certificat en précisant le type client │<───┘ -> easyrsa sign-req client │ │ │ │ transfert certificat signé client1.crt │ │ dans le dossier ~/client-configs/keys │ │ ─────────────────────────────────────────────────────> │ │ │ │────┐ │ │ │ Copie de la clé ta.key de EasyRSA │ │<───┘ dans le dossier ~/client-configs/keys │ │ │ │ │ │────┐ │ │ │ Copie de la clé ca.crt de /etc/opernvpn │ │<───┘ dans le dossier ~/client-configs/keys │ │ │ │ │ │ │ ╔══════════════════════════════╧═════════════════════════════════════════════╗ ══════╪═══════════════════════╣ Configuration du serveur OpenVPN avec clés et certificats serveur et client╠═══════════════════════════════ │ ╚══════════════════════════════╤═════════════════════════════════════════════╝ │ │ │ │────┐ │ │ │ récupération et modification de l'exemple de configuration serveur.conf │ │<───┘ │ │ │ │────┐ │ │ │ configuration de ufw pour │ │<───┘ - accepter les connexions sur le port 1194 │ │ - activer le NAT sur eth0 │ │ - autoriser par défaut le forwarding │ │ │ │ │ │────┐ │ │ │ configurer le routage │ │<───┘ dans le fichier /etc/sysctl.conf │ │ │ │ │ │────┐ │ │ │ démarrer le service openvpn avec le fichier server.conf │ │<───┘ -> systemctl start openvpn@server │ │ │ │ │ │────┐ │ │ │ activer le démarrage automartique du service │ │<───┘ -> systemctl enable openvpn@server │ │ ┌┴─┐ ┌───┴───┐ │CA│ │OpenVPN│ └──┘ └───────┘