jeudi 13 janvier 2011

Serveur OpenVPN avec authentification LDAP sur une Debian Squeeze




On suppose que le serveur LDAP est déjà mis en place et est opérationnel.


I-Configuration coté serveur:

1-Installation des paquets nécessaires :

# aptitude install openvpn openssl

Effectuer une copie du dossier contenant les scripts de génération de clés:
# cp /usr/share/doc/openvpn/examples/easy-rsa openvpn/ -R
# cd openvpn/2.0


1-Créer les clés et les certificats:

Editer le fichier vars et modifier les lignes suivantes:
# vim vars
export KEY_COUNTRY="MG"
export KEY_PROVINCE="Antananarivo"
export KEY_CITY="Tana Ville"
export KEY_ORG="ARAND"
export KEY_EMAIL="root@Serveur.arand.com"


Initialiser les clés:
# . ./vars
# ./clean-all


Créer la clé de l'autorité de certification (ca) principale:
# ./build-ca
Toujours valider par la touche Entrée jusqu'à:
Common Name (eg, yourname or yourserver'shostname) []:Serveur (résultat de la commande hostname)

Créer la clé et le certificat propre au serveur:
# ./build-key-server Serveur
Toujours valider par la touche Entrée jusqu'à:
Certificateis to becertifieduntilDec 14 10:43:30 2020 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificaterequestscertified, commit? [y/n]y
Write out databasewith 1 new entries
Data Base Updated

Créer la clé et le certificat pour le client:
# ./build-key Client
Toujours valider par la touche Entrée jusqu'a:
Certificateis to becertifieduntilDec 14 10:46:56 2020 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificaterequestscertified, commit? [y/n]y
Write out databasewith 1 new entries
Data Base Updated

Créer les parametres Diffie-Hellman
# ./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This isgoing to take a long time
.............................+..........+.+...........................................................................+..+...........+.............................................................++*++*++*

On peut verifier:
# ls keys
01.pem 02.pem 03.pem
index.txt index.txt.old index.txt.attr index.txt.attr.old
serial serial.old
dh1024.pem
ca.crt ca.key
Serveur.csr Serveur.crt Serveur.key
Client.csr Client.crt Client.key

Enfin, il faut copier tous les fichiers necessaires au serveur dans le dossier de configuration d'OpenVPN:
# cd keys
# cp dh* ca* Serveur* /etc/openvpn

2-Créer le fichier de configuration d’OpenVPN :
# vim /etc/openvpn/openvpn.conf
Voici mon fichier openvpn.conf. Adaptez-le pour qu’il soit conforme à votre configuration :

port 1194
proto tcp
dev tun

ca ca.crt
cert Serveur.crt
key Serveur.key
dh dh1024.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "route 192.168.0.0 255.255.255.0"
### car l’adresse du serveur est 192.168.0.1/24

client-to-client

keepalive 10 120

comp-lzo

persist-key
persist-tun

status openvpn-status.log
log openvpn.log
log-append openvpn-append.log

verb 9

### Insérer les lignes suivantes pour avoir l’authentification LDAP
username-as-common-name
plugin /usr/lib/openvpn/openvpn-auth-pam.so openvpn

Redemarrer le service :
# /etc/init.d/openvpn restart
# openvpn /etc/openvpn/openvpn.conf


II-Configuration du client :

1-Installer OpenVPN :

# aptitude install openvpn

2-Créer le fichier de configuration pour le Client :

Pour un client Debian le fichier sera Client.conf. Voici mon fichier Client.conf. Comme précédemment adaptez ce fichier au votre :

Client

dev tun

proto tcp

remotexxx.xxx.xxx.xxx:1194
### adresse IP publique du serveur et son port d’écoute

resolv-retry infinite

nobind

persist-key
persist-tun

ca ca.crt
cert Client.crt
key Client.key

ns-cert-type server

comp-lzo

verb 3

### Cette ligne indique que le client devra s’authentifier
auth-user-pass

3-Récupérer les fichiers clés et certificats pour le client:

Il faut récupérer les fichiers : ca.* et Client.* et les placer avec le fichier Client.conf dans le dossier de configuration d’OpenVPN.

4-Redémarrer le service et se connecter :

# /etc/init.d/openvpn restart
# openvpn /etc/openvpn/Client.conf

Voila, je crois que tout y est!!!!