OpenVPN est un logiciel libre, capable de créer des tunnels sécurisés (ou non) le plus souvent entre deux réseaux distants.
Nous allons nous intéresser particulièrement au cas suivant : Deux réseaux IP différents, tous deux connectés à l'internet par l'intermédiaire d'un routeur « nat » vont être reliés par un tunnel. Il s'agira ici d'un tunnel « routé » (tunnel sur IP). Pour information, OpenVPN sait aussi réaliser des tunnels en mode « bridgé » (tunnel sur Ethernet), mais nous n'aborderons pas ici cette façon de faire.
OpenVPN peut utiliser SSL pour la sécurité, ce qui est probablement moins efficace qu'IPsec, mais certainement plus facile à mettre en œuvre.
OpenVPN adopte une architecture client/serveur. Comprenons par là qu'une des extrémités du tunnel doit être configurée en mode serveur. Cette extrémité devra disposer de préférence d'une adresse IP fixe. L'autre extrémité sera configurée en mode client et une adresse IP dynamique fera parfaitement l'affaire.
OpenVPN va créer une interface réseau virtuelle en espace utilisateur à chaque extrémité du réseau. Il nous faudra donc configurer cette interface à chaque bout et également positionner une route pour atteindre le réseau distant, mais tout ceci est pris en charge par OpenVPN lui-même.