4 231
modifications
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= |