Vous êtes sur la page 1sur 12

INSTALLATION D'OPENVPN:

http://openmaniak.com/fr/openvpn_tutorial.php
Suivez le tutorial d'installation d'OpenVPN. ARCHITECTURE CLIENT/SERVER: Parmi les deux boitiers OpenVPN, il est ncessaire d'en dclarer un en tant que serveur et l'autre en tant que client. Dans certains scenarios, chaque boitier peut tre dclar comme serveur ou client, mais dans d'autres, il est obligatoire de choisir spcifiquement un boitier comme serveur et l'autre comme client, regardons quand. Avant d'tablir le VPN SSL, le client essaie d'abord de joindre le serveur sur un port spcifique, le serveur n'ayant pas besoin d'atteindre le client. Prenons un exemple o vous tes dans un environnement professionnel et voulez tablir un VPN avec un quipement directement connect Internet, disons un quipement votre domicile. Dans ce cas usuel, le client peut atteindre le serveur mais pas le contraire, Ceci est du au fait que le client est situ dans un rseau local et se connecte Internet via un proxy et un Pare-feu qui vont changer son adresse IP source par leur propre adresse IP ou une autre membre d'un pool. Bien-sr, quand le tunnel est cr, le trafic en son intrieur est bidirectionnel.

FICHIER DE CONFIGURATION: Crez un fichier o vous stockez votre configuration d'OpenVPN. Dans notre exemple, nous allons appeler ce fichier config.txt and le sauver dans le dossier /home/user/ ou "C:\Program Files\OpenVPN\config\" selon s'il s'agit d'une machine Linux/Unix ou Microsoft. Les paramtres de configuration sont prsents dans les paragraphes suivants.

DESIGNATION CLIENT/SERVEUR : SERVEUR # ADRESSE IP DU SERVEUR # L'adresse IP WAN du client n'est pas # requise CLIENT # ADRESSE IP DU SERVEUR remote 100.0.0.1 #

MODE DE TUNNEL: Vous pouvez choisir entre un tunnel IP (pilote TUN) ou Ethernet (pilote TAP). Le tunneling IP est galement appel mode de routage tandis que le tunneling Ethernet est aussi appel mode pont (bridging). Prfrez le mode tunnel IP (par dfaut) moins que vous n'ayez besoin de faire passer du trafic ethernet comme du NetBios dans le tunnel. PORT DU TUNNEL: Le port source et destination de tunneling est par dfaut le port UDP 1194. Il est possible qu'il soit ncessaire de le changer pour des raisons d'ouverture de port sur le pare-feu autrement vous pouvez le garder telle quelle. Preferez les ports UDP. L'utilisation de TCP peut mener la dgradation des performances. Comme la majorit des applications utilisent TCP, si un mode de tunnel TCP est galement choisi, vous allez crer un tunnel TCP sur TCP (TCP over TCP). Ce mode de tunnel n'est pas recommand parce qu'en cas de retransmissions de paquets l'intrieur du tunnel, des recalcules vont intervenir dans les deux tunnels, ce qui va mener de basses performances comme un temps de rponse lev. Prfrez le protocole UDP pour tunneliser vos applications parce que UDP ne fournit pas de mecanisme de vrification d'erreur comme le fait TCP. Lisez cet article pour obtenir plus de dtails propos du problme des tunnels TCP sur TCP. SERVEUR ET CLIENT # TUNNEL TCP OU UDP # TCP tunnel proto tcp # Tunnel UDP est recommand proto udp # Utilisez UDP ou TCP mais pas les deux # # PORT TCP OU UDP port 1194

PARAMETRAGES DU FIREWALL: Vous devez vrifier que l'adresse IP de votre client OpenVPN peut atteindre l'adresse IP de votre serveur ainsi que le port TCP/UDP. Voici un exemple d'une rgle de scurit qui peut tre implment sur le pare-feu du schma cidessous.

