« Mise en place d'un VPN avec OpenVPN » : différence entre les versions

Aller à la navigation Aller à la recherche
Ligne 106 : Ligne 106 :


Définissez bien-sur l'ip de votre serveur à la ligne <code>local</code>. Vous noterez aussi que pour l'instant, la redirection du trafic (les lignes <code>push</code>) est désactivé.
Définissez bien-sur l'ip de votre serveur à la ligne <code>local</code>. Vous noterez aussi que pour l'instant, la redirection du trafic (les lignes <code>push</code>) est désactivé.
==plop==
Pour l'instant, nous avons une configuration fonctionnelle, mais pas parfaite. En effet, nous avons créé une autorité de certification dédié à l'émission de certificats vpn, mais n'importe quel certificat signé par l'un des parents de cette autorité sera autorisé à se connecter. Par exemple, si vous signez un certificat client au travers de l'autorité root_ca, ce certificat sera reconnu comme valide par openvpn.
Pour régler ce problème, nous allons utiliser la directive <code>tls-verify</code> de openvpn qui permet de d'exécuter un script personnalisé afin d'autoriser ou de refuser la connexion.
Ajoutez les lignes suivantes à votre fichier <code>/etc/openvpn/server.conf</code> :
<pre>
script-security 2
tls-verify /etc/openvpn/allow.sh
</pre>
Puis créez le fichier <code>/etc/openvpn/alow.sh</code> contenant :
<pre>
#! /bin/bash
depth_3="/C=01/ST=Epsilon_Eridani_System/L=Reach/O=UNSC/OU=High_Command/CN=UNSC_ROOT_CA/emailAddress=ca@csnu.org"
depth_2="/C=01/ST=Epsilon_Eridani_System/L=Reach/O=UNSC/OU=Office_of_Naval_Intelligence/CN=UNSC_ONYX_CA/emailAddress=ca@csnu.org"
depth_1="/C=01/ST=Epsilon_Eridani_System/L=Reach/O=UNSC/OU=Office_of_Naval_Intelligence/CN=UNSC_VPN_CA/emailAddress=ca@csnu.org"
arg_depth=$1
arg_name=$2
eval a=\$depth_$arg_depth
#echo $a
#Si on est à la profondeur zéro, on intercepte ici
if [ $1 = 0 ]; then
        exit 0
fi
if [ "$a" = "$arg_name" ]; then
        exit 0
else
        exit 1
fi
</pre>


=Configuration du client openvpn=
=Configuration du client openvpn=
4 203

modifications

Menu de navigation