Client OpenVPN

dim. 01 sept. 2013 by Marmotte

Installation

Sous Debian, il suffit d'installer les paquets openssl et openvpn.

$ sudo apt-get install --no-install-recommends openvpn

Configuration générale

Les clés et certificats provenant du serveur seront copiés dans le répertoire /etc/openvpn/<NetworkName>/.

$ sudo mkdir /etc/openvpn/<NetworkName>
$ sudo cp /<PathToCerts>/ca.crt /etc/openvpn/<NetworkName>/
$ sudo cp /<PathToCerts>/<ClientCertName>.crt /etc/openvpn/<NetworkName>/
$ sudo cp /<PathToCerts>/<ClientCertName>.key /etc/openvpn/<NetworkName>/
$ sudo cp /<PathToCerts>/ta.key /etc/openvpn/<NetworkName>/

Comme pour le serveur, la configuration par défaut proposée est très complète. Là encore, le plus simple est de prendre le fichier proposé par OpenVPN, et adapter les éléments qui ne conviennent pas par défaut.

$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/<NetworkName>.conf

Dans la configuration, il faudra au moins modifier ces éléments :

  • Modifier la ligne remote pour mettre l'adresse IP ou le nom du serveur, et modifier le port si le serveur n'utilise pas le port standard
  • Vérifier le chemin des certificats et clés aux lignes ca, cert, key

    ca <NetworkName>/ca.crt
    cert <NetworkName>/<ClientCertName>.crt
    key <NetworkName>/<ClientCertName>.key
    
  • Décommenter la ligne tls-auth et modifier le chemin de la clé

    tls-auth <NetworkName>/ta.key 1
    
  • Décommenter les lignes user et group

Tester la configuration :

$ sudo openvpn /etc/openvpn/<NetworkName>.conf

Si la connexion s'établit sans erreur, vous pouvez alors stopper le VPN, et le lancer comme service.

$ sudo service openvpn start <NetworkName>

Configurations supplémentaires

Désactiver la connexion automatique

Pour désactiver la connexion automatique à un serveur VPN, il faut modifier la valeur de la variable AUTOSTART dans le fichier /etc/default/openvpn.

AUTOSTART="none"

Éviter les conflits d'informations DNS

Si le serveur VPN donne des informations de DNS, il faut utilise le script update-resolv-conf fourni par OpenVPN. Ce script adapte les configurations pour éviter les conflits avec des informations DNS provenant d'un autre service, comme un serveur DHCP, par exemple. Il utilise l'utilitaire resolvconf, disponible dans le paquet du même nom.

$ sudo apt-get install --no-install-recommends resolvconf

Il faut ensuite appeler le script update-resolv-conf fourni par le paquet OpenVPN, dans le fichier de configuration du client.

# Security for user scripts
script-security 2
# Manage DNS servers
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

Attention : L'utilisation de ce script est incompatible avec la restriction de droits pour le lancement d'OpenVPN. Il faut donc commenter les directives user et group si elles sont utilisées.