Installation OpenVPN 2.01 sur une Debian Etch
But de ce document
Ce document me sert de mémo pour mettre en place le système OpenVPN sur un serveur Debian ETCH et sur des clients Windows ou Linux Debian.
OpenVPN est un système permettant de relier des postes distants sur un réseau informatique en passant par Internet mais de manière sécurisée (Tunnel VPN).
Pré-requis
Avoir installé une Debian stable de base :
ATTENTION : Il est fortement conseillé de savoir ce qu’est un certificat et une clé de cryptage pour la configuration d’OpenSSL. Il est conseillé également de connaître le fonctionnement des tables de routage pour la configuration d’OpenVPN.
Installation d’OpenVPN 2.01 sur une Debian Etch
Paquet à installer :
# aptitude install openvpn
Remarques :
# aptitude install openssl
Création du certificat de l’autorité de certification (CA)
La partie la plus compliquée et la plus fastidieuse dans la mise en place d’un serveur OpenVPN concerne la génération des clés et des certificats. OpenVPN est livré avec plusieurs scripts permettant de générer plus facilement les clés et les certificats pour OpenSSL. Ces scripts sont enregistrés dans le dossier « easy-rsa » :
# cd /usr/share/doc/openvpn/examples/easy-rsa/
Avant d’utiliser les scripts, il faut éditer le fichier « vars » pour initialiser les variables par défaut indiquées à la fin de ce fichier. Par exemple :
Une fois le fichier modifié, la ligne suivante permet d’initialiser les variables pour les scripts :
# . ./vars
Le script suivant, permet de créer ou de réinitialiser le sous-dossier « keys » :
# ./clean-all
Le script suivant permet de créer dans « keys » le certificat principal du serveur « ca.crt » et la clé correspondante « ca.key » :
# ./build-ca
Ce script doit afficher à l’écran quelque chose qui ressemble à ça :
# ./build-ca
Generating a 1024 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) [France]:
Locality Name (eg, city) [Dijon]:
Organization Name (eg, company) [MonEntreprise]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:MonServeur
Email Address [[contact@monentreprise.fr->mailto:contact@monentreprise.fr]]:
ATTENTION : Pour les questions, la plupart des champs sont renseignés par défaut sauf le « Common Name » qu’il faut renseigner manuellement. Exemple « MonServeur ».
Création du certificat et de la clé pour le serveur OpenVPN
Le script suivant permet de créer dans « keys » le certificat « LeServeurVPN.crt » et la clé « LeServeurVPN.key » pour le serveur VPN nommé par exemple « LeServeurVPN » :
# ./build-key-server LeServeurVPN
Ce script doit afficher à l’écran quelque chose qui ressemble à ça :
# ./build-key-server MonServeur
Generating a 1024 bit RSA private key
......................................................................
..+++++
...++++++
writing new private key to 'MonServeur.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) [France]:
Locality Name (eg, city) [Dijon]:
Organization Name (eg, company) [MonEntreprise]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:LeServeurVPN
Email Address [votremail@votredomaine.com]:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /usr/share/doc/openvpn/examples/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'FR'
stateOrProvinceName :PRINTABLE:'France'
localityName :PRINTABLE:'Dijon'
organizationName :PRINTABLE:'MonEntreprise'
commonName :PRINTABLE:'MonServeurVPN'
emailAddress :IA5STRING:'contact@monentreprise.fr'
Certificate is to be certified until Dec 7 13:41:02 2015 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
ATTENTION : Pour les questions, tous les champs sont renseignés par défaut sauf le « Common Name » qu’il faut renseigner manuellement. Exemple « MonServeurVPN ». Personnellement, je n’ai pas renseigné le champ « password »
Création du certificat et de la clé pour un client OpenVPN
Le script suivant permet de créer dans « keys » le certificat « Client01.crt » et la clé « Client01.key » pour le client VPN nommé par exemple « Client01 » :
# cd /usr/share/doc/openvpn/examples/easy-rsa/
# . ./vars
# ./build-key Client01
Ce script doit afficher à l’écran quelque chose qui ressemble à ça :
pgdebian:/usr/share/doc/openvpn/examples/easy-rsa# ./build-key Client01
Generating a 1024 bit RSA private key
..++++++
....................++++++
writing new private key to 'Client01.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) [France]:
Locality Name (eg, city) [Dijon]:
Organization Name (eg, company) [MonEntreprise]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:Client01
Email Address [contact@monentreprise.fr]:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /usr/share/doc/openvpn/examples/easy-sa/openssl.cnf
DEBUG[load_index]: unique_subject = "yes"
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'FR'
stateOrProvinceName :PRINTABLE:'France'
localityName :PRINTABLE:'Dijon'
organizationName :PRINTABLE:'MonEntreprise'
commonName :PRINTABLE:'Client01'
emailAddress :IA5STRING:['contact@monentreprise.fr->mailto:'contact@monentreprise.fr]'
Certificate is to be certified until Mar 4 09:19:09 2016 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
ATTENTION : Il faudra renouveler cette opération pour chaque client. Pour les questions, tous les champs sont renseignés par défaut sauf le « Common Name » qu’il faut renseigner manuellement. Exemple « Client01 ». Chaque « Common Name » de chaque client doit être différent. Personnellement, je n’ai pas renseigné le champ « password »
Création du paramètre Diffie Hellman
Le script suivant permet de créer dans « keys » le fichier « dh1024.pem » :
# ./build-dh
Ce script doit afficher à l’écran quelque chose qui ressemble à ça :
# ./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
....................................................................
....................................................................
..............+......................................+..............
.++*++*
Résumé des certificats et clés créés précédemment dans « keys »
Emplacement du fichier | Type | Nom | Secret |
---|---|---|---|
Serveur de certification (CA) OpenSSL | Certificat | ca.crt | Non |
Serveur de certification (CA) OpenSSL | Clé | ca.key | Oui |
Serveur OpenVPN | Certificat | LeServeurVPN.crt | Non |
Serveur OpenVPN | Clé | LeServeurVPN.key | Oui |
paramètre Diffie Hellman | dh1024.pem | Non | |
Client OpenVPN N°1 | Certificat | Client01.crt | Non |
Client OpenVPN N°1 | Clé | Client01.key | Oui |
Mise en place des certificats et des clés
concernant le serveur OpenVPN, le plus simple est de copier les 4 fichiers dans le dossier « /etc/openvpn » :
# cp ./keys/ca.crt /etc/openvpn/
# cp ./keys/LeServeurVPN.crt /etc/openvpn/
# cp ./keys/LeServeurVPN.key /etc/openvpn/
# cp ./keys/dh1024.pem /etc/openvpn/
Pour le client, il faudra copier ses deux fichiers une fois que celui-ci sera installé.
Création d’un utilisateur avec des droits limités pour OpenVPN
Pour limiter les risques d’attaques sur OpenVPN, il est important que le processus d’OpenVPN fonctionne sur un utilisateur n’ayant aucun droit sur le système.
Souvent, l’utilisateur « nobody » est utilisé par défaut, mais il est encore plus sécurisant de faire tourner chaque processus avec un utilisateur différent. Donc, pour le processus OpenVPN, nous allons créer l’utilisateur « openvpn » :
# groupadd openvpn
# useradd -d /dev/null -g openvpn -s /bin/false openvpn
Configuration d’OpenVPN
Par défaut OpenVPN est fourni avec plusieurs fichiers d’exemples enregistrés dans le dossier :
Pour configurer le serveur, je suis parti du fichier d’exemple « server.conf.gz », qu’il faut donc décompresser et mettre en place dans « /etc/openvpn » :
# cd /usr/share/doc/openvpn/examples/sample-config-files/
# gunzip server.conf.gz
# cp server.conf /etc/openvpn/
Il suffit ensuite d’adapter ce fichier en fonction des besoins. Voici par exemple le fichier de configuration que j’utilise :
;Port en écoute utilisé pour la connexion VPN
;port 1194
;Protocole utilisé (Le protocole udp est plus sécurisé que le tcp)
proto udp
;Type d'interface réseau virtuelle créée
dev tun
;Nom des fichiers servant à l'authentification des clients via OpenSSL
ca ca.crt
cert LeServeurVPN.crt
key LeServeurVPN.key
dh dh1024.pem
;Adresse du réseau virtuel (Le serveur aura l'adresse 10.8.0.1)
server 10.8.0.0 255.255.255.0
;Cette ligne ajoute sur le client la route du réseau du serveur
push "route 192.168.0.0 255.255.255.0"
;Ces lignes indiquent aux clients l'adresse des serveur DNS et WINS
push "dhcp-option DNS 192.168.0.2"
push "dhcp-option DOMAIN MonDomaine.com"
push "dhcp-option WINS 192.168.0.3"
# Cette ligne permet aux clients de voire les autres clients
;client-to-client
keepalive 10 120
;Cette ligne active la compression
comp-lzo
;Ces lignes indiquent un user et un group particulier pour le processus
user openvpn
group openvpn
;Ces lignes permettent de rendre persistante la connexion
persist-key
persist-tun
status openvpn-status.log
;Cette ligne permet d'indiquer le niveau de log souhaité (de 1 à 9)
verb 1
Démarrage du serveur OpenVPN
La commande suivante permet de démarrer ou redémarrer le serveur :
# /etc/init.d/openvpn restart
Ne pas hésiter à regarder dans les logs que tout c’est bien passé :
# tail -100 /var/log/syslog
Bien vérifier également que le processus tourne sous l’utilisateur « openvpn »
# ps aux | grep openvpn
Pour finir, si tout c’est bien passé l’interface « tun0 » doit apparaître dans la configuration du réseau :
# ifconfig
...
tun0 Lien encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet adr:10.8.0.1 P-t-P:10.8.0.2 Masque:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:100
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Et il doit être possible de la pinguer :
# ping 10.8.0.1
Installation du Client Windows
Avec OpenVPN, la notion de client et de serveur n’existe pas étant donné que c’est le même logiciel qui peut faire office de client ou de serveur. Dans mon cas, le serveur est installé sur une Debian Sarge et les clients sont sous Debian Testing ou Windows 2000/XP.
Pour Windows, il existe une version d’OpenVPN avec une installation simplifiée téléchargeable à cette adresse :
Lors de l’installation de ce programme, la carte réseau virtuelle « TAP-Win32 Adapter V8 » est installée. Une fois le programme installé, il est lancé automatiquement et à chaque démarrage de Windows. Un icône pour le configurer est disponible à coté de l’heure.
Ensuite, il est possible de franciser OpenVPN en remplaçant le binaire enregistré dans « C :\Program Files\OpenVPN\bin\openvpn-gui.exe » par le binaire téléchargeable à l’adresse ci-dessous (Attention : Il faut le renommer après l’avoir téléchargé) :
Configuration du client Windows
La première chose à faire est de copier dans le dossier « C :\Program Files\OpenVPN\config » les fichiers servant à l’authentification du client via OpenSSL créés dans les chapitres précédents :
Ensuite, il faut modifier le fichier de configuration pour l’adapter à votre cas. Pour éditer le fichier, il est possible de faire un clic droit sur l’icône « OpenVPN » situé à gauche de l’heure et de choisir l’option « Éditer la configuration ».
Voici un exemple de fichier que j’utilise pour mes clients :
client
dev tun
proto udp
remote 192.0.1.2 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert Client01.crt
key Client01.key
comp-lzo
verb 1
Normalement, si vous utilisiez la même configuration que moi, vous n’aurez qu’à changer :
Lancement du client Windows
Pour lancer la connexion, il suffit de faire un clic droit sur l’icône « OpenVPN » situé à gauche de l’heure et de choisir l’option « Connecter ».
Si tout se passe bien, une fenêtre affichant les logs doit s’afficher et une fois la connexion effectuée, le réseau est opérationnel.
En cas de problème, et pour trouver l’origine de celui-ci il faut augmenter le niveau des logs en changeant le paramètre « verb » du fichier de configuration :
Une fois la connexion établie, il doit être possible de pinguer le serveur soit sur son adresse virtuelle (ex : 10.8.0.1 dans notre cas) soit sur son adresse réelle (ex : 192.168.0.1)
Remarque : Depuis le serveur, pour connaître les clients connecté, il faut consulter le fichier :
Installation Client Linux
L’installation du client est identique à celle du serveur, car c’est le même logiciel qui fait office de serveur ou de client en fonction de sa configuration :
# apt-get install openvpn liblzo1
Le fichier de configuration et la gestion des clés est identique à celle du client Windows.
Permettre aux clients VPN d’accéder à l’ensemble du réseau distants
Avec la configuration précédente, les clients peuvent accéder au serveur OpenVPN, mais ils ne peuvent pas accéder au reste du réseau sur lequel est connecté le serveur OpenVPN.
Pour permettre aux clients d’accéder au reste du réseau, il faut effectuer deux opérations :
1 - Autoriser le serveur Linux à transmettre les paquets au reste du réseau
Pour cela, il faut activer le forwarding avec la commande suivante :
# echo 1 > /proc/sys/net/ipv4/ip_forward
La commande suivante, permet de vérifier que le forwarding est bien activé :
# cat /proc/sys/net/ipv4/ip_forward
2 - Indiquer aux autres postes du réseau la route vers le serveur OpenVPN
Si le serveur VPN est sur l’adresse 192.168.0.1, il faut ajouter une route manuellement sur chaque poste du réseau avec la commande suivante sous Windows :
C:\>route add 10.8.0.0 mask 255.255.255.0 192.168.0.1
La commande suivante, permet d’avoir la liste des routes :
C:\>route print
La commande suivante permet de supprimer une route :
C:\>route delete 10.8.0.0 mask 255.255.255.0 192.168.0.1
Pour ajouter une route sous Linux, il faut utiliser la commande suivante :
# route add -net 10.8.0.0 netmask 255.255.255.0 gw 192.168.0.1
La commande suivante, permet d’avoir la liste des routes sous Linux :
# route
La commande suivante permet de supprimer une route sous Linux :
# route delete -net 10.8.0.0 netmask 255.255.255.0 gw 192.168.0.1
Remarque : Pour éviter de devoir ajouter manuellement sur chaque poste du réseau une route, si c’est possible, il faut ajouter une route statique au niveau de la passerelle ou du routeur du réseau.
Accéder aux autres postes connectés derrière un client VPN
Avec la configuration précédente, le serveur OpenVPN peux accéder à l’adresse virtuelle du client, mais il ne peux pas accéder à l’adresse réelle et encore moins aux autres postes connectés derrière le client VPN.
Pour permettre au serveur d’accéder aux autres postes connectés derrière un client VPN, il faut ajouter des routes dans la configuration d’OpenVPN :
Dans le fichier de configuration du serveur OpenVPN, il faut ajouter ces lignes :
client-config-dir ccd
route 192.168.0.0 255.255.255.0
La première ligne permet d’indiquer le sous-dossier de /etc/openvpn qui contiendra la configuration spécifique de chaque client (Remarque : Il faut penser à créer ce dossier manuellement).
La deuxième ligne permet d’ajouter la configuration du réseau d’un client.
Ensuite, il faut créer un fichier dans le dossier « /etc/openvpn/ccd » ayant le même nom que le certificat du client (ex : Client01) contrant la ligne suivante :
iroute 192.168.0.0 255.255.255.0
Cette ligne permet d’indiquer le client connecté à ce réseau.
Pour finir, il faut redémarrer le serveur et le client pour que les routes soient correctement prises en compte.
A partir de ce moment, le serveur doit pouvoir accéder à tous les postes connectés au client VPN.
Révocation d’un certificat client
Si le certificat d’un client à été volé au si ce dernier n’est plus nécessaire, il est important de le révoquer pour qu’il ne puisse plus être utilisé.
Pour révoquer un certificat, il faut disposer de celui-ci. Normalement, le dossier « /usr/share/doc/openvpn/examples/easy-rsa/keys » contient tous les certificats créés.
La commande suivante permet de révoquer un certificat :
# cd /usr/share/doc/openvpn/examples/easy-rsa/
# . ./vars
# ./revoke-crt Client01.crt
Using configuration from /usr/share/doc/openvpn/examples/easy-sa/openssl.cnf
DEBUG[load_index]: unique_subject = "yes"
Revoking Certificate 16.
Data Base Updated
Cette commande permet également de révoquer un certificat et vérifie ensuite que cette révocation est effective :
# ./revoke-full Client01
Using configuration from /usr/share/doc/openvpn/examples/easy-
sa/openssl.cnf
DEBUG[load_index]: unique_subject = "yes"
Revoking Certificate 17.
Data Base Updated
Using configuration from /usr/share/doc/openvpn/examples/easy-sa/openssl.cnf
DEBUG[load_index]: unique_subject = "yes"
Client01.crt: /
=FR/ST=France/O=Mondomaine/CN=Client01/emailAddress=tony@domaine.com
error 23 at 0 depth lookup:certificate revoked
Remarque : Avec ce script, il ne faut pas mettre l’extension « .crt » du certificat.
A chaque révocation de certificat son numéro est ajouté dans le fichier « keys/crl.pem ». Ce fichier contient donc la liste des certificats révoqués. Après chaque révocation de certificat, il faut donc copier ce fichier dans « /etc/openvpn »
La commande suivante, permet de consulter la liste des certificats révoqués :
# openssl crl -in keys/crl.pem -text
Il faut également ajouter cette ligne dans « etc/openvpn/server.conf » du serveur OpenVPN :
crl-verify crl.pem
Pour information, le fichier « keys/index.txt » contient la liste des certificats créés et révoqués
Pour finir et pour information, lors de la création d’un client, les fichiers suivants sont créés ou modifiés dans « keys/crl.pem » :
Fichier | Description |
---|---|
01.pem | Les deux premiers caractères de fichier correspond au numéro d’ordre sous forme hexadécimal du certificat (01=Le premier certificat créé, 0A=Le dixième créé) |
serial | Contient le numéro du prochain certificat à créer |
LaCle.crt | Certificat = Clé public du client signée par le certificat du serveur.Le certificat permet de s’authentifier sur le serveur. |
LaCle.csr | Fichier temporaire utilisé pour la création du certificat. Ce fichier permet de générer des certificats (c’est une demande de certification ne nécessitant pas la clé privée) |
LaCle.key | Clé privée du client. La clé permet de déchiffrer les données en provenance du serveur |
index.txt | Contient la liste des clés créées et révoquées |
crl.pem | Contient la liste des certificats révoqués. |
Historique des modifications
Version | Date | Commentaire |
---|---|---|
0.1 | 09/12/05 | Création par Tony GALMICHE |
0.2 | 23/03/06 | Mise à jour pour publication |
0.3 | 28/08/06 | Ajout « Accéder aux autres postes connectés derrière un client VPN » |
0.4 | 31/01/07 | Ajout « Révocation d’un certificat client » |
0.5 | 18/12/08 | Installation sur un nouveau serveur sous Debian ETCH |
Commentaires
Installation OpenVPN 2.01 sur une Debian Sarge
bonjour,
Merci pour ce site complet !
en fait j’ai un serveur debian et un client XP ; en listant les connexions réseaux sur mon client, je vois la carte virtuelle mais elle apparait toujours comme déconnctée, je me suis dit que probablement c’est le tap-win32 qui pose un probleme, je l’ai réinstallé plusiers fois mais j’ai toujours le même sousci
en plus sur les logs de mon client j’ai "TLS Error : TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Mon May 26 11:29:22 2008 TLS Error : TLS handshake failed"
Pouvez vous m’aidez svp :(
Probleme de deconnection avec client openvpn sur WindowsXP !!!
Alors moi je dis rien à redire !! Sur ce tuto parfait sauf peut-être un petit problème de mon coté ..
Il en faut toujours ... Alors j’ai monté un serveur vpn sur une machine ubuntu 7.10 tout marche bien je ping le serveur. Ensuite j’ai une machine virtuelle sous winXp ( avec vmware server ). Et la une fois openvpn client installé et que je tente une connections ça marche. Mais, mais mais au bout de même pas 2 minutes le client ce déconnecte. Pourquoi je ne sais pas, c’est pour cela que je viens vers vous, pour essayer de trouver une solution.
Voila le log du coté du client :
Wed Mar 19 10:27:16 2008 OpenVPN 2.0.5 Win32-MinGW [SSL] [LZO] built on Nov 2 2005
Wed Mar 19 10:27:16 2008 IMPORTANT : OpenVPN’s default port number is now 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earlier used 5000 as the default port.
Wed Mar 19 10:27:16 2008 WARNING : No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
Wed Mar 19 10:27:16 2008 LZO compression initialized
Wed Mar 19 10:27:16 2008 Attempting to establish TCP connection with 10.8.0.1:1194
Wed Mar 19 10:27:16 2008 TCP connection established with 10.8.0.1:1194
Wed Mar 19 10:27:16 2008 TCPv4_CLIENT link local : [undef]
Wed Mar 19 10:27:16 2008 TCPv4_CLIENT link remote : 10.8.0.1:1194
Wed Mar 19 10:27:17 2008 [LeServeurVPN] Peer Connection Initiated with 10.8.0.1:1194
Wed Mar 19 10:27:18 2008 WARNING : potential conflict between —remote address [10.8.0.1] and —ifconfig address pair [10.8.0.6, 10.8.0.5] — this is a warning only that is triggered when local/remote addresses exist within the same /24 subnet as —ifconfig endpoints. (silence this warning with —ifconfig-nowarn)
Wed Mar 19 10:27:18 2008 TAP-WIN32 device [Connexion au réseau local 5] opened : \\.\Global\3991C3BF-5706-4127-A2F3-36E9DF508B03.tap
Wed Mar 19 10:27:18 2008 Notified TAP-Win32 driver to set a DHCP IP/netmask of 10.8.0.6/255.255.255.252 on interface 3991C3BF-5706-4127-A2F3-36E9DF508B03 [DHCP-serv : 10.8.0.5, lease-time : 31536000]
Wed Mar 19 10:27:18 2008 Successful ARP Flush on interface [2] 3991C3BF-5706-4127-A2F3-36E9DF508B03
Wed Mar 19 10:27:21 2008 Initialization Sequence Completed
Wed Mar 19 10:27:42 2008 Connection reset, restarting [-1]
Wed Mar 19 10:27:42 2008 SIGUSR1[soft,connection-reset] received, process restarting
Wed Mar 19 10:27:47 2008 IMPORTANT : OpenVPN’s default port number is now 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earlier used 5000 as the default port.
Wed Mar 19 10:27:47 2008 WARNING : No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
Wed Mar 19 10:27:47 2008 Re-using SSL/TLS context
Wed Mar 19 10:27:47 2008 LZO compression initialized
Wed Mar 19 10:27:47 2008 Attempting to establish TCP connection with 10.8.0.1:1194
Wed Mar 19 10:28:08 2008 SIGTERM[hard,init_instance] received, process exiting
Voila le client.ovpn (config) et celui donné plus haut.
Mon serveur est en 10.8.0.1 et l’obtention d’une adresse pour mon client est 10.8.0.6
donc voila je reste dans le coin si quelqu’un pouvait m’aiguiller ou s’il y a besoin de donner des informations supplémentaires.
Installation OpenVPN 2.01 sur une Debian Sarge
Bravo ! Très bonne doc !
Je voudrais cependant préciser que la copie du fichier "ca.key" (Clef privée de l’AC) dans le répertoire de configuration d’openvpn ne sert à rien et est même déconseillée.
Seul le fichier ca.crt (partie publique) est utile pour vérifier la signature des certificats clients.
Le ca.key est utile uniquement pour signer les certificats clients lors de leur génération.
C’est un peu dangereux de le laisser trainer ;)
Merci encore pour cette super doc
Installation OpenVPN 2.01 sur une Debian Sarge
bonjour, super ton tuto. j’ai un probleme avec openvpn ...
quand je fais restart openvpn ça me met failed
Interface réseau virtuelle tun0 unique ?
merci pour l’info...dsl du retard pour les remerciement....mais je pense que c’était une bonne question à poser...
Installation OpenVPN 2.01 sur une Debian Sarge
Bonjour excellent tuto.
Chez moi tout fonctionne excepte que de mon poste client je ne vois pas mes imprimantes cups
Installation OpenVPN 2.01 sur une Debian Sarge
Pareil pour moi impossible de voir les postes derrière le client OpenVPN.
Les routes étaient bien indiquées de chaque côté.
J’avais configuré les options suivantes au niveau du serveur VPN :
server.conf (2 lignes) :
client-config-dir ccd
route id_reseau_du_client_vpn 255.255.255.0
dans le répertoire ccd, j’avais crée un fichier portant le nom du CN du client contenant la ligne suivante :
iroute d_reseau_du_client_vpn 255.255.255.0
Les routes, côté client VPN, étaient directement précisées sur la passerelle de son réseau. Je pouvais "pinguer" (depuis mon poste derrière le serveur vpn) la passerelle et le client sur leur adresse ip privé mais pas les autres postes du réseau.
Ces mêmes postes (ceux que je ne pouvais pas atteindre) pouvaient "pinguer" mon poste (sur lequel j’avais saisi directement les routes pour atteindre le reseau du client vpn). Ils prenaient donc bien en compte les routes statiques de la passerelle réseau.
Sur un poste derrière le client vpn (que je ne pouvais pas voir) , j’ai ajouté une route statique précisant sur quelle passerelle (l’adresse ip du client vpn) passer pour router les paquets à destination de mon réseau : route add -net id_reseau_derrière_serveur_vpn netmask 255.255.255.0 gw ip_privé_client_vpn. Et là boom, je pingue la machine.
Mais bon je voulais que les postes derrière le client vpn utilisent la passerelle de leur réseau pour éviter de faire la manip (ajout des routes stat) sur tous les postes.
J’ai donc saisi cette commande sur le client vpn :
iptables -t nat -A POSTROUTING -s 10.7.0.1 -d id_resau_du_client_vpn/24 -j SNAT —to ip_privé_du_client_vpn
Et là ça fonctionne parfaitement.
Bah voilà... sinon ce mémo reste toujours le meilleur que j’ai trouvé sur le net de par sa simplicité de mise en oeuvre...
Installation OpenVPN 2.01 sur une Debian Sarge
Bonjour,
a la ligne remote cela correspond au serveur distant.
Installation OpenVPN 2.01 sur une Debian Sarge
Bonjour,
très bon article mais comment faire pour que cette commande :
route add 10.8.0.0 mask 255.255.255.0 192.168.0.1
Sur les clients windows ne soit pas effacée au prochain redémarrage de la machine ?
Installation OpenVPN 2.01 sur une Debian Sarge
Merci bien pour ce tutoriel i lm’a beaucoup servi sauf que je comprend pas un truc.
Ceci : remote 192.0.1.2 1194
dans votre fichier de configuration client correspond à l’ip de quoi ?? du serveur local ou distant ?
Car si c’est local je vois pas l’utiliter d’openvpn, avec ssh on fait pareille non ?
Maintenant je voudrais me connecter à un serveur distant où j’ai installer et configurer openvpn, quelle ip je dois indiquer ? l’ip virtuelle ou l’ip routable internet ?