Vous êtes sur la page 1sur 14

[[openvpn -> http://doc.ubuntu-fr.

org/openvpn]]
Table des matires
A - Installation......................................................................................................................................2 A.1 - OpenVPN................................................................................................................................2 A.2 - Apache, Mysql, PHP...............................................................................................................2 A.3 - Webmin...................................................................................................................................2 B - Configuration des VPN..................................................................................................................2 B.1 - Certificats de scurit..............................................................................................................2 B.1.1 - Principe...........................................................................................................................2 B.1.2 - Gnrer le certificat et la cl de lAutorit de Certification matre.................................3 B.1.3 - Gnrer un certificat et une cl pour le serveur..............................................................4 B.1.4 - Gnrer les certificats et les cls pour 3 clients..............................................................4 B.2 - Gnrer des paramtres Diffie-Hellman().............................................................................5 C - Les fichiers cls..............................................................................................................................5 C.1 - Cration des fichiers de configuration pour le serveur et les clients......................................5 C.1.1 - Obtenir les fichiers dexemple de configuration.............................................................5 C.1.2 - Configuration du serveur................................................................................................6 C.1.3 - Configuration du client...................................................................................................6 D - Dmarrage automatique dOpenVPN au lancement du systme...................................................7 E - Dmarrage du VPN et tests de la connectivit...............................................................................7 E.1 - Dmarrage du serveur.............................................................................................................7 E.2 - Dmarrage du client................................................................................................................8 E.3 - Test..........................................................................................................................................8 E.4 - En cas d'utilisation de Firestarter............................................................................................8 F - Administration du serveur VPN......................................................................................................9 F.1 - Par telnet..................................................................................................................................9 F.2 - Utilisation de Webmin.............................................................................................................9 F.3 - Informations complmentaires................................................................................................9 F.3.1 - Inclure des machines ct serveur avec un VPN rout....................................................9 F.3.2 - Inclure des machines ct serveur avec un VPN bridg................................................10 F.3.3 - Inclure des machines avec un VPN rout......................................................................10 F.3.4 - Inclure des machines ct client avec un VPN bridg...................................................12 F.3.5 - Attribuer des options DHCP aux clients........................................................................12 G - Crer un VPN avec une adresse IP dynamique............................................................................12 H - Voir aussi......................................................................................................................................12 H.1 - Liens externes.......................................................................................................................12 H.2 - Notes.....................................................................................................................................13 I - Connecter un client Openvpn Windows un serveur Openvpn Linux..........................................14

administration, rseau, scurit, vpn OpenVPN est un logiciel libre permettant de crer un rseau priv virtuel (VPN).

Tutoriel_Ubuntu_Openvpn

1 / 14

A-

Installation

A.1 - OpenVPN
installez les paquets openvpn openssh-server openssl. Vous devrez au pralable activer le dpt Universe. Maintenant que le serveur OpenSSH est install, il est possible de prendre la main sur le serveur depuis nimporte o du rseau et mme dInternet (sil y a une redirection de faite au niveau du routeur) via ladresse IP du serveur sur le port 22. Pour ceux qui voudraient installer openvpn en le compilant c'est ici

A.2 - Apache, Mysql, PHP


Linstallation dApache, MySQL et PHP n'est pas indispensable mais facilitera l'administration des VPN grce une interface web. Installez les paquets apache2 mysql-server-5.0 libapache2-mod-php5 php5 php5-common php5-mysql.

A.3 - Webmin
Webmin fournit un module pour faciliter le paramtrage d'OpenVPN.

B-

Configuration des VPN

B.1 - Certificats de scurit