Grce la simplicit des configurations d'OpenVPN, les problmes pour tablir une connexion proviennent trs souvent de restrictions d'adresses IP ou de ports sur le chemin entre le client et le serveur. TUNNEL ETHERNET/IP: Vous pouvez choisir de construire soit des VPNs Ethernet, soit des VPNs IP avec l'aide respectivement des pilotes TAP et TUN. TAP/TUN sont disponibles sur toutes les plates-formes et sont dj prsent avec les Linux noyau 2.4 et suprieur. Prfrez TUN (par dfaut) moins que vous avez besoin de faire passer du trafic Ethernet comme du NetBios l'intrieur du tunnel. Pour vrifier que les pilotes TUN/TAP sont chargs: #lsmod | grep tun tun 12672 1 Notez que le pilote "tun" est aussi le pilote TAP. Si vous n'avez aucune rponse, vous pouvez le module du noyau de la faon suivante: #modprobe tun SERVEUR et CLIENT # TUNNEL ETHERNET OU IP # "dev tun" will create a routed IP tunnel dev tun # "dev tap" will create an Ethernet IP tunnel dev tap # use "dev tun" or "dev tap" but not both

ARCHITECTURE OPENVPN de SECURITE: Transparent tunnel: OpenVPN tunnelise juste les donnes sans authentification, confidentialit ou intgrit. En d'autres termes, il n'y a aucune vrification de scurit et les donnes peuvent tre vues quand elles transitent dans le tunnel. SERVEUR et CLIENT # Client AND Server configs # Pas d'intgrit (algorithme # de hachage) auth none # Pas de chiffrement (algorithme de chiffrement) cipher none

Clefs partages: Une combinaison secrte et permanente est partages entre les deux passerelles VPN. Crez d'abord les clefs partages avec le tutorial de cration de clefs partages. SERVEUR et CLIENT # CLEFS PARTAGEES # Systme LINUX static /home/user/openvpn/key.txt # Systme Windows static "C:\\Program Files\\OpenVPN\\config\\key.txt" #openvpn /home/teddybear/openvpn/config.txt >openvpn "C:\Program Files\OpenVPN\config\config.txt"

SSL/TLS: - Client ou serveur SSL/TLS: SERVEUR # SERVEUR SSL/TLS tls-server - Certificats et clefs publiques: CLIENT # CLIENT SSL/TLS tls-client

Chaque quipement doit avoir ses propres clefs prive et publique. La clef publique tant incluse dans un certificat. Le certificat de l'autorit de certification (CA) doit aussi tre dtenu par chaque quipement OpenVPN. Voir le Tutorial sur la PKI pour comprendre l'infrastructure cls publiques (Public Key Infrastructure) et savoir comment crer des clefs publiques et des certificats. CLIENT SERVEUR # CERTIFICATS ET CLEF PRIVEE # Certificat de l'autorit (clef publique du CA) ca ca.key # Certificat du server (clef publique du serveur) cert server.crt # Clef prive du serveur key server.key - Paramtres Diffie-Hellmann (DH): # CERTIFICATS AND CLEF PRIVEE # Certificat de l'autorit (clef publique du CA) ca ca.key # Certificat du client (clef publique du serveur) cert client.crt # Clef prive du client key client.key

Une fois que les boitiers OpenVPN sont surs de l'identit de l'autre (authenticit), DH peut tre utilis pour crer un clef secrte partage pour les algorithmes de fonction de hachage (intgrit) et de chiffrement (confidentialit). En combinant un clef DH prive avec la clef DH public de l'autre boitier OpenVPN, il est possible de calculer une clef partage secrte que seul les deux machines OpenVPN connaissent. Voir le Tutorial SSL et PKI pour savoir comment crer les paramtres DH. SERVEUR # Paramtres Diffie-Hellman dh dh1024.pem CLIENT

