Vous êtes sur la page 1sur 29

Tuto ralis par Elise NGOMA

Master I SSIM

Introduction

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Nous possdons un petit rseau local chez nous, composer de quelques ordinateurs et voulons toujours avoir accs { lun dentre eux mme tant { lautre bout de la plante. Pour cela, nous pouvons mettre en place un rseau priv virtuel (VPN). VPN est un acronyme utilis pour dsigner le tunnel chiffr entre deux quipements travers un rseau non scuris, typiquement Internet. Le mot "VPN" peut tre utilis la fois pour scuriser des liaisons site site ou client serveur. Pour tre considr comme scuris, un VPN doit respecter les concepts de scurit suivants: Confidentialit: Les donnes ne peuvent pas tre vues dans un format lisible. Algorithmes typiques de chiffrement symtrique: DES, 3DES, AES, Blowfish Intgrit: Les donnes ne peuvent pas tre modifies. Algorithmes typiques de hachage: sha1, md5 Authentification: Les passerelles VPN s'assurent de l'identit de l'autre. Algorithmes typiques: RSA, DH
2

Introduction

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Il existe plusieurs solutions VPN dont OpenVpn que nous utiliserons tout au long de notre tutoriel.

Prsentation

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Cr en 2002, OpenVpn est un outil open source utilis pour construire des VPN client serveur tout comme site site avec le protocole SSL/TLS ou avec des clefs partages et non sur le protocole IPSEC comme la plupart des VPN. Son rle est de "tunneliser", de manire scurise, des donnes sur un seul port TCP/UDP travers un rseau non sr comme Internet et ainsi tablir des VPN. les avantages des VPN en SSL sont nombreux, notamment la possibilit dutiliser le client de connexion mme en cas de NAT. Le fait dutiliser un protocole standard et matris (SSL) permet dutiliser de nombreuses possibilits dinterfaage avec dautres composants logiciels. Il existe deux modes pour mettre en place un VPN OpenVpn: Routed et Brigded. Le mode Bridged ou pont, permet de faire un pont thernet entre deux rseaux. Les interfaces VPN et LAN sont alors lies entre elles en une seule entit et permettent de communiquer entre les sous rseaux concerns.

Prsentation

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Le mode Routed plus performant et plus simple que le mode Bridged peut tre utilis dune part pour connecter des clients openvpn nomades un serveur openvpn et dautre part pour connecter deux rseaux distants. - Mise en place de notre Architecture Pour raliser notre TP, nous aurons besoin pour linstant de deux machines tournants chacune sous une distribution Linux Ubuntu 11. Sur les deux machines nous installerons openvpn, lun jouera le rle de serveur et lautre de client. Pour simuler notre rseau internet, nous ajouterons une carte rseau eth1 chaque machine qui seront dans le mme rseau.

Installation

Voici le schma dun vpn client nomade { site:

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Distribution des adresses ip: Le client: @ip prive (eth0): 192.168.3.1 @ip public ou internet (eth1): 172.28.0.2 Ct serveur: @ip prive (eth0): 192.168.2.1 @ip public ou internet (eth1): 172.28.0.1

Installation

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Linstallation dOpenVpn sur le serveur et le client se fait { laide de la cmde suivante:

Il faut sassurer bien sur que vous tes en root et si ce nest pas le cas, faudra prcder vos cmdes de sudo. OpenVpn sinstalle ainsi que tous les pr-requis ncessaire.

Fichier de configuration

Toutes les manipulations se font dans le fichier 2.0 dOpenVpn et on y accde on tapant la cmde suivante:

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Une fois dans ce fichier en fait un ls nous avons tout une liste de fichier. Maintenant nous allons diter le fichier de configuration vars grce la cmde: A lintrieur, il faudra modifier les paramtres suivants: export KEY_COUNTRY="SN" export KEY_PROVINCE="DK" export KEY_CITY="Dakar" export KEY_ORG="ISI" export KEY_EMAIL="elge@isi.sn" On enregistre puis on tape la cmde suivante: NOTE: If you run ./clean-all, I will be doing a rm -rf on /usr/share/doc/openvpn/examples/easyrsa/2.0/keys Ensuite on tape cette cmde:
8

Gnration des cls


SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Le certificat CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Maintenant nous allons gnrer les certificats CA, les certificats et cls pour le serveur ainsi que pour le client et pour terminer les paramtres Diffie Hellman. - Gnration du certificat et des cls de lautorit de certification

Country Name (2 letter code) [SN]: State or Province Name (full name) [DK]: Locality Name (eg, city) [DAKAR]: Organization Name (eg, company) [ISI]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname): Name []: Email Address [elge@isi.sn]: Au niveau du Organizational, Common Name et Name, on peut ou ne pas spcifier de nom
9

Gnration des cls


- Gnration du certificat et des clefs pour le Serveur

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Server est le nom que portera toutes les cls du serveur Openvpn, il faudra renseigner ce nom au niveau du Common Name Country Name (2 letter code) [SN]: State or Province Name (full name) [DK]: Locality Name (eg, city) [DAKAR]: Organization Name (eg, company) [ISI]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) [server]: server Name []: server Email Address [elge@isi.sn]: Pas besoin de renseigner les deux champs suivants: A challenge password []: An optional company name []: Et ne pas oublier de rpondre y aux questions poses Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]:y
10

Gnration des cls


Gnration des certificats et des clefs pour le Client

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Client1 est le nom que portera le certificat et cl du client, il faudra remettre ce mme nom au niveau du Common Name Country Name (2 letter code) [SN]: State or Province Name (full name) [DK]: Locality Name (eg, city) [DAKAR]: Organization Name (eg, company) [ISI]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) [client1]: client1 Name []: client1 Email Address [elge@isi.sn]: Pas besoin de renseigner les deux champs suivants: A challenge password []: An optional company name []: Et ne pas oublier de rpondre y aux questions poses Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]:y
11

