OpenVPN
est un
outil de création de VPN (Virtual Private Network, ou
réseau virtuel privé) facile à utilisé,
robuste et grandement configurable. Il peut être utilisé
pour relier de manière sécurisée deux ou plus
réseaux privés, en utilisant un tunnel chiffré
à travers Internet (exemples) (citations
d'utilisateurs) (articles).
OpenVPN est un projet
Open Source sous licence
GPL.
Avec OpenVPN, vous
pouvez :
- encapsuler dans
un tunnel n'importe quel sous-réseau IP ou adapateur ethernet
virtuel, dans un unique port TCP ou UDP;
- créer une
infrastructure de tunnels entre n'importe quel système
d'exploitation supporté par OpenVPN. Sont concernés
Linux, Solaris, OpenBSD, FreeBSD, NetBSD, Mac OS X, et Windows 2000/XP;
- utiliser toutes
les fonctionnalités de chiffrement, d'authentification et de
certification de la librairie OpenSSL
afin de protéger le trafic de
votre réseau privé lorsqu'il transite par Internet;
- utiliser
n'importe quel algorithme de chiffrement, taille de clef, ou empreinte HMAC
(pour l'authentification des datagrammes) supporté par la
bibliothèque OpenSSL,
- choisir entre un chiffrement
conventionnel basé
sur une clef statique, ou un
chiffrement par clef publique en se basant sur les
certificats,
- utiliser les clefs
statiques, pré-partagée, ou un échange de clef
dynamiques basé sur TLS.
- utiliser une
compression des flux adaptée en temps-réel, la mise en
forme de trafic pour gérer l'utilisation de la bande-passante du
lien,
- encapsuler les
réseaux dont les extrémités publiques sont
dynamiques comme on peut le rencontrer avec DHCP ou avec des clients
connectés par modem,
- encapsuler le
trafic de réseaux grâce aux firewalls effectuant du suivi
de sessions, sans nécessairement utiliser des règles de
filtrage particulières,
- encapsulé
le trafic de réseaux avec du NAT (translation d'adresse), et
- créer des ponts
ethernets sécurisés utilisant les
périphériques tap.
Qu'est-ce qui
distingue OpenVPN des autres paquetages VPN open-sources ?
- Les principaux
points forts de OpenVPN est de proposer la portabilité
inter-plateforme pour la plupart des environnements informatiques
connus, une excellente stabilité, une installation relativement
aisée qui dans la plupart des cas ne requiert pas un
module noyau spécifique, puis le support des adresses IP
dynamiques et le NAT.
- Pour ce que nous
en savons, OpenVPN est le seul produit VPN open source à
supporter entièrement l'ICP (Infrastructure à Clef
Publique) OpenSSL pour la session d'authentification, le protocole TLS
pour l'échange de clef, l'interface EVP (indépendante du
chiffrement utilisé) fournie par OpenSSL pour chiffrer les
données
encapsulées, l'algorithme
HMAC pour authentifier les données encapsulées, et pour
multiplexer tout ceci au travers d'un unique port UDP.
- OpenVPN utilise
un modèle de sécurité avec une robustesse
équivalente à ce que l'on retrouve dans l'industrie. Ce
modèle est conçu pour protéger à la fois
contre les attaques passives et contre les attaques actives. Le
modèle de sécurité de OpenVPN est similaire
à celui de IPSec mais avec un encombrement bien moindre et sans
nécessiter une modification du noyau ou de la pile IP. OpenVPN
supporte :
- le choix,
pour le chiffrement, de n'importe quel type de chiffrement de OpenSSL,
et la taille de la clef,
- le choix des
modes de chiffrement CBC, CFB, et OFB,
- HMAC pour
l'authentification des datagrammes,
- l'indication
explicite d'un IV (Initialization Vector ou Vecteur d'Initialisation)
pour masquer le modèle dans le texte clair,
- protection
anti-rejeu utilisant un horodateur/numéro-de-séquence
unique pour identifier le datagramme, et,
- le protocole
TLS pour authentifier les sessions en se basant sur des certificats.
En
outre, n'importe laquelle de ces
options peut être désactivée pour améliorer
les performances. Le coût de cette amélioration de
performances est la baisse du niveau de sécurité.
- OpenVPN a
été construit pour être portable. Au moment de
l'écriture, OpenVPN tourne sous Linux, Solaris, OpenBSD,
FreeBSD, NetBSD, Mac OS X, et Windows 2000/XP. Étant
donné que OpenVPN est écrit pour fonctionner comme un
démon en espace utilisateur plutôt que comme un module du
noyau ou comme une modification complexe de la couche IP, les efforts
pour porter le logiciel ont été
considérablement simplifiés.
- OpenVPN est
facile à utiliser. Généralement, un tunnel peut
être créé et configuré avec une seule
commande (et sans nécessiter de fichiers de configuration). La
documentation de OpenVPN contient des examples
illustrant cette
facilité d'utilisation.
- OpenVPN a
été rigoureusement conçu et testé pour
être robuste sur des réseaux incertains. Le principal
effort de conception d'OpenVPN est de faire en sorte qu'il soit aussi
réactif, à la fois lors d'opérations normales et
de reprise sur erreur, que la couche IP sous-jacente qu'il encapsule.
Cela signifie que si la couche IP tombe pendant 5
minutes, quand elle remonte, le trafic du tunnel sera
immédiatement repris même si la panne a
interféré avec l'échange de clef dynamiques qui
était réalisé pendant ce temps.
- OpenVPN a
été conçu avec une conception très
modulaire. Tout ce qui concerne le chiffrement est manipulé par la
bibliothèque OpenSSL,
et toutes les fonctionnalités d'encapsulation IP sont fournies
par les pilotes du
réseau
virtuel TUN/TAP. En tant que
tel, OpenVPN présente l'avantage
qu'il évoluera en coopération avec ces 2 projets.
Par exemple, du
fait que le lien entre OpenVPN et OpenSSL soit réalisé au
travers de TLS et EVP qui sont des couches d'abstractions de plus
haut
niveau, OpenVPN peut
être recompilé avec une nouvelle bibliothèque
OpenSSL et avoir immédiatement accès à n'importe
quelle nouvelle fonctionnalité fournie par cette nouvelle
release. Par exemple, lorsque OpenVPN est compilé avec la
dernière version de OpenSSL (0.9.7), il a automatiquement
accès à de nouveaux chiffrements tels que AES-256
(Advanced Encryption Standard avec une clef de 256 bits) et les
nouvelles capacités du moteur de chiffrement de OpenSSL qui
permettent l'utilisation d'accélérateurs
matériels spécifiques pour optimiser le chiffrement, le
déchiffrement, et les performances de l'authentification.
De la même
manière, le pilote TUN/TAP fait officiellement parti du noyau
Linux (pour le 2.4), donc le lien de OpenVPN avec ce pilote promet de
progresser, tant que le noyau
Linux continuera à évoluer, ou tant que le pilote sera
porté vers de nouvelles plateformes.
- OpenVPN supporte
le multi-threading basé sur pthread pour optimiser la latence de
l'échange de clef dynamiques SSL/TLS. Cela vous permet
l'utilisation de longues clef RSA (tel que 2048 bits ou plus) et de les
renégocier fréquemment avec peu ou pas de baisse de
performance.
- OpenVPN est
rapide. Tournant sous RedHat 7.2 sur un Pentium II 266 MHz, en se
basant sur TLS pour l'authentification de session, le chiffrement Blowfish, SHA1 pour l'authentification des
données du tunnel, et encapsuler une session FTP avec de grands
fichiers précompressés, OpenVPN réalise
l'envoi/réception à un taux de transfert de 1,455 Mo par
seconde du temps
CPU (combiné avec le temps noyau et le temps utilisateur).
- OpenVPN est
flexible. Vous pouvez créer autant de tunnels vers ou depuis la
même machine, vous pouvez appliquer de la mise en forme du trafic
du tunnel pour limiter l'usage de la bande-passante, et vous pouvez
choisir graduellement entre la sécurité et
l'efficacité en controllant exactement combien de rajouts en
relation avec la sécurité sont ajoutés à
chaque datagramme.
- Tandis
qu'OpenVPN fournit de nombreuses options pour controler les
paramètres de sécurité des tunnels VPN, il fournit
également des options pour garantir la sécurité du
serveur lui-même, tel que --chroot pour restreindre la
partie du
système de fichiers auquel le démon OpenVPN a
accès, --user et --group pour abaisser les
privilèges du
démon après initialisation, et --mlock pour
s'assurer que les clef
matérielles et les données du tunnel ne sont jamais
inscrites (paginées) sur le disque à un endroit où
elles pourraient être récupérées plus tard.
- OpenVPN tourne
entièrement en espace utilisateur et coexiste en paix avec les
autres applications qui utilisent les tunnels TUN/TAP.
- OpenVPN est
conçu pour fonctionner correctement avec des scripts et des
applications de plus haut niveau qui établissent de
manière dynamique, à la demande, des connexions VPN. Pour
ces applications, OpenVPN fournit diverses options pour contrôler
les déconnexions par inactivité, automatiser la
traversée de firewalls, et l'adressage IP dynamique.
Pourquoi choisir TLS
comme sous-couche d'authentification de OpenVPN et comme protocole de
négociation de clef ?
TLS est la
dernière évolution de la famille SSL, protocoles qui ont
été développés au départ par
Netscape
pour leur premier navigateur web sécurisé. TLS et ses
prédécesseurs SSL ont vu leur utilisation se
répandre sur le web pendant plusieurs années et ont
été analysés avec intensité pour
détecter leurs faiblesses. Alternativement, cette analyse a
mené à un renforcément conséquent du
protocole tel qu'on le connait aujourd'hui, SSL/TLS est
considéré pour être un des plus résistant et
des plus matures protocoles de sécurité disponible. En
tant que tel, nous croyons que TLS est un excellent choix pour
l'authentification et pour les mécanismes d'échanges de
clef dans un produit de VPN.
Est-ce que OpenVPN
support IPSec ?
Du fait que OpenVPN
tourne en tant que démon en espace utilisateur, il utilise le
protocol SSL/TLS plutôt que IPSec ou IKE.
L'implémentation
de OpenVPN en espace utilisateur lui permet d'être protable
à travers les systèmes d'exploitation et les
architectures processeurs, firewall et les opérations de
translation d'adresses "amicales", le support des adresses dynamiques,
et le support de multiples protocoles comme entre autre les protocole
de
bridging.
Le protocole IPSec est
conçu pour être implémenté comme une
modification de la pile IP en espace noyau, donc chaque système
d'exploitation requiert sa propre implémentation de IPSec
indépendante des autres.
Il y a des avantages
et des inconvénients pour les deux approches. Le principal
avantage de l'approche de OpenVPN est la portabilité, la
facilité d'utilisation, et la compatibilité avec le NAT
et l'adressage dynamique. Le plan d'étude pour installer et
utiliser OpenVPN va de paire avec cela et avec les questions de
sécurité des démons logiciels tels que ssh.
Le principal avantage
de IPSec est son support par de nombreux fournisseurs.
OpenVPN supporte-t-il
Windows ?
Oui, OpenVPN supporte Windows 2000/XP,
depuis la version 1.5.
OpenVPN respecte-t-il
les standards ?
Comme démon
VPN en espace utilisateur, OpenVPN est compatible avec SSL/TLS, les
certificats RSA et les PKI X509, NAT, DHCP, et les
périphériques virtuels TUN/TAP.
OpenVPN n'est pas
compatible avec IPSec, IKE, ou les VPN matériels.
OpenVPN peut-il
gérer un tunnel au-dessus d'une connexion TCP ?
Oui, cela est possible
depuis la version 1.5.
Compiler OpenVPN
OpenVPN peut
être compilé :
- avec à la
fois les librairies OpenSSL Crypto et les librairies SSL (version 0.9.5
ou
supérieures nécessaire), offrant une authentification
basée sur les certificats, un chiffrement par clef publiques, et
un échange de clef dynamique basé sur TLS;
- avec uniquement
la librairie OpenSSL Crypto, offrant une authentification et un
chiffrement conventionnels basés sur une clef statique, ou
- autonome, avec
le support de tunnels UDP non chiffrés.
OpenVPN peut aussi
être lié avec la bibliothèque
de compression en
temps réel LZO. OpenVPN
supporte la compression
adaptative, ce qui signifie
qui sera capable de compresser un lien seulement lorsque le flux de
données du tunnel pourront être compressées.
OpenVPN supporte le
multi-threading, et peut être compilé avec la
bibliothèque pthread. Dans le mode SSL/TLS, OpenVPN
utilise
un thread en arrière plan pour procéder à des
tâches coûteuses en CPU telles que les négociations
de clefs SSL/TLS, ce qui améliore spectaculairement la latence
de l'expédition des paquets durant ces échanges pour la
négociation de clef.
Actuellement, OpenVPN
tourne sous Linux 2.2, 2.4, Solaris, OpenBSD, FreeBSD, NetBSD, Mac OS
X, et Windows 2000/XP.
OpenVPN fonctionne
entièrement en espace utilisateur et ne nécessite aucun
composant noyau spécial que le
pilote de réseau virtuel TUN/TAP ou autres
périphériques
tun compatibles qui existent sous de nombreux unix.
Dons au projet OpenVPN
S'il vous plait, lisez
la page traitant des dons au projet
OpenVPN. OpenVPN est
entièrement
supporté par la communauté du logiciel libre, et se
trouve sous licence GPL. Vos dons
peuvent permettre d'assurer
longtemps le développement de OpenVPN en sachant rester au plus
haut niveau en ce qui concerne les problèmes de
sécurité, et en maintenant un rigoureux programme de
tests, l'ajout de nouvelles fonctionnalités,
l'amélioration
de la documentation, et fournir un support technique.
Copyright (C) 2002-2003 by James Yonan <jim@yonan.net>
This Document is released under the GNU Free Documentation
License Version 1.2.
Traduction Guillaume
Lehmann <lehmann@free.fr>
|