# Aucun paramtre DH sur le client # Cette clef DH partage peut tre compare la clef partage OpenVPN. Ces clefs partage seront utilises par les algorithmes de chiffrement symtrique et fonctions de hachage comme montr dans les deux prochains paragraphes.

ALGORITHME DE CHIFFREMENT SERVEUR et CLIENT # ALGORITHME DE CHIFFREMENT cipher AES-256-CBC - La confidentialit est assure par des algorithmes de chiffrement comme 3DES ou AES pour empcher la lecture des donnes. L'algorithme OpenVPN par dfaut est le Blowfish (signifiant poisson-lune en franais). Pour vrifier les algorithmes disponibles: #openvpn --show-ciphers DES-CBC 64 bit default key (fixed) IDEA-CBC 128 bit default key (fixed) RC2-CBC 128 bit default key (variable) DES-EDE-CBC 128 bit default key (fixed) DES-EDE3-CBC 192 bit default key (fixed) DESX-CBC 192 bit default key (fixed) BF-CBC 128 bit default key (variable) RC2-40-CBC 40 bit default key (variable) CAST5-CBC 128 bit default key (variable) RC5-CBC 128 bit default key (variable) RC2-64-CBC 64 bit default key (variable) AES-128-CBC 128 bit default key (fixed) AES-192-CBC 192 bit default key (fixed) AES-256-CBC 256 bit default key (fixed) CBC pour Cipher Block Chaining (Chiffrement par bloc de donnes) est un mode oprationel de cryptographie utilis pour chiffrer les donnes avec un algorithme de chiffrement par bloc comme CBC utilise de petits segments de donnes, la place de processer des blocs entiers en une fois, d'autres modes d'operation cryptographique sont EBF, OFB, CFB. CBC est recommand.

ALGORITHME DE HACHAGE - L'intgrit utilise des fonctions de hachage pour protger l'altration des donnes. HMAC est souvent utilis en addition de SHA1 et MD5. Les fonctions de hachage par dfaut de OpenVPN sont HMAC-SHA1. Pour vrifier les algorithmes disponibles: #openvpn --show-digests MD2 128 bit digest size MD5 128 bit digest size RSA-MD2 128 bit digest size RSA-MD5 128 bit digest size SHA 160 bit digest size RSA-SHA 160 bit digest size SHA1 160 bit digest size RSA-SHA1 160 bit digest size DSA-SHA 160 bit digest size DSA-SHA1-old 160 bit digest size MDC2 128 bit digest size RSA-MDC2 128 bit digest size DSA-SHA1 160 bit digest size RSA-SHA1-2 160 bit digest size DSA 160 bit digest size RIPEMD160 160 bit digest size RSA-RIPEMD160 160 bit digest size MD4 128 bit digest size RSA-MD4 128 bit digest size SERVEUR et CLIENT # ALGORITHME DE HACHAGE auth MD5 "openvpn --show-tls" affiche le chiffrement et le code d'authentification du message (MAC) utilis durant la ngociation SSL/TLS. Ils ne doivent pas tre confondus avec le chiffrement et le MAC utilis pour scuriser le tunnel.

ADRESSES IP: Choississez les adresses IP que vous voulez utiliser l'intrieur du tunnel. Adresses IP statiques: En mode rout, deux adresses IP (locale et distante) l'intrieur d'un masque de sous-rseau de 30 bits doivent tre choisi. En mode pont (bridged), une adresse pour le boitier local OpenVPN et un masque de sous-rseau incluant l'adresse IP du serveur sont choisis. SERVEUR # ADDRESSAGE IP # Exemple mode IP: # Serveur IP: 10.8.0.1 ; Client IP: 10.8.0.2 ifconfig 10.8.0.1 10.8.0.2 # Exemple mode pont # Serveur IP: 10.8.0.1 ifconfig 10.8.0.1 255.255.255.0 # Utilisez le mode IP ou bridge mais # pas les deux # Le client et le serveur doivent utiliser # le mme mode de tunnel Adresses IP dynamiques: CLIENT # ADDRESSAGE IP # IP Tunnel # Serveur IP: 10.8.0.1 ; Client IP: 10.8.0.2 ifconfig 10.8.0.2 10.8.0.1 # Exemple mode pont # Client IP: 10.8.0.2 ifconfig 10.8.0.2 255.255.255.0 # # Utilisez le mode IP ou bridge mais # pas les deux # Le client et le serveur doivent utiliser # le mme mode de tunnel

