tutoriel openvpn.pdf

Upload: sara-belayachi

Post on 14-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 Tutoriel OpenVPN.pdf

    1/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.

    1

    http://openmaniak.com/fr/openvpn_tutorial.phphttp://openmaniak.com/fr/openvpn_install.phphttp://openmaniak.com/fr/openvpn_install.phphttp://openmaniak.com/fr/openvpn_tutorial.phphttp://openmaniak.com/fr/openvpn_install.php
  • 7/30/2019 Tutoriel OpenVPN.pdf

    2/12

    DESIGNATION CLIENT/SERVEUR :

    SERVEUR CLIENT

    # ADRESSE IP DU SERVEUR

    # L'adresse IP WAN du client

    n'est pas# requise

    # 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 recommandproto udp

    # Utilisez UDP ou TCP mais pas

    les deux

    #

    # PORT TCP OU UDP

    port 1194

    2

    http://sites.inka.de/~W1011/devel/tcp-tcp.htmlhttp://sites.inka.de/~W1011/devel/tcp-tcp.html
  • 7/30/2019 Tutoriel OpenVPN.pdf

    3/12

    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 ci-

    dessous.

    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

    3

  • 7/30/2019 Tutoriel OpenVPN.pdf

    4/12

    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 letutorial 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"

    4

    http://openmaniak.com/fr/openvpn.php#vpnhttp://openmaniak.com/fr/openvpn_static.phphttp://openmaniak.com/fr/openvpn_static.phphttp://openmaniak.com/fr/openvpn.php#vpnhttp://openmaniak.com/fr/openvpn_static.php
  • 7/30/2019 Tutoriel OpenVPN.pdf

    5/12

    SSL/TLS:

    - Client ou serveur SSL/TLS:

    SERVEUR CLIENT

    # SERVEUR SSL/TLS

    tls-server

    # CLIENT SSL/TLS

    tls-client- Certificats et clefs publiques:

    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.

    SERVEUR CLIENT

    # 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

    # 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

    - Paramtres Diffie-Hellmann (DH):

    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 CLIENT

    # Paramtres Diffie-Hellman

    dh dh1024.pem

    # 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.

    5

    http://openmaniak.com/fr/openvpn_pki.phphttp://openmaniak.com/fr/openvpn_pki.phphttp://openmaniak.com/fr/openvpn_pki.phphttp://openmaniak.com/fr/openvpn_pki.php
  • 7/30/2019 Tutoriel OpenVPN.pdf

    6/12

    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 pourempcher 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 commeCBC 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.

    6

  • 7/30/2019 Tutoriel OpenVPN.pdf

    7/12

    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 sizeMDC2 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.

    7

  • 7/30/2019 Tutoriel OpenVPN.pdf

    8/12

    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 30bits 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 CLIENT

    # 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

    # 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

    Adresses IP dynamiques:

    Dans ce cas, le serveur possde une adresse IP statique et fournir des adresses IP aux clients comme

    un serveur DHCP.

    SERVEUR CLIENT

    # PARAMETRES DHCP

    # Etendue DHCP

    # Le serveur s'attribue la

    premire

    # adresse de l'tendue

    server 10.8.0.0 255.255.255.0

    # LE CLIENT ACCEPTE LES

    OPTIONS

    # DU SERVEUR

    # Le client devrait accepter les

    options

    # pousses par le serveur

    pull

    8

  • 7/30/2019 Tutoriel OpenVPN.pdf

    9/12

    PARAMETRES OPTIONELS:

    OpenVPN offre un trs large nombre de paramtres.

    Rfrez-vous lapage 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

    9

    http://openvpn.net/man.htmlhttp://openvpn.net/man.html
  • 7/30/2019 Tutoriel OpenVPN.pdf

    10/12

    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 desfichiers 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

  • 7/30/2019 Tutoriel OpenVPN.pdf

    11/12

    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

  • 7/30/2019 Tutoriel OpenVPN.pdf

    12/12

    VERIFICATION DU PROCESSUS OPENVPN:

    A venir bientt ...

    Here are some OpenVPN default values:

    PARAMETRE: VALEUR:

    port source et dest: UDP 1194

    Mode de tunnel: Tunnel IP (mode tun)

    Chiffrement symtrique: Blowfish - CBC (128 bits)

    Fonctions de hachage: HMAC - SHA1 (160 bits)

    Compression: NON

    MTU du tunnel: 1500 bytes

    mode verbeux: 0

    Haut de la page

    12

    http://openmaniak.com/fr/openvpn_tutorial.phphttp://openmaniak.com/fr/openvpn_tutorial.php