Vous êtes ici : Accueil / Debian GNU/Linux / Serveurs / Autres / Installer et configurer OpenVPN sur Debian

Installer et configurer OpenVPN sur Debian

Par Pierre-Yves Landuré Dernière modification 02/03/2018 20:35

OpenVPN permet de créer des réseaux privés virtuels chiffrés avec OpenSSL. C'est une alternative crédible aux technologies telles que PPtP (Microsoft) ou IPSec. Disponible sur de nombreux systèmes d'exploitation (Microsoft Windows, GNU / Linux, MacOS X, ...), c'est une solution simple pour gérer un réseau privé virtuel composé de machines hétéroclites dans un environnement n'autorisant pas IPSec.

Ce guide est testé sur:

  • Debian 6.0 Squeeze
  • Debian 7.0 Wheezy

Prérequis

Ce guide recommande:

Installation

Installez les logiciels:

command apt-get install openvpn openssl module-init-tools zip dos2unix git

Initialisez le module tun:

command modprobe tun

Intégrez le module au démarrage du système:

if [[ -z "$(command grep '^tun$' '/etc/modules')" ]]; then
command echo '# Needed by OpenVPN
tun' >> '/etc/modules'
fi

Si nécessaire de créez le device associé:

if [[ ! -e '/dev/net/tun' ]]; then
command mkdir -p '/dev/net'
command mknod '/dev/net/tun' c 10 200
fi

Installez Easy-RSA v3:

command git clone 'https://github.com/OpenVPN/easy-rsa' '/etc/openvpn/easy-rsa'

Mettez en place l'outil openvpn-tools:

command wget 'https://raw.github.com/biapy/howto.biapy.com/master/openvpn/openvpn-tools' \
--quiet --no-check-certificate --output-document='/usr/local/bin/openvpn-tools'
command chmod +x '/usr/local/bin/openvpn-tools'

Si nécessaire, mettez en place le script 'update-resolv-conf':

if [ ! -e '/etc/openvpn/update-resolv-conf' ]; then
command wget 'https://raw.github.com/biapy/howto.biapy.com/master/openvpn/update-resolv-conf' \
--quiet --no-check-certificate --output-document='/etc/openvpn/update-resolv-conf'
command chmod +x '/etc/openvpn/update-resolv-conf'
fi

Initialisez l'environnement de création des certificats SSL:

command openvpn-tools --initialize

Configurez la rotation des journaux:

echo "/var/log/openvpn/*.log {
daily
missingok
rotate 10
compress
delaycompress
notifempty
create 600 root root
postrotate
/etc/init.d/openvpn restart > /dev/null
endscript
}" > "/etc/logrotate.d/openvpn"

Administration

Création d'un réseau VPN

Créez une instance VPN:

command openvpn-tools --create="domain.vpn"

où:

  • domain.vpn est le nom d'instance / domaine du nouveau réseau VPN.

Le serveur est créé sur le port UDP 1194 par défaut.Si ce port n'est pas disponible, un autre port est choisi aléatoirement.

Suppression d'un réseau VPN

Supprimez un serveur VPN:

command openvpn-tools --destroy="domain.vpn"

Ajout d'un client

Ajoutez un client au réseau VPN:

command openvpn-tools --domain="domain.vpn" --add="client-alias"

Les clients sont créés avec une adresse IP fixe.

L'outil génère des archives contenant les configurations clientes pour Unix (Ubuntu, Mac OS X, etc...), iPhone, et Microsoft Windows. Configurer un client revient à y décompresser à l'emplacement adéquat.

L'archive contient aussi un fichier hosts.txt dont le contenu peut être inséré dans le fichier hosts du système.

Suppression d'un client

Supprimez l'accès au réseau VPN d'un client:

command openvpn-tools --domain="domain.vpn" --remove="client-alias"

Autres options

Communication entre clients

Activez la communication directe entre les clients du réseau VPN:

command openvpn-tools --domain="domain.vpn" --c2c='y'

Accès au réseau local du serveur

Activez l'accès au réseau local du serveur par les clients du réseau VPN:

command openvpn-tools --domain="domain.vpn" --nat='y'

Accès à Internet par le réseau VPN

Activez le passage forcé de l'accès à Internet des clients par le réseau VPN:

command openvpn-tools --domain="domain.vpn" --gateway='y'

Mise en place d'un serveur DNS pour le réseau VPN

Cette procédure est expérimentale. Elle peut poser des problèmes sur les clients Unix.

Mettez en place la résolution DNS des noms des clients du réseau VPN grâce à un serveur DNS Bind:

command openvpn-tools --domain="domain.vpn" --bind='y'

Désactivez la résolution DNS pour le réseau VPN:

command openvpn-tools --domain="domain.vpn" --bind='n'

Si vous rencontrez des problèmes de résolution des domaines Internet sur les clients du VPN, suivez la section "Redirections" du guide Configurer un serveur DNS Bind sur Debian.

Mise en place des clients

Windows

Le client Windows est disponible dans les téléchargements du site officiel d'OpenVPN.

Pour installer OpenVPN sur Windows pour un utilisateur ne disposant pas des droits d'administration, lisez l'article de Michauko : OpenVPN, OpenVPN GUI, droits admin, et "add route"....

Mac OS X

OpenVPN nécessite l'installation de Tun Tap - Virtual network interfaces for Mac OS X pour fonctionner.

Si la ligne de commande vous pose problème, essayez TunnelBlick, une interface graphique pour OpenVPN.

iPhone

Le client "OpenVPN Connect" est disponible sur l'AppStore. Transférez les fichiers de configuration (obtenus en décompressant l'archive correspondante) sur l'iPhone à l'aide d'iTunes.

Références

Ces livres peuvent vous aider:

Remerciements