B.1.1 - Principe
La premire tape dans la construction dune configuration OpenVPN 2.0 est dtablir une ICP (Infrastructure de Cls Publiques) (PKI en anglais). Une ICP fonctionne grce : Une cl publique pour le serveur et une cl prive pour chacun des clients Un certificat de lAutorit de Certification matre et des cls qui sont utilises pour identifier (signer, identifier) chaque certificat serveur et client. OpenVPN supporte une authentification bidirectionnelle base sur les certificats, ce qui signifie que le client doit authentifier le certificat du serveur et le serveur doit authentifier le certificat du client avant quune confiance mutuelle puisse tre tablie. Ce modle de scurit a un nombre de possibilits intressante pour une utilisation en VPN : Le serveur na besoin que de ses propres certificats/cls, il na pas besoin de connatre chacune des cls des clients qui peuvent sy connecter. Le serveur nacceptera les clients que lorsque le certificat sera sign par lAutorit de Certification matre (qui laura gnr avant). Et comme le serveur peut vrifier cette signature sans avoir besoin daccder la cl prive de lAutorit de Certification elleTutoriel_Ubuntu_Openvpn 2 / 14

mme, il est possible pour la cl de lAutorit de Certification (cl la plus sensible dans toute lInfrastructure de Cls Publiques) de rsider sur une toute autre machine, mme une sans connexion rseau. Si une cl prive est compromise, il est possible de la dsactiver en ajoutant son certificat une Liste de Rvocation de Certificat (LRC ou CRL en anglais). La LRC permet aux certificats compromis dtre rejets slectivement sans ncessiter une entire refonte de lInfrastructure de Cl Publiques. Nous allons gnrer successivement un certificat/une cl de lAutorit de Certification matre, un certificat/une cl pour le serveur et des certificats/des cls pour 3 clients diffrents.

B.1.2 - Gnrer le certificat et la cl de lAutorit de Certification matre


Pour la gestion de lICP, nous utiliserons un jeu de scripts livrs avec OpenVPN. Il faut tout dabord ouvrir un terminal et effectuer une copie dans son dossier /home des scripts de gnration de cls :
cp /usr/share/doc/openvpn/examples/easy-rsa ~/openvpn/ -R

L'ensemble des commandes se feront dans le rpertoire dplac :


cd ~/openvpn/2.0/

Maintenant ditez le fichiers vars et initialiser les variables KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, and KEY_EMAIL. Ne laisser surtout pas un seul champ vide. Il faut modifier les dernires lignes sa convenance. Dans notre cas :
export export export export export KEY_COUNTRY=fr KEY_PROVINCE=drome KEY_CITY=valence KEY_ORG=boiteinformatique KEY_EMAIL=xxxxxxxxx@xxx.com