Gnration des cls


- Gnration des paramtres Deffie Hellman

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des clefs - Les cls CA - Les clefs du serveur - Les clefs du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Au final dans le rpertoire keys qui a t cre automatiquement se retrouve toutes les clef et certificats que nous avons prcdemment gnrs. Tableau des clefs
Nom ca.crt ca.key dh1024.pe m client1.crt client1.key server.crt server.key Utilise par : Serveur + clients Serveur seul Serveur seul Client1 seul Client1 seul Serveur seul Serveur seul Description Certificat racine du serveur Clef du certificat racine du serveur Paramtres Diffie Hellman Certificat du client Clef du certificat du client Certificat du serveur Clef du certificat du serveur Secret NON OUI NON NON OUI NON OUI

12

Configuration sur le serveur


SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Maintenant que les clefs et certificats ont t gnrs, il faut : Pour le serveur : Rentrer dans le rpertoire /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/ puis copier server.key, server.crt, ca.crt, ca.key et dh1024.pem que nous allons coller dans le rpertoire /etc/openvpn Maintenant il faut configurer le fichier server.conf. Mais avant il faut se rendre dans le rpertoire sample-config-files qui se trouve dans /usr/share/doc/openvpn/examples Dcompresser larchive server.conf.gz { laide de la cmde gunzip Copier server.conf dans /etc/openvpn On se place dans /etc/openvpn puis on dite le fichier server.conf

13

Configuration sur le serveur


A prsent il faut d commenter et/ou modifier certaine ligne prcdes dun point virgule (;) Local 172.28.0.1 [IP publique du serveur vpn sur lequel se connecteront les clients] Port 1194 [port sur lequel les clients se connecteront, 1194 est le port par dfaut dopenvpn] Proto udp [le protocole utilis] dev tun [ici nous utilisons le mode routed] ca ca.crt cert server.crt key server.key dh dh1024.pem server 10.8.0.0 255.255.255.0 [@ip rseau du vpn] ifconfig-pool-persist ipp.txt keepalive 10 120 comp-lzo user nobody group nogroup persist-key persist-tun status openvpn-status.log verb 5
14

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Configuration sur le client


SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Sur le client: Il faudra coller les fichiers ca.crt, ca.key, client1.crt, client1.key qui se trouve sur le serveur dans le rpertoire /etc/openvpn du client. Copier ensuite le fichier client.conf qui se trouve dans /usr/share/doc/openvpn/examples/sample-config-files et le coller dans /etc/openvpn On se place dans /etc/openvpn puis on dite le fichier client.conf

15

Configuration sur le client


A prsent il faut d commenter et/ou modifier certaine ligne prcdes dun point virgule (;) client [spcifie que cette machine est cliente] dev tun proto udp remote 172.28.0.1 1194 [@ip publique plus le port du serveur vpn] resolv-retry infinite nobind user nobody group nogroup persist-key persist-tun ca ca.crt cert client1.crt key client1.key ns-cert-type server comp-lzo verb 5

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

16

Dmarrage et test de connectivit


Maintenant que les configurations sont termines des deux cts, nous allons lancer notre serveur et client et ensuite faire des ping pour voir si les machines rpondent.
-

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Sur le serveur:

On peut remarquer que le server bien lanc


-

Sur le client

Ici aussi on peut remarquer que le client est bien lanc

17

Dmarrage et test de connectivit


Aprs un ifconfig sur le serveur, nous pouvons remarquer la prsence dune nouvelle interface TUN

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Avec comme @ip 10.8.0.1, cest l@ip du serveur. On observe la mme chose sur le client

Avec comme @ip 10.8.0.10


18

VPN site site


Dans cette seconde de notre TP, nous allons raliser un vpn site { site. Comme vous lavez compris, nous allons relier deux rseaux diffrents et distants grce openvpn et les faire communiquer. Schma dun vpn site { site

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Principe: Dans ce cas de figure nous aurons besoin de deux serveurs openvpn dont lun jouera le rle du client. Sur le site A, le serveur openvpn jouera le rle du client et de passerelle pour permettre aux diffrents htes de son rseau de se rendre vers le rseau du site B. Sur le site B, le serveur openvpn jouera donc le rle du serveur et de passerelle pour permettre aux diffrents htes de son rseau de se rendre vers le rseau du site A.
19

VPN site site


SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Allocation des @ip sur chaque rseau - Site A: @ip du rseau: 192.168.3.0 Mask: 255.255.255.0 Passerelle: 192.168.3.1
-

Site B: @ip du rseau: 192.168.2.0 Mask: 255.255.255.0 Passerelle: 192.168.2.1

Nous avons dj nos deux serveurs openvpn prconfigurs, maintenant passons la pratique.

1- Vrifier ltat du routage On tape cette commande cat /proc/sys/net/ipv4/ip_forward Ou sysctl net.ipv4.ip_forward Si la cmde renvoie 0 le routage est dsactiv, si la cmde renvoie 1 il est activ.
20

VPN site site


SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

2- Activer le routage On tape cette commande echo 1 > /proc/sys/net/ipv4/ip_forward ou sysctl -w net.ipv4.ip_forward=1 3- Rendre le routage permanent Pour viter de refaire la mme opration chaque redmarrage de la machine, il faut rendre le routage IP permanent en ditant le fichier /etc/sysctl.conf Et ajouter cette ligne si elle n'existe pas sinon la d commenter

Toutes ces oprations sont raliser sur les deux machines ubuntu

21

VPN site site


SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Maintenant nous allons inclure des machines du ct du serveur donc dans le rseau du site B.
Ouvrir le fichier server.conf et renseigner ces deux lignes
# indiquer au client que le rseau 192.168.2.0/24 peut-tre accessible travers le VPN #

push "route 192.168.2.0 255.255.255.0"


# Pour que les clients soient capables de s'atteindre travers le VPN d commenter cette directive #

client-to-client

22

VPN site site


Inclusion des machines du ct client openvpn Toujours dans le fichier server.conf modifions ou d commentons ces diffrentes lignes client-config-dir ccd
# route contrle le routage dans le noyau vers le serveur OpenVpn (via l'interface tun) #

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

route 192.168.3.0 255.255.255.0


#ceci permet au serveur OpenVpn d'indiquer aux autres clients que le rseau du client1 existe, ajouter aprs la directive client-to-client #

push "route 192.168.3.0 255.255.255.0"

Toutes les oprations se passe sur le serveur du site B. Donc aprs avoir enregistr le fichier, nous allons crer le rpertoire ccd dans /etc/openvpn

23

VPN site site


SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Une fois le rpertoire cre, nous crons un fichier client1.conf ce nom est celui que nous avons renseign au niveau du Common Name lors de la gnration des certificats et clefs du client1. Dans client1.conf nous allons insrer cette ligne: iroute 192.168.3.0 255.255.255.0 Ceci permet d'indiquer au serveur OpenVPN que le sous-rseau 192.168.3.0/24 peut tre rout vers le client1. On enregistre puis on relance le serveur et client openvpn { laide de la commande: service openvpn restart

24

Rcapitulatif des diffrents fichiers dans /etc/openvpn

VPN site site


Sur le serveur

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Sur le client

25

Test de connectivit

Configuration des machines derrire les deux serveurs openvpn Dans les deux sites, jai choisit dutiliser des machines qui tournent sous xp. Sur le site A PCA (Windows xp): @ip: 192.168.3.5 Mask: 255.255.255.0 Passerelle: 192.168.3.1
-

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Sur le site B PCB (Windows xp): @ip: 192.168.2.5 Mask: 255.255.255.0 Passerelle: 192.168.2.1
-

26

PCA ping PCB

Test de connectivit

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

La connexion du site A vers le site B marche bien comme nous pouvons le voir.

27

PCB ping PCA

Test de connectivit

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Du site B vers A marche aussi. Au final nous avons pu relier nos deux rseaux distincts travers
28

Conclusion

SOMMAIRE Introduction Prsentation Installation Fichiers de configuration Gnration des cls - Les cls CA - Les cls du serveur - Les cls du client Configuration sur le serveur Configuration sur le client Dmarrage et test de connectivit VPN site site - Inclure des machines cot serveur - Inclure des machines cot client Test de connectivit Conclusion

Nous avons pu mettre en uvre les deux types de vpn, client-serveur avec lequel nous avons un client nomade qui peut se connecter un serveur et ainsi communiquer avec ce dernier. Site site dans lequel nous relions deux rseaux distingues et les faire communiquer. Nous avons utilis le mode routed par ce quil est plus simple { mettre en uvre par rapport au mode bridged o il faut crer des ponts rseaux.

Au cas o vous aurez quelques difficults faire communiquer vos rseaux, essayez dautoriser les paquets TUN passer travers le pare-feu { laide de cette commande: iptables -A FORWARD -i tun+ -j ACCEPT
A faire sur les deux serveurs openvpn.

29