TUXANANTES FORMATION

http://tuxanantes.free.fr/

OpenVpn : une configuration qui fonctionne

Cette article ne se veut pas un HowTo ou un didacticiel , juste la mise à disposition des fichiers de configuration !

L'installation d'openvpn a été réalisé sur une Debian à partir des sources ( ./configure , make , make install ...)

Une vue sur l'arborescence de la configuration coté serveur

# ls -R /usr/local/openvpn
/usr/local/openvpn:
etc log

/usr/local/openvpn/etc:
ca.crt dh1024.pem openvpn.conf openvpn-status.log server.csr status.log
ca.key ipp.txt openvpn.log server.crt server.key

/usr/local/openvpn/log:
openvpn.log openvpn-status.log

Le fichier /usr/local/openvpn/etc/openvpn.conf :
port 1194
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh1024.pem
server 10.8.0.0 255.255.255.0
keepalive 10 120
persist-key
persist-tun
status /usr/local/openvpn/log/openvpn-status.log
log-append /usr/local/openvpn/log/openvpn.log
verb 1
comp-lzo

Le fichier de configuration coté Windows :
client
dev tun
proto tcp
remote 91.121.57.160 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
verb 1


Le script permettant de gérer le service openvpn : ( # cat /etc/init.d/openvpn )

#!/bin/bash
DAEMON=/usr/local/sbin/openvpn
CONF=/usr/local/openvpn/etc/openvpn.conf
CONFIG_DIR=/usr/local/openvpn/etc
DAEMONARG="--daemon openvpn"
PIDFILE=/var/run/openvpn.pid
test -x $­­­­DAEMON || exit 0
test -d $­­­­CONFIG_DIR || exit 0
case "$­­­­1" in
start)
echo -n "Starting openvpn : "
$­­­­DAEMON --writepid $­­­­PIDFILE --config $­­­­CONF $­­­­DAEMONARG --cd $­­­­CONFIG_DIR --chroot /usr/local/openvpn
echo "Done." ;;
stop)
echo -n "Stopping openvpn : "
PID=`cat $­­­­PIDFILE`
kill $­­­­PID
rm $­­­­PIDFILE
echo "Done." ;;
restart) echo "Restarting openvpn : "
echo ""
sh $­­­­0 stop
sh $­­­­0 start
echo ""
echo "Openvpn has restarted." ;;
*) echo "Usage: $­­­­0 {start|stop|restart}" >&2
exit 1 ;;
esac
exit 0

Les commandes :
Dans cette configuration , l'installation des sources a été effectué dans le répertoire /install

cd /install/openvpn-2.0.9/easy-rsa/

Modification des dernières lignes du fichier : vars

export KEY_COUNTRY=fr
export KEY_PROVINCE=drome
export KEY_CITY=valence
export KEY_ORG=boiteinformatique
export KEY_EMAIL=xxxxxxxxx@xxx.com

Initialisation des variables définies dans le shell courant :
. ./vars

Nettoyage de toutes les clés et certificats existants :
./clean-all

Les fichiers qui vont être générés par les étapes suivantes sont créés dans le répertoire :
/install/openvpn-2.0.9/easy-rsa/keys

Création du certificat de l’Autorité de Certification :
./build-ca
Génération d'un certificat et une clé privée pour le serveur :
./buid-key-server server
( Quand le Common Name est demandé, il faut entrer « server » comme le dernier paramètre entré dans la commande précédente )

Génération des certificats et des clés pour un client :
./build-key client1

Les paramètres Diffie Hellman doivent être générés pour le serveur OpenVPN :
./build-dh


Les fichiers clés

Nom de fichier Utile à Utilité Secret
ca.crt Serveur et tous les clients Certificat racine AC NON
ca.key Clé signant la machine seulement Clé racine CA OUI
dh{n}.pem Serveur seulement Paramètres Diffie Hellman NON
server.crt Serveur seulement Certificat serveur NON
server.key Serveur seulement Clé serveur OUI
client1.crt Client1 seulement Certificat Client1 NON
client1.key Client1 seulement Clé Client1 OUI
client2.crt Client2 seulement Certificat Client2 NON
client2.key Client2 seulement Clé Client2 OUI

L’étape finale dans ce processus de génération de clés est de copier tous les fichiers sur la machine qui en a besoin, en prenant soin de les copier à l'aide d'un media sûr.