OpenVPN Manager Projet M2-ESECURE - Robin BUREL Date 10 Janvier 2013 Tuteur : M. Richard 1
Sommaire Introduction Présentation d OpenVPN OpenVPN Manager, le projet Contexte et Objectifs Organisation & Développement Problèmes rencontrés & solutions apportées Evolutions 2
Introduction Qu est-ce qu un VPN? Différents VPN PPTP IPSec OpenVPN... 3
Introduction Fonctionnement basique Pourquoi utiliser un VPN? Quand la politique s en mêle... 4
Présentation OpenVPN Fonctionnement Inconvénients OpenSSL Plus de ressources SSL/TLS Bande passante Avantages d OpenVPN UDP ou TCP? Couche applicative Au travers d un NAT 5
OpenVPN Manager - contexte Installation d un serveur OpenVPN épineuse Gestion des clients anecdotique Maintenir une configuration à travers le temps Comment centraliser la gestion de clients et de serveurs au sein d une même application? 6
OpenVPN Manager - objectifs Faciliter la mise en place de serveurs VPN Fournir des configurations clients/serveurs fonctionnelles Centraliser l ensemble de ces fonctionnalités au sein d une même application 7
OpenVPN Manager - existants OpenVPN Web Certificate Management Récupérer les certificats (zip) Gestion des clients sur le serveur OpenSource (Licence GPL) Pas d identification sur l application (htaccess) Une seule instance serveur Pas cross-platform 8
OpenVPN Manager - existants Bytemine Manager Cross-platform Gestion des certificats serveur OpenSource (Licence BSD) Pas de gestion de clients Une seule instance serveur Documentation : README 9
OpenVPN Manager - existants OMNI Gestion des utilisateurs Gestion des certificats Plusieurs instances serveurs Statistiques complètes (BP, utilisateurs connectés...) Payant (s adresse aux professionnels) Code propriétaire 10
Organisation Découper le projet sous deux aspects serveur client Etablir des jalons et les respecter (du moins, essayer...) Utiliser un gestionnaire de version (GIT) pour se rassurer 11
Développement - outils Application orientée web Choix du langage et des frameworks Rester «user-friendly» dans l interfaçage 12
Développement - conception Création des entités et normalisation de la base de données Isoler le code asynchrone dans des threads Garantir l'étanchéité du système 13
Développement - effectué Authentification et gestion des utilisateurs. Créer un serveur avec une configuration viable Génération de clés et certificats Export de l ensemble des données Suivi de certificats clients (fichiers CSR) 14
Problèmes & Solutions Génération des certificats serveurs avec l outil easy-rsa Accès concurrent au fichier des variables de certificat Notifier l utilisateur de la fin de génération de clés Vérifier la bonne écoute d un serveur par rapport à sa configuration 15
Evolutions Permettre l upload de clés et certificats côté serveur Permettre la génération de clés et certificats côté client Vérifier le statut d un serveur Renforcer la sécurité sur les contrôleurs 16
Développement - effectué Connexion utilisateur 17
Développement - effectué Profil utilisateur 18
Développement - effectué Liste des serveurs d un utilisateur 19
Développement - effectué Ajouter un serveur (ajax) 20
Développement - effectué Modification d un serveur 21
Développement - effectué Page serveur 22
Développement - effectué Configuration générée 23
Développement - effectué Menu action sur serveur 24
Développement - effectué Génération d une clé en cours 25
Développement - effectué Recherche d un client (Ajax auto complétion) 26
Développement - effectué Upload de clés client 27
Développement - effectué Edition de la configuration d un serveur 28
Développement - effectué Choix du chiffrement de la communication 29
Développement - effectué Fichiers créés par l application 30
FIN. Merci de votre attention. 31