On initialise les variables (le point/espace/point n'est pas une erreur de frappe) :
. ./vars

On nettoie toutes les cls et certificats existants :


./clean-all

Puis, nous crons le certificat et la cle de lAutorit de Certification Maitre (master Certificate Authority (CA) :
./build-ca

La dernire commande (build-ca) va construire le certificat de lAutorit de Certification et la cl en utilisant la commande interactive openssl et sortira :
''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.'' ''-----''

Tutoriel_Ubuntu_Openvpn

3 / 14

''Country Name (2 letter code) [fr]:'' ''State or Province Name (full name) [drome]:'' ''Locality Name (eg, city) [valence]:'' ''Organization Name (eg, company) [boiteinformatique]:'' ''Organizational Unit Name (eg, section) []:'' ''Common Name (eg, your name or your server's hostname) []:'' ''Email Address [xxxxxxxx@xxxx.com]:''

On remarque les champs peuvent tre omis puisque lon a prdfini des valeurs par dfaut (valeurs entre crochets). Si un champs est laiss vide il faut entrer un point '.'. Le seul paramtre devant tre imprativement complt est le Common Name. Le certificat et la cl de lAutorit de Certification sont prsent crs : ca.crt et ca.key dans un dossier keys.

B.1.3 - Gnrer un certificat et une cl pour le serveur


Nous allons gnrer un certificat et une cl prive pour le serveur : Dans cet exemple, le nom de notre serveur est : server
./build-key-server server

Quand le Common Name est demand, il faut entrer server comme le dernier paramtre entr dans la commande prcdente. Puis il faut mettre un mot de passe et un nom dentreprise (facultatif). Suivent deux dernires questions qui requirent des rponses 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 prsent crs : server.crt et server.key.

B.1.4 - Gnrer les certificats et les cls pour 3 clients


Gnrer des certificats et des cls pour les clients est une tape similaire ltape prcdente. 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

Pour protger avec un mot de passe la cl, il faut utiliser ./build-key-pass au lieu de ./build-key. Il faut toujours se rappeler que pour chaque client, le champ Common Name doit tre renseign et unique. Les certificats et les cls des clients sont crs. Cette tape aurait pu se faire sur le client mme, ce qui aurait vit de faire circuler des cles sur des canaux moins sr. Pour cela, il fallait simplement le certificat ca.crt sur la machine cliente qui gnre son certificat et sa cle.

Tutoriel_Ubuntu_Openvpn

4 / 14

B.2 - Gnrer des paramtres Diffie-Hellman()


Les paramtres Diffie Hellman doivent tre gnrs 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 paramtres Diffie Hellman sont copis dans le rpertoire keys : dh1024.pem

C-

Les fichiers cls


Utilit Certificat racine CA Secret NON OUI NON OUI NON OUI NON OUI

Maintenant, nous pouvons trouver les cls et les certificats fraichement gnrs dans le dossier keys. Suit une explication de ce que contiennent les fichiers du dossier keys. Nom de fichier Utile ca.crt ca.key dh{n}.pem server.crt server.key client1.crt client1.key client2.crt client2.key Serveur et tous les clients Serveur seulement Serveur seulement Serveur seulement Client1 seulement Client1 seulement Client2 seulement Client2 seulement

Cl signant la machine seulement Cl racine CA Certificat serveur Cl serveur Certificat Client1 Cl Client1 Certificat Client2 Cl Client2

Paramtres Diffie Hellman NON

Ltape finale dans ce processus de gnration de cls est de copier tous les fichiers sur la machine qui en a besoin, en prenant soin de les copier travers un tunnel sr. Au lieu de gnrer les certificats et les cls clients sur le serveur, le client aurait pu gnrer sa propre cl prive localement, et ensuite, soumettre un CSR (Certificat Signing Request ou Demande de Signature de Certificat) la machine qui signe les cls. A son tour, la machine signant les cls peut procder au CSR et retourner un certificat sign au client. Tout ceci peut se faire sans avoir besoin quun fichier secret .key quitte le disque dur de la machine qui l'a gnr.

C.1 - Cration des fichiers de configuration pour le serveur et les clients


C.1.1 - Obtenir les fichiers dexemple de configuration
Dans le rpertoire /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 Tutoriel_Ubuntu_Openvpn 5 / 14

configuration de votre serveur/vos clients. Si vous devez travailler avec des machines sous Windows l'extension ".conf" doit tre change en ".ovpn" sur le pc Windows.

C.1.2 - 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 excuter la commande ci dessous


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

Il faut donc diter le fichiers /etc/openvpn/server.conf Le fichier dexemple de configuration pour le serveur est un point de dpart pour une configuration serveur dOpenVPN. Il va crer un VPN utilisant une interface rseau virtuel TUN (pour le routage), couter les connections clients sur le port UDP 1194 (port officiel dOpenVPN), et distribuer des adresses virtuelles aux clients se connectant depuis le rseau 10.8.0.0/24. prsent, le fichier de configuration serveur est utilisable. Nanmoins, il est toujours possible de modifier le fichier plus en dtail : En cas dutilisation dEthernet 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 dUDP, il faut mettre proto tcp au lieu de proto udp (si OpenVPN doit couter sur les deux, il faut crer deux instances spares dOpenVPN) Si ladresse IP virtuelle utilise doit tre diffrente de 10.8.0.0/24, il faut modifier la directive server. Ne jamais oublier que la plage dadresse IP virtuelles doit tre inutilise sur les rseaux de chaque ct du VPN. Pour que les clients soient capables de satteindre travers le VPN, il faut dcommenter la directive client-to-client. Par dfaut, les clients ne peuvent atteindre que le serveur. Pour augmenter la scurit, il est possible de dcommenter les directives user nobody et group nobody. Diverses options de cryptage et de scurit peuvent aussi tre modifies. Pour faire fonctionner plusieurs instances dOpenVPN sur la mme machine, chacune utilisant un fichier de configuration diffrent, il faut : Utiliser un port diffrent pour chaque instances (les protocoles UDP et TCP utilisent diffrent espaces de port, donc un processus peut couter le port UDP-1194 et un autre le port TCP1194) Faire attention, lorsque les instances dOpenVPN utilisent le mme dossier, que chacune ncrive pas sur les mmes sorties. C'est--dire quil faut modifier les directives log, logappend, status et ifconfig-pool-persist.

C.1.3 - Configuration du client


Le fichier dexemple de configuration du client client.conf reflte les directives mises dans le fichier server.conf. Comme le fichier de configuration du serveur, ditez dabord les paramtres ca, cert et key pour pointer vers les fichiers gnrs prcdemment. Chaque client doit avoir sa propre paire Tutoriel_Ubuntu_Openvpn 6 / 14

cert/key. Seul le fichier ca est universel travers le VPN (le serveur et tous les clients). Editez ensuite la directive remote pour indiquer ladresse IP/nom dhte et le port du serveur OpenVPN (sil est derrire un routeur, il faut indiquer ladresse publique et le port sur lequel le routeur transfert vers le serveur OpenVPN) Pour terminer, il faut vrifier que la configuration client correspond bien la configuration serveur. Les directives principales vrifier sont :
dev (tun ou tap) proto (udp ou tcp) comp-lzo fragment

D-

Dmarrage automatique dOpenVPN au

lancement du systme
Pour quOpenVPN se lance au dmarrage 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 rpertoire /etc/openvpn Pour les clients, copiez le fichier client.conf dans /etc/openvpn Il faut galement dplacer les cls et certificats dans le dossier /etc/openvpn. Sont concerns : ca.crt : pour le serveur et le client pour le serveur : server.crt server.key dh1024.pem Pour le client : client.crt client.key

E - Dmarrage du VPN et tests de la connectivit


E.1 - Dmarrage du serveur
Premirement, il faut vrifier 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 rgle de transfert pour transfrer le port 1194 UDP depuis le firewall vers le serveur OpenVPN est bien tablie Ensuite, il faut vrifier que linterface TUN/TAP nest pas derrire un pare-feu. Pour simplifier la recherche de problmes, il est prfrable de dmarrer le serveur OpenVPN depuis la ligne de commande plutt que de dmarrer le dmon. Dans un terminal :

Tutoriel_Ubuntu_Openvpn

7 / 14

cd /etc/openvpn sudo openvpn server.conf

Un dmarrage normal ressemble a :


Tue Oct 30 05:22:17 2007 OpenVPN 2.0.9 i486-pc-linux-gnu [SSL] [LZO] [EPOLL] built on May 21 2007 Tue Oct 30 05:22:17 2007 Diffie-Hellman initialized with 1024 bit key Tue Oct 30 05:22:17 2007 TLS-Auth MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ] Tue Oct 30 05:22:17 2007 TUN/TAP device tun0 opened Tue Oct 30 05:22:17 2007 ifconfig tun0 10.8.0.1 pointopoint 10.8.0.2 mtu 1500 Tue Oct 30 05:22:17 2007 route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.2 Tue Oct 30 05:22:17 2007 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:23 ET:0 EL:0 AF:3/1 ] Tue Oct 30 05:22:17 2007 UDPv4 link local (bound): [undef]:1194 Tue Oct 30 05:22:17 2007 UDPv4 link remote: [undef] Tue Oct 30 05:22:17 2007 MULTI: multi_init called, r=256 v=256 Tue Oct 30 05:22:17 2007 IFCONFIG POOL: base=10.8.0.4 size=62 Tue Oct 30 05:22:17 2007 IFCONFIG POOL LIST Tue Oct 30 05:22:17 2007 Initialization Sequence Completed

E.2 - Dmarrage du client


Comme dans la configuration serveur, il est prfrable de dmarrer le client OpenVPN depuis une ligne de commande. Exemple pour le client1 configur plus haut :
cd /etc/openvpn && sudo openvpn client1.conf

Un dmarrage normal dun client doit se terminer comme sur un dmarrage de serveur :
Tue Oct 30 05:22:17 2007 Initialization Sequence Completed

E.3 - Test
Maintenant, essayons de pinguer travers le VPN depuis le client. Dans une configuration de routage (cest--dire quil y a dev tun et non dev tap dans server.conf), on peut essayer :
ping 10.8.0.1

Dans une configuration bridge (c'est--dire quil y a dev tap et non dev tun dans server.conf), on peut essayer de pinguer une machine sur le sous-rseau du serveur. Si le ping a fonctionn, le VPN fonctionne !

E.4 - En cas d'utilisation de Firestarter


La mthode suivante a t teste pour une machine cliente en mode route. A tester pour le mode bridge ou un serveur. Il faut configurer FireStarter pour permettre le passage du VPN au travers du firewall : Tutoriel_Ubuntu_Openvpn 8 / 14

Editez le fichier de configuration de Firestarter :


gksudo gedit /etc/firestarter/user-pre

Rajouter les lignes suivantes :


# Allow traffic on the OpenVPN inteface $IPT -A INPUT -i tun+ -j ACCEPT $IPT -A OUTPUT -o tun+ -j ACCEPT

Redmarrez Firestarter
sudo /etc/firestarter/firewall.sh start

F-

Administration du serveur VPN

F.1 - Par telnet


Il faut au pralable modifier le fichier de configuration du serveur. ditez le fichier /etc/openvpn/server.conf. et ajoutez-y :
management localhost <un numro de port>

Le numro de port est libre pour peu qu'il ne soit pas utilis par un autre service ou application. Une fois la configuration modifie, recharger ou redmarrez OpenVPN. Un telnet localhost <le numro de port> vous confirmera que tout s'est bien pass. La commande help vous affichera la liste de commandes disponibles.

F.2 - Utilisation de Webmin


Si vous avez install cet outil et le module d'administration d'OpenVPN, un sous-menu OpenVPN + CA a fait son apparition dans le menu Serveurs Ainsi, depuis Webmin, il est possible : de crer et/ou grer les Autorits de Certification de crer et/ou grer les VPN de lister les connexions actives

F.3 - Informations complmentaires


F.3.1 - Inclure des machines ct serveur avec un VPN rout
Une fois que le VPN est oprationel entre le client et le serveur, il peut tre utile dtendre le champ du VPN pour que les clients puissent accder de multiples machines sur le rseau du serveur, au lieu de pouvoir accder seulement au serveur lui-mme. Tutoriel_Ubuntu_Openvpn 9 / 14

Pour lexemple, nous admettrons que le sous-rseau ct serveur est en 192.168.1.0/24 et le pool dadresse IP du VPN est 10.8.0.0/24 comme utilis prcdemment. Pour tre sr de la configuration, il faut vrifier le fichier /etc/openvpn/server.conf. La premire chose faire, cest indiquer au client que le rseau 192.168.1.0/24 peut-tre accessible travers le VPN. Ceci peut-tre fait facilement en utilisant la directive ct serveur suivante :
push "route 192.168.1.0 255.255.255.0"

Puis, il faut crer une route sur la passerelle rseau ct serveur pour router le sous-rseau VPN du client vers le serveur OpenVPN (seulement si le serveur OpenVPN nest pas aussi la passerelle). Pour ceci, il faut voir la documentation de votre passerelle et lui dire que tout le trafic venant de lextrieur sur le port attribu au VPN doit tre redirig sur le serveur OpenVPN (adresseIP:port). LIP forwarding et le TUN/TAP forwarding doivent tre activs sur le serveur OpenVPN. Pour le vrifier, il est possible de tester chaque interface ou le systme en gnral : Vrification de linterface TUN :
cat /proc/sys/net/ipv4/conf/tun0/forwarding

Vrification de linterface rseau (exemple pour eth0) :


cat /proc/sys/net/ipv4/conf/eth0/forwarding

Vrification de toutes les interfaces :


cat /proc/sys/net/ipv4/conf/all/forwarding

Vrification de lIP forwarding en gnral :


cat /proc/sys/net/ipv4/ip_forward

F.3.2 - Inclure des machines ct serveur avec un VPN bridg


Dans cette configuration, les machines sont inclues directement sans avoir modifier quoi que ce soit.

F.3.3 - Inclure des machines avec un VPN rout


Dans un scnario typique daccs distant ou mme dutilisation itinrante, la machine cliente se connecte au VPN comme tant seule. Mais supposons que la machine cliente est une passerelle pour un rseau local, et que chaque machine veut tre capable de router travers le VPN. Pour lexemple, nous admettrons que le sous-rseau ct client est en 192.168.4.0/24, et que le client VPN utilise un certificat avec le common name client2. Le but est de crer un VPN qui permettrait chaque machine du rseau client de communiquer avec chaque machine du rseau serveur travers le VPN. Avant de commencer, il y a des prrequis qui doivent tre suivis : Le sous-rseau client (192.168.4.0/24 dans lexemple) doit tre unique. Il peut y avoir des conflits en cas de sous-rseau identique. Le client doit avoir un common name unique dans son certificat et le marqueur duplicatecn (ce marqueur permet davoir des clients avec le mme nom de certificat) ne doit pas tre utilis dans le fichier de configuration du serveur OpenVPN. LIP forwarding et le TUN/TAP forwarding doivent tre activs sur le client OpenVPN qui servira Tutoriel_Ubuntu_Openvpn 10 / 14

de passerelle. Puis, il faut modifier des configurations ct serveur. Si le fichier de configuration du serveur ne fait pas rfrence un dossier de configuration client, il faut en crer un :
mkdir /etc/openvpn/ccd

(il peut tre cr ailleurs mais il faudra penser modifier chaque fois son chemin) Puis, dans le fichier server.conf, il faut ajouter la ligne :
client-config-dir ccd

Dans cette directive, ccd fait rfrence au rpertoire qui vient dtre cr. Quand un nouveau client se connecte au serveur OpenVPN, le processus OpenVPN va vrifier ce dossier pour y trouver un fichier qui porte le mme nom que le common name du certificat du client. Si un fichier correspondant est trouv, il sera lu et utilis pour appliquer des directives supplmentaires au client. Ltape suivant est de crer un fichier nomm client2 dans le dossier /etc/openvpn/ccd dans lequel vous ajouterez (dans cet exemple) :
iroute 192.168.4.0 255.255.255.0

Ceci permet d'indiquer au serveur OpenVPN que le sous-rseau 192.168.4.0/24 peut tre rout vers le client2. Dans le fichier de configuration du serveur /etc/openvpn/server.conf (et non dans ccd/client2), il faut ajouter :
route 192.168.4.0 255.255.255.0

Pourquoi mettre des informations redondantes ? route contrle le routage dans le noyau vers le serveur OpenVPN (via linterface tun) alors que iroute contrle le routage depuis le serveur OpenVPN vers le client distant. Les deux sont ncessaires. Maitenant, la question est : Est-ce que lon veut permettre aux diffrents clients du VPN de dialoguer ensemble. Si cest le cas, il faut ajouter dans le fichier de configuration du serveur /etc/openvpn/server.conf :
client-to-client push "route 192.168.4.0 255.255.255.0"

Ceci permet au serveur OpenVPN d'indiquer aux autres clients que le rseau du client2 existe. La dernire tape, celle qui est souvent oublie, est dajouter une route sur la passerelle du rseau ct serveur qui redirigera le trafic allant vers 192.168.4.0/24 vers le serveur OpenVPN (inutile si la passerelle est le serveur OpenVPN). Pour ceci, il faut voir la documentation de votre passerelle et lui indiquer que tout le trafic allant vers 192.168.4.0/24 doit tre redirig sur le serveur OpenVPN (adresseIP:port). Si cette tape nest pas faite, et quil faille pinguer une machine sur le rseau ct serveur depuis le 192.168.4.8, le ping sortant atteindrait probablement la machine mais ensuite, la machine ne saurait pas comment router la rponse au ping parce quelle na aucune ide de comment elle peut atteindre 192.168.4.0/24. La rgle empirique utiliser est que le routage d'un rseau entier travers un VPN (c'est--dire lorsque le serveur OpenVPN nest pas la passerelle) ncessite que la passerelle route tous les sousrseaux VPN vers le serveur OpenVPN. De manire identique, si la machine client utilisant OpenVPN nest pas la passerelle pour le rseau ct client, il faut que la passerelle ct client route tous les sous-rseaux atteignables travers le Tutoriel_Ubuntu_Openvpn 11 / 14

VPN vers la machine client OpenVPN.

F.3.4 - Inclure des machines ct client avec un VPN bridg


Ceci requiert une installation plus complexe (mais peut-tre moins complexe en pratique qu expliquer en dtails), il faut : Faire un pont entre linterface tap et linterface rseau sur le client Fixer manuellement ladresse IP et le masque de sous-rseau de linterface tap du client Configurer les machines ct client pour quelles utilisent une adresse IP et un masque de sous-rseau pour tre sur le mme sous-rseau que linterface tap du client OpenVPN. Il est possible de faire attribuer une adresse automatiquement par un serveur DHCP du ct serveur

F.3.5 - Attribuer des options DHCP aux clients


Le serveur OpenVPN peut attribuer une adresse automatique aux clients mais aussi toutes les options DHCP tels que les adresses des serveurs DNS ou WINS. Il faut que le client soit configur de telle manire quil soit capable daccepter ce genre dinformation. Exemple : supposons que le client veuille utiliser un serveur DNS et un serveur WINS internes son rseau. Pour ceci, il faut ajouter au fichier de configuration du serveur OpenVPN :
push "dhcp-option DNS 192.168.1.4" push "dhcp-option DNS 192.168.1.5" push "dhcp-option WINS 192.168.1.8"

G - Crer un VPN avec une adresse IP dynamique


Alors que les clients peuvent facilement accder au serveur en ayant une adresse IP dynamique, a devient plus intressant quand le serveur lui-mme a une adresse IP publique dynamique. Bien quOpenVPN fonctionne trs bien avec ce genre de schma, il faut quand mme configurer certaines choses. La premire tape est dobtenir un DNS dynamique qui peut tre configur pour suivre le serveur chaque fois que ladresse IP change. Il y a beaucoup de service de DNS dynamique disponible tel que DynDNS. Il faudra toutefois s'assurer de la mise jour de l'adresse IP correspondant au nom d'hte choisi afin de pouvoir retrouver facilement le serveur VPN.

H-

Voir aussi

H.1 - Liens externes


Le site officiel d'OpenVPN Un HOWTO sur l'installation/configuration d'OpenVPN sous Debian Etch (que vous pouvez Tutoriel_Ubuntu_Openvpn 12 / 14

suivre en lanant en premier lieu un shell super utilisateur avec la commande sudo -s ) Article sur Wikipdia

H.2 - Notes
1. change_de_cls_Diffie-Hellman Pour plus d'informations, n'hsitez pas contacter pezzos. Contributeurs : pezzos, krop (lagage, nettoyage, corrections), zedtux.

openvpn.txt Dernire modification: 2009/03/06 04:06 par 213.95.41.13 Le contenu de ce wiki est sous double licence : CC BY-SA et GNU FDL

Tutoriel_Ubuntu_Openvpn

13 / 14

I - Connecter un client Openvpn Windows


un serveur Openvpn Linux.
http://www.system-linux.eu/index.php?post/2009/01/26/Installation-dun-client-Openvpn-Windows

Tout d'abord tlcharger la version Windows dOpenVPN (la mme que le serveur si possible 2.0.9 ou 2.1_rc15) : tlchargement ici : http://openvpn.net/index.php/downloads.html

Ensuite Il faut copier dans C :/Program Files/OpenVPN/config/ les fichiers client que lon a normalement cr sur notre serveur : ca.crt, client1.crt et client1.key. On utilise ensuite le fichier de configuration dexemple client.ovpn situ dans C :/Program Files/OpenVPN/sample-config/ On le copie dans le rpertoire C :/Program Files/OpenVPN/config/ et on dite les directives comme ceci :
remote 195.43.56.xx 1194 ; adresse IP du serveur OPENVPN ca ca.crt cert client1.crt key client1.key

On dmarre OpenVPN comme ceci : Dmarrer, Programmes, OpenVPN, OpenVPN-GUI. Pour se connecter, on clique droit sur licone dOpenVPN ct de lheure, puis Se connecter. Linstallation a du vous crer une interface TAP-Win32 Voila

Tutoriel_Ubuntu_Openvpn

14 / 14