http://tuxanantes.free.fr/
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=frGénération d'un certificat et une clé privée pour le serveur :
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
Common Name
est demandé, il faut entrer « server » comme le dernier paramètre entré dans la commande précédente ) Les paramètres Diffie Hellman doivent être générés pour le serveur OpenVPN :
./build-dh
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.