# Server en tcp, port 443 en écoute en créant un tunnel mode server proto tcp port 443 dev tun ## CLE, CERTIFICATS ET CONFIGURATION RÉSEAU ## # Prouver l'identité ca ca.crt # Clé publique du serveur cert server.crt # Clé privée du serveur key server.key # Clé partagée (utilisé pour le chiffrement symétrique, hashage...) dh dh1024.pem # Augmente la sécurité (DDOS, port flooding...) # Deuxième paramètre à 0 sur le serveur et 1 sur le client) tls-auth ta.key 0 # Choix de la méthode de cryptographie cipher AES-256-CBC # Reseau # Sous réseau, le serveur prendra l'adresse 10.8.0.1 et le reste sera disponible pour les clients server 10.8.0.0 255.255.255.0 # Redirection du trafic via internet push "redirect-gateway def1" # Utilisation de DNS alternatifs (OpenDNS) push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220" # (DNS de Google) # push "dhcp-option DNS 8.8.8.8" # push "dhcp-option DNS 8.8.4.4" # Ping toutes les 10 secondes et si après 120 secondes le client ne répond toujours pas alors on déconnecte keepalive 10 120 # Regenerer la clé du canal toutes les 5h (implique la déconnexion du client) reneg-sec 18000 ## SECURITE ## # On abaisse les privilèges du démon user nobody group nogroup # Rend les clés persistantes au démarrage # Donc, plus besoin de relire les clés cryptographiques (dont on aurait pas eu les droits car on a abaissé les privilèges du démon) persist-key # Ne pas fermer et rouvrir le périphérique TUN/TAP persist-tun # Active la compression comp-lzo ## LOG ## # Quantité de log (choix entre 0 et 9) # Choisir entre 3 et 4 pour une utilisation normale verb 3 # Imprime au plus 20 messages de la même catégorie mute 20 # Fichier où on liste les connexions des clients status openvpn-status.log # Fichier de log log-append /var/log/openvpn.log # Dossier de configuration des clients client-config-dir ccd ## PASS ## # Autoriser l'exécution de scripts externes en passant les mots de passe via les variables d'environnement script-security 3 system # Utiliser le pseudo d'authentification comme nom (au lieu du nom du certificat du client) username-as-common-name # Certificat du client non requis client-cert-not-required # Utiliser le script de connexion lorsqu'un client veut s'authentifier auth-user-pass-verify scripts/login.sh via-env # Nombre maximum de clients max-clients 50 # Appeler ces scripts à la connexion et déconnexion du client client-connect scripts/connect.sh client-disconnect scripts/disconnect.sh