Création d'un serveur OpenVPN

Introduction

Dans le cadre de la pandémie grippale de 2009, les établissements de l'enseignement supérieur ont imposé des plans de continuité d'activité.

Pour proposer aux personnels administratifs un accès aux ressources de l'établissement leur permettant d'effectuer les missions décidées comme stratégiques, il a été proposé de généraliser l'usage de VPN. Cependant, si les établissements disposent de VPN de type concentrateur VPN IPsec, ces derniers sont rarement dimensionnés pour absorber plusieurs dizaines voire centaines d'utilisateurs.

Il apparaît indispensable de pouvoir proposer une alternative à ces plate-formes souvent onéreuses pour faire face rapidement à la pandémie. La solution décrite ci-après utilise une solution complètement libre et ouverte, basée sur OpenVPN.

CQQCOQP

Comme tout projet qui se respecte, et pour définir sa portée plus que le simple tryptique “où on en est ? Où on va ? Comment on y va ?”, il est préférable de se rapprocher de l'allographe http://fr.wikipedia.org/wiki/CQQCOQP.

Pourquoi OpenVPN

La solution de VPN OpenVPN se distingue des autres solutions par la nécessité d'installer un composant logiciel complémentaire.

Si cette caractéristique peut apparaître à certains comme un inconvénient, OpenVPN a cependant bien des avantages :

Liens Utiles

Configuration générale du serveur

Les spécifications fonctionnelles suivantes doivent être respectées :

Les spécifications logicielles et matérielles suivantes seront utilisées :

Installation de l'autorité de certification de GlobalSign

Configuration de OpenVPN

Installation de OpenVPN

apt-get install openvpn

La configuration de OpenVPN se compose des fichiers de configuration suivants :

Configuration de l'authentification par PAM

Configuration du serveur Ldap pour le PAM

Configuration réseau

Configuration des services internes

Configurations complémentaires

Addition Filtrage Ldap

Afin de ne pas ouvrir à tout l'annuaire Ldap l'accès à ce service, il peut être utilisé un filtrage sur un champ Ldap.

Quels champs Ldap ?

L'examen des attributs d'un Ldap standard présente 2 possibilités :

Comment le configurer ?

Dans /etc/pam_ldap.conf, il est seulement nécessaire de rajouter la ligne

pam_filter radiusFramedProtocol=PPP

ou

pam_filter dialupAccess=TRUE

pour activer le filtrage.

Addition d'un support TCP

Après quelques mois d'exploitation, il apparaît que l'utilisation de l'UDP standard pour OpenVPN pose des difficultés dans la pratique : des sites s'obstinent à empêcher l'utilisation de connexions sortantes en UDP.

Pour contrer cette difficulté, il est possible d'associer un second serveur OpenVPN au premier, en TCP celui là. Le client n'aura qu'à remplacer UDP par TCP dans sa configuration pour disposer du même service.

Même chose pour la configuration des scripts de démarrage et d'arrêt pour la mise en place du masquage d'adresses :

Configuration des clients

Les clients nécessitent deux ou trois fichiers de configurations :

Configuration pour GNU/Linux Debian : "files only"

Certaines implémentations d'OpenVPN sur des distributions Linux empêchent catégoriquement le recours à ce fichier texte. Il est donc nécessaire d'entrer sont identifiant/mot de passe à chaque lancement

Configuration pour GNU/Linux : via NetworkManager

La configuration se réalise via l'interface gnome-network-manager. TBD

Configuration pour MacOSX

Configuration pour Windows

Licence

Cette documentation est distribuée sous FDL.

L'auteur remercie les auteurs de OpenVPN et tous ceux qui, par la lecture de ces lignes, déploieront de manière opérationnelle cet outil.