Dans ce cas, le serveur possde une adresse IP statique et fournir des adresses IP aux clients comme un serveur DHCP. SERVEUR # PARAMETRES DHCP # Etendue DHCP # Le serveur s'attribue la premire # adresse de l'tendue server 10.8.0.0 255.255.255.0 CLIENT # LE CLIENT ACCEPTE LES OPTIONS # DU SERVEUR # Le client devrait accepter les options # pousses par le serveur pull

PARAMETRES OPTIONELS: OpenVPN offre un trs large nombre de paramtres. Rfrez-vous la page man OpenVPN pour de l'assistance.

PARAMETRES DE JOURNALISATION: La verbosit du journal (log) est configur de 0 (minimal) 15 (complet). Dans une utilisation normale, les niveaux verbeux "2" et "4" vont dj fournir assez de journaux. # Niveau de verbosit. # 0 -- Erreurs fatales seulement. # 1 -- Trs silencieux mais affiche des erreurs non-fatales. # 3 -- Sortie moyenne, idal pour des oprations moyennes. # 9 -- verbeux, bon pour un dpannage. SERVEUR and CLIENT # VERBOSITE DU JOURNAL # Paramtrage de la verbosit du journal, 0=min 15=max verb 3

UTILISATEUR OPENVPN: Pour des raisons de scurit, c'est toujours mieux de faire tourner un logiciel sans les privilges root. Vous pouvez rduire les privilges du dmon OpenVPN aprs initialisation pour oprer en tant qu'utilisateur "nobody". Une autre chose intressante pour la scurit est de limiter le droit pour OpenVPN accder des fichiers aprs initialisation avec "chroot". Ces deux paramtres de scurit sont disponibles sous des systmes comme Linux ou Unix mais pas sous Microsoft Windows. Une autre raison de prfrer des outils open source comme les systmes oprationels Linux ... SERVEUR and CLIENT # SECURITE OPENVPN - Linux seulement # Utilisateur OpenVPN user nobody # Aprs initialisation, OpenVPN peut # seulement accder un dossier # Le dossier peut tre vide # Limitation du processus OpenVPN chroot /etc/openvpn/

10

LANCEMENT D'OPENVPN: Utilisez la syntaxe suivante pour lancer OpenVPN. #openvpn chemin-du-fichier-de-configuration Ci-dessous deux exemples avec Linux et Windows. Le fichier de config est "config.txt": #openvpn /home/teddybear/openvpn/config.txt >openvpn "C:\Program Files\OpenVPN\config\config.txt" VERIFICATION DES JOURNAUX: Le journal devrait se terminer avec la ligne suivante: Initialization Sequence Completed Ceci indique que le tunnel OpenVPN a t cr avec succs.

TESTS DE CONNECTIVITES: Ping est un utilitaire commun pour vrifier les connectivits IP. Les passerelles VPN devraient pinger l'adresse IP tunnel de l'autre. Par exemple, dans notre scenario, nous pingons l'adresse IP tunnel du client depuis le serveur: ping 10.8.0.2

11

VERIFICATION DU PROCESSUS OPENVPN: A venir bientt ... Here are some OpenVPN default values: PARAMETRE: port source et dest: Mode de tunnel: Chiffrement symtrique: Fonctions de hachage: Compression: MTU du tunnel: mode verbeux: Haut de la page VALEUR: UDP 1194 Tunnel IP (mode tun) Blowfish - CBC (128 bits) HMAC - SHA1 (160 bits) NON 1500 bytes 0

12