Skip to content


Serveur OpenVPN Linux avec authentification avec LDAP (pam_ldap)

Introduction :

Quelques difficultés peuvent être rencontrées lors de la configuration cliente d'un Linux avec IPSec, alors une solution est de passer sur une serveur VPN OpenVPN.

Ce tutoriel est très inspiré de : http://doc.ubuntu-fr.org/openvpn

vpn_03.png

Pré-requis :

Il faut installer : OpenVPN, libpam-ldap, Openssl...

Générer le certificat et la clé de l’Autorité de Certification maître :

Pour la gestion de l’ICP, nous utiliserons un jeu de scripts livrés avec OpenVPN.

Il faut tout d’abord ouvrir un terminal et effectuer une copie dans son dossier /home des scripts de génération de clés :

cp /usr/share/doc/openvpn/examples/easy-rsa ~/openvpn/ -R

cd ~/openvpn/2.0

Il faut modifier le fichier vars :

Mettre un nombre de bit plus important à la taille des clés : Par défaut 1024 j'ai choisit 2048 , diminuer la période de validité : 3650 par défaut.

export KEY_SIZE=2048
export KEY_EXPIRE=365
export CA_EXPIRE=365
.......
export KEY_COUNTRY=FR
export KEY_PROVINCE=Rhône
export KEY_CITY=Lyon
export KEY_ORG=SLN
export KEY_EMAIL=votreadressemail

On initialise les variables :

. ./vars

On nettoie toutes les clés et certificats existants :

./clean-all

