Theme : VPN avec IPSEC et OPENVPN UNIVERSITE CHEIKH ANTA DIOP FACULTES DES SCIENCES ET TECHNIQUES MASTER 2 TDSI Theme : VPN avec IPSEC et OPENVPN Mouhamed Barro Babacar Faye Richard Gomis Mahamat A. Hamid
PLAN VPN IPSEC OPENVPN INSTALLATION CONFIGURATION OPENVPN BESOINS SOLUTIONS IPSEC OPENVPN INSTALLATION CONFIGURATION OPENVPN INSTALLATION CONFIGURATION IPSEC
VPN Intégrité Confidentialité Authentification VPN : Virtual Private Network Besoins : Etablir des connexions privées entre serveurs ou serveurs/client (nomade) pour protéger les données qui passent, créer des tunnels entre deux réseaux distants (site to site) Solution : tunnels sécurisés, avec des protocoles permettant : Intégrité Confidentialité Authentification
ipsec Utilisation de services cryptographiques pour sécuriser des communications IP. Mode transport : seules les données sont chiffrées (utilisé en communication host to host), les entêtes ne changent pas Mode tunnel : la totalité du paquet IP est chiffré et authentifié. Permet de créer des tunnels VPN. Deux algorithmes AH : Authentification + Intégrité ESP : Confidentialité + Authentification + Intégrité
openvpn Solution libre pour créer des tunnels sécurisés (mode client/serveur) Permet l’authentification par clé privée et certificats Utilise OPENSSL pour l’authentification Point fort : disponible sur pratiquement tous les environnements : Linux, Windows, Mac, Solaris, OpenBSD… Facilité pour passer les Réseaux natés Point faible : incompatible avec Ipsec et d’autres logiciels VPN.
Installation configuration Openvpn Installer openvpn : yum install openvpn Modifier les paramètres par defaut pour les clés et certificats: #cd /usr/share/openvpn/easy-rsa/ #vi vars export KEY_COUNTRY= "SN" export KEY_PROVINCE= "DK" export KEY_CITY="Dakar" export KEY_ORG="MTDSI" export KEY_EMAIL="mtdsi@mtdsi.com"
Génération de certificats ./vars ./clean-all #cd /usr/share/openvpn/easy-rsa/2.0/ Génération de l’autorité certification : #./build-ca Génération du certificat serveur : #./build-key-server nomserveur Génération du certificat client: #./build-key nomclient Générer les paramètres Diffie-Hellman : #./build-dh
Clés
Configuration du serveur Aller dans /usr/share/docs/openvpn-2***/sample-config-file Copier le fichier server.conf dans /usr/share/openvpn/easy-rsa/2.0/keys/ Editer server.cionf et renseigner : local @IP_serveur port 1194 proto tcp dev tun (interface) Ca ca.crt Cert nomserveur.crt Key nomserveur.key dh dh1024.pem Server 10.8.0.0 255.255.255.0 (plage d’adresse du tunnel) Comp-lzo (compression)
Client Télécharger et installer openvpn.exe Copiez les certificats à partir du serveur vers le client avec Winscp (*.crt, *.key, *.ca) Dans C:/programmes/openvpn, copier le fichier /sampleconfig/client.config dans le dossier /config et l’éditer ainsi :
#pour signaler que c'est un client ! #type d'interface dev tun #protocole de communication proto udp #adresse ip publique du réseau dans lequel le serveur est installé + port identique au serveur remote 192.168.1.100 1595 #tentative de connexion infinie resolv-retry infinite Nobind #pour rendre la connexion persistante persist-key persist-tun
#pour cacher les avertissements mute-replay-warnings #emplacement de l’autorité CA ca ca.crt #emplacement du certificat client cert clientmidas.crt #emplacement de la clé privée du client key clientmidas.key #type d'encryptage des données cipher AES-128-CBC #activation de la compression comp-lzo #niveau de verbosité verb 5
Démarrage /etc/init.d/openvpn restart Ou Aller dans keys : #openvpn server.conf Chez le client, lancer le logiciel openvpn, clic droit, connecter.
Installation et Configuration IPSEC Soit PC1 = 192.168.56.101 PC2 = 192.168.56.102 Sur les 2 PC : Apt-get install ipsec-tools Apt-get install racoon Chargement des modules #modprobe esp4 #modprobe ah4 #modprobe ipcomp
Configuration permanente # vim /etc/modules # Ajout des modules esp4 ah4 ipcomp
Sur PC1, éditer /etc/racoon/setkey.conf
Sur PC2, éditer /etc/racoon/setkey.conf
Connfigurations #chmod 600 /etc/racoon/setkey.conf Mise à jour : #setkey -f /etc/racoon/setkey.conf Verification : #setkey -D #setkey -DP Edier /etc/rc.local pour sauvegarder les paramètres pour chaque demarrage : #!/bin/sh -e # rc.local # Force IPSEC dès le démarrage setkey -f /etc/racoon/setkey.conf exit 0
Test Sur PC2 #tcpdump -i eth1 host 192.168.56.102 and 192.168.56.101 > /dev/pts/0 #ping 192.168.56.101 Sur PC1 #tcpdump -i eth1 host 192.168.238.130 and 192.168.56.102 > /dev/pts/0 #ping 192.168.56.102
Merci de votre attention !