~~SLIDESHOW~~ ====== Les VPN ====== **Virtual Private Network** ou **RPV** (Réseaux Privés Virtuels) ===== Présentation ===== * * permettent d'établir un tunnel de communication chiffré, authentifié entre 2 extrémités, intégrité vérifiée * de plus en plus utilisés * utilisent * les tunnels * la cryptographie * les certificats ===== Caractéristiques ===== * permettent le chiffrement * permettent de masquer les adresses IP * ===== 2 grandes familles ===== * **IPSEC** * **SSL/TLS** ===== IPSEC ===== * Internet Protocol Security * bonne sécurité * opère au **niveau 3 OSI** (comme IP) => 1 seul plan d'adressage * paramétrage complexe * normalisé : RFC 2401 - interopérabilité * protocole d'échange de clés (IKE) * Les protocoles (AH ou ESP)‏ * mode **transport** ou **tunnel** ===== IPSEC - le protocole IKE ===== * Canal d'échange de clé (**IKE** : **Internet Key Exchange**) * Port 500 UDP * **IKE** : authentification mutuelle des deux extrémités du tunnel au moyen de clé partagée * 2 types d'authentification : * **PSK** (secret partagé) pour générer des clés RSA * **Certificats X509** (possibilité de non répudiation) ===== IPSEC - le transfert de données ===== * 2 protocoles possibles : * **AH - Authentication Header** : intégrité et authentification des paquets : chiffrement de l'en-tête uniquement * **ESP - Encapsulating Security Payload** : intégrité et sécurité grâce à la cryptographie ===== IPSEC - les mises en oeuvre ===== * Windows * interconnexion avec les routeurs Cisco, Linksys, Netgear, ... * également sur les pare-feu **pfsense** et **opnsense** * IOS * Android * Linux : **Strongswan** ===== IPSEC - Security Association ===== * Permet la négociation de l'utilisation du protocole AH et de l'encapsulation ESP * définit les règles d'établissement du dialogue * La **SA** peut être établie manuellement ou par ISAKMP (Internet Security Association and Key Management Protocol) ===== Mode de fonctionnement ===== * Mode **Transport** * mode **Tunnel** : relie plusieurs sites ===== Mode transport ===== * les données seules (payload) sont chiffrées * l'en-tête est inchangé * Pas de possibilité de changer les adresses (pb de Hash) => pas de NAT => NAT Traversal * Utilisé pour les communication hôte à hôte ===== Mode Tunnel ===== * la totalité du paquet IP est chiffré et/ou authentifié. * Le paquet encapsulé dans un nouveau paquet IP avec un nouvel en-tête. * Supporte la NAT * utilisé pour créer des VPN entre deux sites distants, d'hôte à réseau ou bien d'hôte à hôte ===== Basés sur SSL/TLS ===== * utilisent la couche de chiffrement **SSL/TLS** * utilisables sans client particulier, avec un simple navigateur (Firefox, Chrome, ...) * ou bien comme support pour mettre en œuvre un **tunnel** site à site grace à un client (OpenVPN, TINC, ...) * dans le cas du tunnel, on disposera d'un deuxième réseau avec son propre plan d'adressage (10.8. par exemple pour OpenVPN) ===== SSL/TSL : OpenVPN ===== * simple à mettre en oeuvre * Fonctionne en userland * Utilise OpenSSL et TLS/SSL * Peut utiliser : * Une clé partagée statique * Des certificats X509 * Couple utilisateur/mot de passe * Fonctionne sur UDP ou TCP * Fonctionne sous Unix, Windows, Mac/OS, Android ===== OpenVPN - suite ===== * depuis 2001 * Mode * **bridge** (niveau 2 : interface **tap**)‏ * **Routeur** (niveau 3 : interface **tun**)‏ * Permet la compression * Utilisable avec la NAT et les pare-feu * Permet d'envoyer des options TCP/IP aux clients * Liaison avec PAM * Beaucoup de documentation et Howto * ===== Wireguard ===== * un nouveau VPN * moderne et intégré au noyau Linux * fonctionne sur Linux, Windows, Mac/OS, Android * cf https://shaarli.lyc-lecastel.fr/?searchterm=&searchtags=wireguard+ ===== VPN ou accès serveur en https ===== * serveur **HTTPS** : plus simple et plus limité * accès au seul serveur : exposition limitée * moins d'implications lourdes en termes de sécurité * **VPN** : plus complexe * accès potentiel au réseau complet et à l'infrastructure complète * installation lourde * quid en cas d'intrusion