Puis, nous créons le certificat et la clé de l’Autorité de Certification Maitre (master Certificate Authority (CA) :

./build-ca

La dernière commande (build-ca) va construire le certificat de l’Autorité de Certification et la clé en utilisant la commande interactive openssl et sortira :

./build-ca

Generating a 4096 bit RSA private key

........++

..................++

writing new private key to 'ca.key'

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [FR]:

State or Province Name (full name) [Rhône]:

Locality Name (eg, city) [Lyon]:

Organization Name (eg, company) [SLN]:

Organizational Unit Name (eg, section) []:

Common Name (eg, your name or your server's hostname) [SLN CA]:debian

Email Address [lolo]:

Générer un certificat et une clé pour le serveur :

Nous allons générer un certificat et une clé privée pour le serveur :

Dans cet exemple, le nom de notre serveur est : debian

./build-key-server debian

Quand le Common Name est demandé, il faut entrer « debian» comme le dernier paramètre entré dans la commande précédente. Puis il faut mettre un mot de passe et un nom d’entreprise (facultatif).

Suivent deux dernières questions qui requièrent des réponses positives :

Certificate is to be certified until Oct 26 21:48:37 2017 GMT (3650 days)
Sign the certificate ? [y/n] :y
1 out of 1 certificate requests certified, commit ? [y/n] y

Le certificat et la clé du serveur sont à présent créés : debian.crt et debian.key.

Générer les certificats et les clés pour 3 clients :

Générer des certificats et des clés pour les clients est une étape similaire à l’étape précédente.

  • Pour protéger avec un mot de passe la clé, il faut utiliser ./build-key-pass au lieu de ./build-key.
  • Si possible faire un couple "utilisateur" / "clés"

Ce qui élèvera le niveau de sécurité, dans le cadre de perte de donné, de matériel, ou tout simplement à cause d'une erreur humaine.

Exemple avec un client nommé client1 :

./build-key client1

Quand le Common Name est demandé, il faudra donc entrer « client1 »

./build-key client2

./build-key client3

Il faut toujours se rappeler que pour chaque client, le champ Common Name doit être renseigné et unique.

Les certificats et les clés des clients sont créés.

Générer des paramètres Diffie-Hellman :

Les paramètres Diffie Hellman doivent être générés pour le serveur OpenVPN :

./build-dh

Ce qui donne :

Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
.................+...........................................
...................+.............+.................+.........
......................................
etc...

Les paramètres Diffie Hellman sont copiés dans le répertoire keys : dh1024.p

Les fichiers clés :

Maintenant, nous pouvons trouver les clés et les certificats fraichement générés dans le dossier keys. Suit une explication de ce que contiennent les fichiers du dossier keys.

Nom de fichier Utilisé par Utilité Secret ?
ca.crt Serveur et tous les clients Certificat racine CA Non
ca.key Clé signant la machine seulement Clé racine CA Oui
dh{n}.pem Serveur seulement Paramètres Diffie Hellman Non
debian.crt Serveur seulement Certificat debian Non
debian.key Serveur seulement Clé debian 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 à travers un tunnel sûr.

Copie des fichiers serveur :

cp keys/dh*.pem keys/ca.crt keys/debian.crt keys/debian.key /etc/openvpn/

Création des fichiers de configuration pour le serveur et les clients :

Obtenir les fichiers d’exemple de configuration

Dans le répertoire /usr/share/doc/openvpn/examples/sample-config-files/, vous trouverez des fichiers de configuration client.conf et server.conf qui peuvent vous servir de base pour la configuration de votre serveur ou de vos clients.
Si vous devez travailler avec des machines sous Windows l'extension ".conf" doit être changée en ".ovpn" sur le pc Windows.

Configuration du serveur

Attention pour le serveur le fichier d'exemple est compressé : server.conf.gz, il faut le gunzipper comme suit:

cd /usr/share/doc/openvpn/examples/sample-config-files

sudo gunzip server.conf.gz

puis exécuter la commande ci dessous

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/debian.conf

Il faut donc éditer le fichier/etc/openvpn/server.conf

Le fichier d’exemple de configuration pour le serveur est un point de départ pour une configuration serveur d’OpenVPN. Il va créer un VPN utilisant une interface réseau virtuel TUN (pour le routage), écouter les connections clients sur le port UDP 1194 (port officiel d’OpenVPN), et distribuer des adresses virtuelles aux clients se connectant depuis le réseau 10.8.0.0/24.

À présent, le fichier de configuration serveur est utilisable. Néanmoins, il est toujours possible de modifier le fichier plus en détail :

  • En cas d’utilisation d’Ethernet bridgé, il faut utiliser server-bridge et dev tap au lieu de server et dev tun
  • Si le serveur doit écouter sur un port TCP au lieu d’UDP, il faut mettre proto tcp au lieu de proto udp (si OpenVPN doit écouter sur les deux, il faut créer deux instances séparées d’OpenVPN)
  • Si l’adresse IP virtuelle utilisée doit être différente de 10.8.0.0/24, il faut modifier la directive server. Ne jamais oublier que la plage d’adresse IP virtuelles doit être inutilisée sur les réseaux de chaque côté du VPN.
  • Pour que les clients soient capables de s’atteindre à travers le VPN, il faut décommenter la directive client-to-client. Par défaut, les clients ne peuvent atteindre que le serveur.
Pour augmenter la sécurité, il est possible de dé-commenter les directives user nobody et group nobody. Diverses options de cryptage et de sécurité peuvent aussi être modifiées. (Le groupe nobody n'existe pas dans ubuntu, il faut donc mettre nogroup)
Voici mon fichier de configuration :
# Which local IP address should OpenVPN
# listen on? (optional)
port 1194
management localhost 1195
proto udp
dev tun
ca ca.crt
cert debian.crt
key debian.key  # This file should be kept secret
dh dh1024.pem
server 10.10.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-to-client
duplicate-cn
keepalive 10 120
;cipher BF-CBC        # Blowfish (default)
;cipher AES-128-CBC   # AES
;cipher DES-EDE3-CBC  # Triple-DES
;cipher AES-256-CFB8
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log         openvpn.log
log-append  openvpn-append.log
verb 9
# Ajouter cette route pour un VPN distant
# Quand l'adresse réseau est 10.1.1.0/24
push "route 10.1.1.0 255.255.255.0"
# Celle-ci pour le réseau VPN
push "route 10.10.1.0 255.255.255.0"
# Option type DNS, serveur WINS
push "dhcp-option DNS 10.1.1.1"
push "dhcp-option WINS 10.1.1.1"
# Ici la partie afin d'avoir l'authentification LDAP
username-as-common-name
plugin /usr/lib/openvpn/openvpn-auth-pam.so openvpn

Pour faire fonctionner plusieurs instances d’OpenVPN sur la même machine, chacune utilisant un fichier de configuration différent, il faut :

  • Utiliser un port différent pour chaque instances (les protocoles UDP et TCP utilisent différent espaces de port, donc un processus peut écouter le port UDP-1194 et un autre le port TCP-1194)
  • Faire attention, lorsque les instances d’OpenVPN utilisent le même dossier, que chacune n’écrive pas sur les mêmes sorties. C'est-à-dire qu’il faut modifier les directives log, log-append, status et ifconfig-pool-persist.

Configuration de pam_ldap

Dans le fichier /etc/pam.d/openvpn on trouve :

account required pam_ldap.so config=/etc/openvpn/auth/pam_ldap.conf
auth  required pam_ldap.so config=/etc/openvpn/auth/pam_ldap.conf
password required pam_ldap.so config=/etc/openvpn/auth/pam_ldap.conf
session required pam_ldap.so config=/etc/openvpn/auth/pam_ldap.conf

L'autre fichier est /etc/openvpn/auth/pam_ldap.conf :

# change to your search base
base dc=DOMAIN,dc=local

# change according to your settings
uri ldap://IPserveur
ldap_version 3
rootbinddn cn=admin,dc=DOMAIN,dc=local
pam_login_attribute uid
# Les utilisateurs devront être dans le groupe "openvpn-ldap"
pam_groupdn cn=openvpn-ldap,ou=Groups,dc=dom-sln,dc=local
pam_member_attribute memberuid
pam_password clear

Explication : Lors du lancement de OpenVPN, l'option "plugin /usr/lib/openvpn/openvpn-auth-pam.so openvpn" indique à openvpn de chercher le fichier "openvpn" dans /etc/pam.d et d'éxecuter ce qu'il y a dedans.

Configuration du client

Le fichier d’exemple de configuration du client client.conf reflète les directives mises dans le fichier debian.conf.

  • Comme le fichier de configuration du serveur, éditez d’abord les paramètres ca, cert et key pour pointer vers les fichiers générés précédemment. Chaque client doit avoir sa propre paire cert/key. Seul le fichier ca est universel à travers le VPN (le serveur et tous les clients).
  • Éditez ensuite la directive remote pour indiquer l’adresse IP/nom d’hôte et le port du serveur OpenVPN (s’il est derrière un routeur, il faut indiquer l’adresse publique et le port sur lequel le routeur transfert vers le serveur OpenVPN)

Voici le miens :

# Specify that we are a client and that we
# will be pulling certain config file directives
# from the server.
client
dev tun
proto udp
remote 10.1.1.254 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo
verb 3
auth-user-pass
push "route 10.10.0.0 255.255.255.0"
push "dhcp-option DNS 10.1.1.1"
push "dhcp-option WINS 10.1.1.1"

Configuration du client Windows

Il faut télécharger la dernière version de OpenVPN en GUI : http://openvpn.net/release/openvpn-2.1.3-install.exe

sur http://openvpn.net/index.php/open-source/downloads.html

Démarrage automatique d’OpenVPN au lancement du système :

Pour qu’OpenVPN se lance au démarrage du serveur ou du client, il faut placer le fichier de configuration au bon endroit.

  • Pour le serveur, copiez le fichier server.conf dans le répertoire /etc/openvpn
  • Pour les clients, copiez le fichier client.conf dans /etc/openvpn

Il faut également déplacer les clés et certificats dans le dossier /etc/openvpn. Sont concernés :

  • ca.crt : pour le serveur et le client
  • pour le serveur :
    • server.crt
    • server.key
    • dh1024.pem
  • Pour le client :
    • client.crt
    • client.key

Démarrage du serveur

Premièrement, il faut vérifier que le serveur OpenVPN sera accessible depuis Internet. Ce qui signifie que :

  • le port 1194 UDP (ou celui configuré) est bien ouvert sur le pare-feu
  • une règle de transfert pour transférer le port 1194 UDP depuis le firewall vers le serveur OpenVPN est bien établie

Ensuite, il faut vérifier que l’interface TUN/TAP n’est pas derrière un pare-feu.

Pour simplifier la recherche de problèmes, il est préférable de démarrer le serveur OpenVPN depuis la ligne de commande plutôt que de démarrer le démon. Dans un terminal :

cd /etc/openvpn
sudo openvpn server.conf

Un démarrage normal ressemble à ça :

Fri Nov  5 03:41:36 2010 /sbin/ifconfig tun2 10.10.0.1 pointopoint 10.10.0.2 mtu 1500
Fri Nov  5 03:41:36 2010 /sbin/route add -net 10.10.0.0 netmask 255.255.255.0 gw 10.10.0.2
Fri Nov  5 03:41:36 2010 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Fri Nov  5 03:41:36 2010 Socket Buffers: R=[111616->131072] S=[111616->131072]
Fri Nov  5 03:41:36 2010 UDPv4 link local (bound): [undef]:1198
Fri Nov  5 03:41:36 2010 UDPv4 link remote: [undef]
Fri Nov  5 03:41:36 2010 MULTI: multi_init called, r=256 v=256
Fri Nov  5 03:41:36 2010 IFCONFIG POOL: base=10.10.0.4 size=62
Fri Nov  5 03:41:36 2010 IFCONFIG POOL LIST
Fri Nov  5 03:41:36 2010 Initialization Sequence Completed

Démarrage du client

Comme dans la configuration serveur, il est préférable de démarrer le client OpenVPN depuis une ligne de commande. Exemple pour le client1 configuré plus haut :

cd /etc/openvpn && sudo openvpn client.conf

Configuration et fonctionnement du client OpenVPN Windows

Voir : http://www.system-linux.net/config/Linux-OpenVPN-client-windows/

Attention avec l'authentification il y a une boite de dialogue qui s'ouvre afin d'indiquer quel couple {login/mdp} entrer !

Il faut bien entendu entrer un couple contenu dans LDAP !

Linux_OpenVPN_client_windows_09a.png

Lors de la connexion au VPN voici quelques traces permettant de voir le passage du login/mdp :

Fri Nov  5 03:43:27 2010 MULTI: multi_create_instance called
Fri Nov  5 03:43:27 2010 10.1.1.251:1034 Re-using SSL/TLS context
Fri Nov  5 03:43:27 2010 10.1.1.251:1034 LZO compression initialized
Fri Nov  5 03:43:27 2010 10.1.1.251:1034 Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Fri Nov  5 03:43:27 2010 10.1.1.251:1034 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Fri Nov  5 03:43:27 2010 10.1.1.251:1034 Local Options hash (VER=V4): '530fdded'
Fri Nov  5 03:43:27 2010 10.1.1.251:1034 Expected Remote Options hash (VER=V4): '41690919'
Fri Nov  5 03:43:27 2010 10.1.1.251:1034 TLS: Initial packet from 10.1.1.251:1034, sid=2b444c2b 7c712d69
Fri Nov  5 03:43:28 2010 10.1.1.251:1034 VERIFY OK: depth=1, /C=FR/ST=Rh_xC3_xB4ne/L=Lyon/O=SLN/CN=debian/emailAddress=lolo
Fri Nov  5 03:43:28 2010 10.1.1.251:1034 VERIFY OK: depth=0, /C=FR/ST=Rh_xC3_xB4ne/L=Lyon/O=SLN/CN=client1/emailAddress=lolo
Fri Nov  5 03:43:28 2010 10.1.1.251:1034 PLUGIN_CALL: POST /usr/lib/openvpn/openvpn-auth-pam.so/PLUGIN_AUTH_USER_PASS_VERIFY status=0
Fri Nov  5 03:43:28 2010 10.1.1.251:1034 TLS: Username/Password authentication succeeded for username 'lolo' [CN SET]
Fri Nov  5 03:43:28 2010 10.1.1.251:1034 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Fri Nov  5 03:43:28 2010 10.1.1.251:1034 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Fri Nov  5 03:43:28 2010 10.1.1.251:1034 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Fri Nov  5 03:43:28 2010 10.1.1.251:1034 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Fri Nov  5 03:43:28 2010 10.1.1.251:1034 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
Fri Nov  5 03:43:28 2010 10.1.1.251:1034 [lolo] Peer Connection Initiated with 10.1.1.251:1034
Fri Nov  5 03:43:28 2010 lolo/10.1.1.251:1034 MULTI: Learn: 10.10.0.6 -> lolo/10.1.1.251:1034
Fri Nov  5 03:43:28 2010 lolo/10.1.1.251:1034 MULTI: primary virtual IP for lolo/10.1.1.251:1034: 10.10.0.6
Fri Nov  5 03:43:30 2010 lolo/10.1.1.251:1034 PUSH: Received control message: 'PUSH_REQUEST'
Fri Nov  5 03:43:30 2010 lolo/10.1.1.251:1034 SENT CONTROL [lolo]: 'PUSH_REPLY,route 10.1.1.0 255.255.255.0,route 10.10.0.0 255.255.255.0,dhcp-option DNS 10.1.1.1,dhcp-option WINS 10.1.1.1,route 10.10.0.0 255.255.255.0,topology net30,ping 10,ping-restart 120,ifconfig 10.10.0.6 10.10.0.5' (status=1)

Maintenant le serveur ayant l'adresse IP : 10.8.0.1 devrait pinguer l'adresse IP : 10.10.0.X

Linux_OpenVPN_client_windows_12.png

Voilà 🙂

Discussion autour de la limitaion en adresse IP (push "route") :

Comment en effet faire en sorte de limiter les adresses accessibles par le client connecté en VPN à votre réseau ? Là notre ami se trouve dans "push route" !

Comme nous l'avons vu ce paramètre permet d'ajouter des routes, mais rien ne vous oblige à implémenter des routes donnant à votre réseau privé de façon total.

Partons du principe que le réseau privé derrière le VPN soit 10.1.1.0/24 (10.1.1.1 à 10.1.1.254) qui par définition est un sous-réseau de sa classe (10.0.0.0/8).

Imaginons un cas où deux plages d'adresses correspondent l'une à une partie commerciale RZ1=(10.1.1.1 à 10.1.1.126) et une autre disons technique RZ2=(10.1.1.129 à 10.1.1.254).

Voici ce que donne la commande ipcalc :

$ ipcalc 10.1.1.0/24 25
Address: 10.1.1.0 00001010.00000001.00000001. 00000000
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 10.1.1.0/24 00001010.00000001.00000001. 00000000
HostMin: 10.1.1.1 00001010.00000001.00000001. 00000001
HostMax: 10.1.1.254 00001010.00000001.00000001. 11111110
Broadcast: 10.1.1.255 00001010.00000001.00000001. 11111111
Hosts/Net: 254 Class A, Private Internet

Subnets after transition from /24 to /25

Netmask: 255.255.255.128 = 25 11111111.11111111.11111111.1 0000000
Wildcard: 0.0.0.127 00000000.00000000.00000000.0 1111111

1.
Network: 10.1.1.0/25 00001010.00000001.00000001.0 0000000
HostMin: 10.1.1.1 00001010.00000001.00000001.0 0000001
HostMax: 10.1.1.126 00001010.00000001.00000001.0 1111110
Broadcast: 10.1.1.127 00001010.00000001.00000001.0 1111111
Hosts/Net: 126 Class A, Private Internet

2.
Network: 10.1.1.128/25 00001010.00000001.00000001.1 0000000
HostMin: 10.1.1.129 00001010.00000001.00000001.1 0000001
HostMax: 10.1.1.254 00001010.00000001.00000001.1 1111110
Broadcast: 10.1.1.255 00001010.00000001.00000001.1 1111111
Hosts/Net: 126 Class A, Private Internet

Ces deux sous réseaux sont RZ1 10.1.1.0/25 et RZ2 10.1.1.128/25.

Un petit outil permet de calculer les sous réseaux ou subnet et vous aider à avancer sur ce point : http://jodies.de/ipcalc

Remarque : La connexion est stable +6 heures !

cd /etc/openvpn/ ; openvpn client1.conf
Wed Oct 13 08:52:54 2010 OpenVPN 2.1_rc10 i586-mandriva-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] built on Nov 21 2008
Enter Auth Username:lolo
Enter Auth Password:
Enter Private Key Password:
Wed Oct 13 08:53:02 2010 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Wed Oct 13 08:53:02 2010 WARNING: file 'client1.key' is group or others accessible
Wed Oct 13 08:53:02 2010 LZO compression initialized
Wed Oct 13 08:53:02 2010 Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Wed Oct 13 08:53:02 2010 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Wed Oct 13 08:53:02 2010 Local Options hash (VER=V4): '41690919'
Wed Oct 13 08:53:02 2010 Expected Remote Options hash (VER=V4): '530fdded'
Wed Oct 13 08:53:02 2010 Socket Buffers: R=[112640->131072] S=[112640->131072]
Wed Oct 13 08:53:02 2010 UDPv4 link local: [undef]
Wed Oct 13 08:53:02 2010 UDPv4 link remote: 82.xx.yy.zzz:1194
Wed Oct 13 08:53:02 2010 TLS: Initial packet from  82.xx.yy.zzz:1194, sid=f52dfece d5027423
Wed Oct 13 08:53:02 2010 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Wed Oct 13 08:53:03 2010 VERIFY OK: depth=1, /C=FR/ST=Rh_xC3_xB4ne/L=Lyon/O=SLN/CN=debian/emailAddress=lolo
Wed Oct 13 08:53:03 2010 VERIFY OK: nsCertType=SERVER
Wed Oct 13 08:53:03 2010 VERIFY OK: depth=0, /C=FR/ST=Rh_xC3_xB4ne/L=Lyon/O=SLN/CN=debian/emailAddress=lolo
Wed Oct 13 08:53:04 2010 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Oct 13 08:53:04 2010 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Oct 13 08:53:04 2010 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Oct 13 08:53:04 2010 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Oct 13 08:53:04 2010 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
Wed Oct 13 08:53:04 2010 [debian] Peer Connection Initiated with 82.   xx.yy.zzz:1194
Wed Oct 13 08:53:05 2010 SENT CONTROL [debian]: 'PUSH_REQUEST' (status=1)
Wed Oct 13 08:53:05 2010 PUSH: Received control message: 'PUSH_REPLY,route 10.1.1.0 255.255.255.0,route 10.8.0.0 255.255.255.0,dhcp-option DNS 10.1.1.1,dhcp-optio
n WINS 10.1.1.1,route 10.8.0.0 255.255.255.0,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5'
Wed Oct 13 08:53:05 2010 OPTIONS IMPORT: timers and/or timeouts modified
Wed Oct 13 08:53:05 2010 OPTIONS IMPORT: --ifconfig/up options modified
Wed Oct 13 08:53:05 2010 OPTIONS IMPORT: route options modified
Wed Oct 13 08:53:05 2010 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Wed Oct 13 08:53:05 2010 ROUTE default_gateway=10.0.3.254
Wed Oct 13 08:53:05 2010 TUN/TAP device tun0 opened
Wed Oct 13 08:53:05 2010 TUN/TAP TX queue length set to 100
Wed Oct 13 08:53:05 2010 /sbin/ifconfig tun0 10.8.0.6 pointopoint 10.8.0.5 mtu 1500
Wed Oct 13 08:53:05 2010 /sbin/route add -net 10.1.1.0 netmask 255.255.255.0 gw 10.8.0.5
Wed Oct 13 08:53:05 2010 /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.5
Wed Oct 13 08:53:05 2010 /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.5
SIOCADDRT: File exists
Wed Oct 13 08:53:05 2010 ERROR: Linux route add command failed: external program exited with error status: 7
Wed Oct 13 08:53:05 2010 Initialization Sequence Completed
Wed Oct 13 09:53:03 2010 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Wed Oct 13 09:53:04 2010 VERIFY OK: depth=1, /C=FR/ST=Rh_xC3_xB4ne/L=Lyon/O=SLN/CN=debian/emailAddress=lolo
Wed Oct 13 09:53:04 2010 VERIFY OK: nsCertType=SERVER
Wed Oct 13 09:53:04 2010 VERIFY OK: depth=0, /C=FR/ST=Rh_xC3_xB4ne/L=Lyon/O=SLN/CN=debian/emailAddress=lolo
Wed Oct 13 09:53:05 2010 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Oct 13 09:53:05 2010 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Oct 13 09:53:05 2010 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Oct 13 09:53:05 2010 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Oct 13 09:53:05 2010 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
Wed Oct 13 10:53:03 2010 TLS: tls_process: killed expiring key
Wed Oct 13 10:53:04 2010 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Wed Oct 13 10:53:04 2010 VERIFY OK: depth=1, /C=FR/ST=Rh_xC3_xB4ne/L=Lyon/O=SLN/CN=debian/emailAddress=lolo
Wed Oct 13 10:53:04 2010 VERIFY OK: nsCertType=SERVER
Wed Oct 13 10:53:04 2010 VERIFY OK: depth=0, /C=FR/ST=Rh_xC3_xB4ne/L=Lyon/O=SLN/CN=debian/emailAddress=lolo
Wed Oct 13 10:53:05 2010 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Oct 13 10:53:05 2010 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Oct 13 10:53:05 2010 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Oct 13 10:53:05 2010 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Oct 13 10:53:05 2010 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
Wed Oct 13 11:53:04 2010 TLS: tls_process: killed expiring key
Wed Oct 13 11:53:05 2010 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Wed Oct 13 11:53:05 2010 VERIFY OK: depth=1, /C=FR/ST=Rh_xC3_xB4ne/L=Lyon/O=SLN/CN=debian/emailAddress=lolo
Wed Oct 13 11:53:05 2010 VERIFY OK: nsCertType=SERVER
Wed Oct 13 11:53:05 2010 VERIFY OK: depth=0, /C=FR/ST=Rh_xC3_xB4ne/L=Lyon/O=SLN/CN=debian/emailAddress=lolo
Wed Oct 13 11:53:06 2010 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Oct 13 11:53:06 2010 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Oct 13 11:53:06 2010 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Oct 13 11:53:06 2010 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Oct 13 11:53:06 2010 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
Wed Oct 13 12:53:05 2010 TLS: tls_process: killed expiring key
Wed Oct 13 12:53:06 2010 TLS: soft reset sec=0 bytes=78958/0 pkts=884/0
Wed Oct 13 12:53:06 2010 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Wed Oct 13 12:53:06 2010 VERIFY OK: depth=1, /C=FR/ST=Rh_xC3_xB4ne/L=Lyon/O=SLN/CN=debian/emailAddress=lolo
Wed Oct 13 12:53:06 2010 VERIFY OK: nsCertType=SERVER
Wed Oct 13 12:53:06 2010 VERIFY OK: depth=0, /C=FR/ST=Rh_xC3_xB4ne/L=Lyon/O=SLN/CN=debian/emailAddress=lolo
Wed Oct 13 12:53:07 2010 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Oct 13 12:53:07 2010 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Oct 13 12:53:07 2010 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Oct 13 12:53:07 2010 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Oct 13 12:53:07 2010 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
Wed Oct 13 13:53:07 2010 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Wed Oct 13 13:53:07 2010 VERIFY OK: depth=1, /C=FR/ST=Rh_xC3_xB4ne/L=Lyon/O=SLN/CN=debian/emailAddress=lolo
Wed Oct 13 13:53:07 2010 VERIFY OK: nsCertType=SERVER
Wed Oct 13 13:53:07 2010 VERIFY OK: depth=0, /C=FR/ST=Rh_xC3_xB4ne/L=Lyon/O=SLN/CN=debian/emailAddress=lolo
Wed Oct 13 13:53:08 2010 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Oct 13 13:53:08 2010 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Oct 13 13:53:08 2010 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Oct 13 13:53:08 2010 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Oct 13 13:53:08 2010 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
Wed Oct 13 14:53:07 2010 TLS: tls_process: killed expiring key
Wed Oct 13 14:53:08 2010 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Wed Oct 13 14:53:08 2010 VERIFY OK: depth=1, /C=FR/ST=Rh_xC3_xB4ne/L=Lyon/O=SLN/CN=debian/emailAddress=lolo
Wed Oct 13 14:53:08 2010 VERIFY OK: nsCertType=SERVER
Wed Oct 13 14:53:08 2010 VERIFY OK: depth=0, /C=FR/ST=Rh_xC3_xB4ne/L=Lyon/O=SLN/CN=debian/emailAddress=lolo
Wed Oct 13 14:53:09 2010 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Oct 13 14:53:09 2010 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Oct 13 14:53:09 2010 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Oct 13 14:53:09 2010 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Oct 13 14:53:09 2010 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA

Références :

  1. http://www.freebsddiary.org/ipsec-wireless-xp.php
  2. http://www.enterprisenetworkingplanet.com/netsecur/article.php/3489911/Implement-IPSec-on-Windows-Server-2003.htm
  3. http://www.vogelweith.com/debian_server/11_racoon.php
  4. http://www.vogelweith.com/debian_server/10_openvpn.php
  5. http://rootmanager.com/ubuntu-ipsec-l2tp-windows-domain-auth/setting-up-openswan-xl2tpd-with-native-windows-clients.html
  6. http://www.jacco2.dds.nl/networking/openswan-l2tp.html
  7. http://www.jacco2.dds.nl/networking/win2000xp-freeswan.html
  8. http://wiki.openswan.org/index.php/Openswan/Windows
  9. http://pptpclient.sourceforge.net/howto-diagnosis.phtml
  10. http://net.its.hawaii.edu/advanced/make_work/IPSec/Openswan_Windows_x509/index.html
  11. http://poptop.sourceforge.net/dox/skwok/poptop_ads_howto_a5.htm
  12. http://lists.cistron.nl/pipermail/freeradius-users/2008-January/msg00915.html
  13. http://www.jacco2.dds.nl/networking/freeswan-l2tp.html
  14. http://poptop.sourceforge.net/dox/radius_mysql.html
  15. http://network.epfl.ch/vpn/L2TP/WinXP/
  16. http://www.jacco2.dds.nl/networking/openswan-l2tp.html#Openswanconfig
  17. http://www.technos-sources.com/tutorial-vpn-l2tp-layer-tunneling-protocol-ietf-47.aspx
  18. http://www.linktionary.com/l/l2tp.html
  19. http://wiki.freeradius.org/Mac-Auth#raddb.2Fpolicy.conf
  20. http://www.mighty-studio.net/wp-content/uploads/2007/02/vpn-l2tp.pdf
  21. http://y3sy3s.lafibre.org/?q=node/24
  22. http://www.mighty-studio.net/monter-un-vpn-l2tpipsec-avec-certificat-x509/
  23. http://www.wlanfr.net/contenus.php?id=100
  24. http://poptop.sourceforge.net/dox/replacing-windows-pptp-with-linux-howto.phtml
  25. http://sqls.net/wiki/howto:gentoo_linux_l2tp_ipsec_vpn_w_active_directory_radius_x.509_serving_windows_xp_vista_clients
  26. http://wiki.debuntu.org/wiki/OpenVPN/Installation#Authenticating_with_LDAP
  27. http://code.google.com/p/openvpn-auth-ldap/
  28. http://code.google.com/p/openvpn-auth-ldap/wiki/Configuration
Voilà....!
😉
-- FIN --
Print Friendly, PDF & Email

Posted in Debian, Important, Linux, Technique, Toutes, VirtualBox. Tagged with , , , .

9 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. harn said

    super! merci!
    mais comment on fait si le serveur ldap utilise les utilisateur dans l'annuaire actve directory pour l'authentification

  2. admin said

    Ah ! Oooops !

    Aurais-je oublié de parler de pam_ldap ?
    J'ai comblé l'oubli ! Absolument désolé !

    Je pense pour ta réponse qu'il faut adapter : /etc/openvpn/auth/pam_ldap.conf

    Voilà

  3. S4kur4 said

    Bonjour je viens vers vous car j'ai un petit soucis avec openvpn.

    réseaux 1 ----------- serveur ---------------------------- client vpn
    192.168.5x.0 ip : 192.168.5x.xxx ip 192.168.30.10
    ( serveur open vpn )

    avec mon client vpn j'arrive a pinguer les interfaces réseaux du SERVEUR donc 192.168.5x.xxx et 192.168.30.1
    avec le serveur j'arrive a pinguer réseaux 1 , et le client vpn

    malheureusement avec mon client vpn je n'arrive pas a pinguer les machines du réseaux 1.

    voici ma configuration serveur.conf de mon serveur openvpn :

    # listen on? (optional)
    local 192.168.5x.xxx
    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 192.168.30.0 255.255.255.0
    ifconfig-pool-persist ipp.txt
    push "route 192.168.5x.0 255.255.255.0"
    client-config-dir ccd
    push "dhcp-option DNS 192.168.5x.x"
    push "dhcp-option DNS 192.168.5x.x"
    client-to-client
    push "route 192.168.5x.0 255.255.255.0"
    keepalive 10 120
    comp-lzo
    persist-key
    persist-tun
    log openvpn.log
    log-append openvpn.log
    verb 3

    ps : quand je met route la commande route 192.168.5x.0 255.255.255.0 dans mon fichier configuration je n'arrive plus du tout a pinguer les interface reseaux de mon serveur une fois connecter pareille quand je met les iroute 192.168.5x.0 255.255.255.0 dans le client-config-dir ccd .

    merci de votre aide

  4. admin said

    Bonjour,

    Je vois déjà deux : push « route 192.168.5x.0 255.255.255.0″
    Cela peut (peut-être ?) poser souci.

    Autre vérification le serveur doit pouvoir forwarder (transmettre) le requêtes, donc prévoir les règles correspondantes dans son firewall... des adresses en 192.168.30.0/24

    Voir aussi les firewall de ces IP si elles ne bloquent pas le ping (ou tout) des adresses autres que 192.168.5x.0 (comme les 192.168.30.0/24) ?

    Voici les premières pistes selon moi...
    😉

  5. S4kur4 said

    /etc/sysctl.conf
    # Uncomment the next line to enable packet forwarding for IPv4
    net.ipv4.ip_forward=1
    # Uncomment the next line to enable packet forwarding for IPv6
    net.ipv6.conf.all.forwarding=1

    le forwading est activé
    le serveur sur lequel j'héberge le serveur openvpn n'as pas de firewall ( iptable non activer )

    et non les adresses des autres ip ne bloques pas les ping sinon pour vous ma configuration est t'elle bonne ?

    merci

  6. S4kur4 said

    problème résolut 🙂 mon soucis étais que les machine de mon réseaux secondaire ne connaissait pas les routes pour accéder a 192.168.30. j'ai rajouter les route sur les machine ou je voulais acceder et tous fonctionne correctement . merci a bientot

  7. admin said

    Je rajouterais un aparté sur le fait de bien observer les routes !
    😉

    A bientôt

  8. niha said

    svp si je veux installer openvpn dans un serveur existe dans le même réseau que le client peut il marche ça??

  9. admin said

    Bonjour,
    Oui bien entendu mais attention aux adresses IP qui se chevauchent, aux routes, firewall, et...

Some HTML is OK

(required)

(required, but never shared)

or, reply to this post via trackback.

Time limit is exhausted. Please reload CAPTCHA.


/* */
Creative Commons License
Cette création par Laurent Besson est mise à disposition selon les termes de la licence Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 2.0 France.