Serveur OpenVPN sous Debian Squeeze
aptitude install openvpn
# on va travailler dans ce répertoire
cd /etc/openvpn
#récupération des scripts d'exemple dans un dossier easyrsa
cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0/ ./easyrsa
cd easyrsa
#on définit nos variables tout à la fin du fichier du fichier vars
nano vars
#on édite les 5 dernières lignes, les export KEY :
export KEY_COUNTRY="FR"
export KEY_PROVINCE="92"
export KEY_CITY="Paris"
export KEY_ORG="MonOrganisation"
export KEY_EMAIL="plop@plop.com"
#on initialise les variables :
. ./vars
#on clean et crée le repertoire keys
./clean-all
#on crée la clé de l'Autorité de Certification (celle qui va créer et signer toutes le autres clés ; dans ce cas, la même machine que le serveur)
./build-ca
#tout est déjà pre-rempli, juste besoin de valider
# on crée la clé du serveur, qu'on appelle server par facilité
./build-key-server server
#on peut tout laisser par défaut, et il n'est pas obligatoire de mettre un mot de passe. Juste répondre y aux 2 dernières questions
# on crée une clé pour 1 premier client, dans l'exemple appelé client1
./build-key client1
# pareil, on peut tout laisser par défaut. Répondre y aux 2 dernières questions
# on génère le paramètres Diffie Hellman - crypto, pour comprendre voir sur la wiki, mais il faut le faire
./build-dh
# on récupère la conf d'exemple du server
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
gunzip /etc/openvpn/server.conf.gz
#qu'on édite pour configurer (fichiers seront uploadés). Je prefère mettre les chemins absolus pour les clés et certificats
#on copie les certificats des Autorité de Certif. et du server, la clé du serveur et les param DH directement dans /etc/openvpn/ (pour démarrage automatique en tant que service, au démarrage de la machine)
cp /etc/openvpn/easyrsa/keys/ca.crt /etc/openvpn/easyrsa/keys/dh1024.pem /etc/openvpn/easyrsa/keys/server.crt /etc/openvpn/easyrsa/keys/server.key /etc/openvpn/
# et on peut démarrer le serveur
openvpn /etc/openvpn/server.conf
# si ça s'arerete sur "Initialization sequence completed", c'est gagné !
Chaque client a besoin :
- du fichier ca.crt
- du fichier client.crt
- du fichier client.conf (paramétré come le server, et avec les bons emplaements de clé)
TOUT FICHIER EN .KEY EST SECRET ET NE DEVRAIT JAMAIS QUITTER LA MACHINE A LAQUELLE IL EST DESTINE. Les autorisations d'ouverture et lecture de ce fichier doivent aussi être réduites...