XVPND extended VPN Dæmon Jonathan DERQUE - Jean-Francois SMIGIELSKI XVPND extended VPN Dæmon p.1/53
Plan Introduction Présentation Implémentation Tests Perspectives d évolution Conclusion XVPND extended VPN Dæmon p.2/53
Présentation - Plan Présentation des VPN Présentation des IPSec Sujet XVPND extended VPN Dæmon p.3/53
Présentation des VPN On veut isoler des communications privées sur un réseau public Deux solutions : utiliser des lignes privées mettre en place un VPN XVPND extended VPN Dæmon p.4/53
Présentation des VPN Les tâches accomplies par le VPN : confidentialité des données authentification des machines distantes intégrité des messages XVPND extended VPN Dæmon p.5/53
Présentation des VPN Les protocoles utilisés dans les VPN : PPTP développé par Microsoft, est un protocole de niveau 2. L2F développé par Cisco, maintenant obsolète ; L2TP développé par l IETF reprenant les fonctionnalités de PPTP et L2F. IPSec développé lui aussi par l IETF. XVPND extended VPN Dæmon p.6/53
Présentation des VPN Problèmes de sécurité : une personne extérieure ne peut voir les communications une personne dans l un des sous-réseaux peut intercepter des informations en clair. XVPND extended VPN Dæmon p.7/53
Présentation d IPSec IPSec développé par l IETF, ayant pour cible : sécurisation des réseaux VPN application de tunneling développé pour IPv6, adapté pour IPv4 disponible sur un grand nombre d OS XVPND extended VPN Dæmon p.8/53
Présentation d IPSec Les services fournis par IPSec : authentification (via des signatures DSS ou RSA) ; confidentialité des données échangées (via DES, triple DES, Blowfish, etc... ) ; intégrité des données échangées (via SHA1, MD5, etc... ). XVPND extended VPN Dæmon p.9/53
Présentation d IPSec Place d IPSec dans les couches réseau : APPLICATION TCP UDP IPSec IP XVPND extended VPN Dæmon p.10/53
Présentation d IPSec Protocoles annexes et services associés : IKE établir des tunnels de maintenance AH établir les identités, intégrité des données ESP fonctionnalités d authentification, d intégrité et chiffrement XVPND extended VPN Dæmon p.11/53
Présentation d IPSec Les modes de fonctionnement d IPSec sont : mode transport mode tunnel XVPND extended VPN Dæmon p.12/53
Présentation d IPSec Mode Transport ne modifie pas l entête du paquet IP IP AH TCP/UDP DATA IP ESP TCP/UDP DATA IP AH ESP TCP/UDP DATA XVPND extended VPN Dæmon p.13/53
Présentation d IPSec Mode Tunnel ajoute un nouvel en-tête IP et encapsule complètement le paquet et son en-tête IP d origine. IP A AH IP B TCP/UDP DATA IP A ESP IP B TCP/UDP DATA XVPND extended VPN Dæmon p.14/53
Présentation d IPSec Les associations de sécurité (SA) regroupent : le type de protection (AH ou ESP) ; les algorithmes utilisés pour l authentification AH et ESP ; l algorithme de chiffrement pour ESP ; les différentes clefs en usage ; la durée de vie de la SA ; le séquencement des datagrammes propre à IPSec. XVPND extended VPN Dæmon p.15/53
Sujet proposé Faire une application de tunneling Notre programme doit supporter 4 protocoles ip broadcast dhcp/bootp arp ipx XVPND extended VPN Dæmon p.16/53
Sujet proposé Intégration dans l architecture : transparence vis-à-vis du sous-réseau transparence vis-à-vis du VPN gateway xvpnd subnet eth0 ipsec0 internet XVPND extended VPN Dæmon p.17/53
Sujet proposé Avantages : simplicité de mise en œuvre Inconvénients : traitement supplémentaire du paquet à l encapsulation à la décapsulation XVPND extended VPN Dæmon p.18/53
Sujet proposé Paquet pris en compte par le VPN gateway xvpnd subnet eth0 ipsec0 internet XVPND extended VPN Dæmon p.19/53
Sujet proposé Paquet pris en compte par le VPN gateway xvpnd subnet eth0 ipsec0 internet XVPND extended VPN Dæmon p.20/53
Sujet proposé Paquet pris en compte par le VPN gateway xvpnd subnet eth0 ipsec0 internet XVPND extended VPN Dæmon p.21/53
Sujet proposé Paquet pris en compte par xvpnd gateway xvpnd subnet eth0 ipsec0 internet XVPND extended VPN Dæmon p.22/53
Sujet proposé Paquet pris en compte par xvpnd gateway xvpnd subnet eth0 ipsec0 internet XVPND extended VPN Dæmon p.23/53
Sujet proposé Paquet pris en compte par xvpnd gateway xvpnd subnet eth0 ipsec0 internet XVPND extended VPN Dæmon p.24/53
Sujet proposé Paquet pris en compte par xvpnd gateway xvpnd subnet eth0 ipsec0 internet XVPND extended VPN Dæmon p.25/53
Sujet proposé Paquet pris en compte par le VPN gateway xvpnd internet ipsec0 eth0 subnet XVPND extended VPN Dæmon p.26/53
Sujet proposé Paquet pris en compte par le VPN gateway xvpnd internet ipsec0 eth0 subnet XVPND extended VPN Dæmon p.27/53
Sujet proposé Paquet pris en compte par le VPN gateway xvpnd internet ipsec0 eth0 subnet XVPND extended VPN Dæmon p.28/53
Sujet proposé Paquet pris en compte par xvpnd gateway xvpnd internet ipsec0 eth0 subnet XVPND extended VPN Dæmon p.29/53
Sujet proposé Paquet pris en compte par xvpnd gateway xvpnd internet ipsec0 eth0 subnet XVPND extended VPN Dæmon p.30/53
Sujet proposé Paquet pris en compte par xvpnd gateway xvpnd internet ipsec0 eth0 subnet XVPND extended VPN Dæmon p.31/53
Sujet proposé Paquet pris en compte par xvpnd gateway xvpnd internet ipsec0 eth0 subnet XVPND extended VPN Dæmon p.32/53
Implémentation: plan Aspect général Sniffage Injection Plugins Transfert inter-dæmon XVPND extended VPN Dæmon p.33/53
Implémentation: Aspect général Le programme comporte 2 grosses partie : Une composante client qui sniffe et envoie Une composante serveur qui écoute ce qu on lui transmet et réinjecte XVPND extended VPN Dæmon p.34/53
Séparation en modules Lire un fichier de configuration, utilisation de Lex et Yacc Un module de sniffage Un module d injection Un module de transfert qui rassemble le client et le serveur Gestion de chaque protocole par un plugin approprié. XVPND extended VPN Dæmon p.35/53
Implémentation: sniffage Le filtrage est... impératif, ne pas traiter des paquets gérés par le VPN fastidieux et complexe s il est fait maison. simplifiable par l utilisation d une libraire appropriée: la libpcap. capable de repérer les paquets injectés par le dæmon XVPND extended VPN Dæmon p.36/53
Sniffage : caractéristiques Utilisation de la libpcap (traitement séquentiel des paquets par callback ) Plusieurs solutions possibles: Un filtre qui accepte tout paquet d un des types voulus (séparation du flot à effectuer, peu gourmand en ressources). Un filtre par protocole (destination encore à déterminer) Un filtre par combinaison de protocole/destination (traitement ultérieur quasi-nul mais plus gourmand en ressources) XVPND extended VPN Dæmon p.37/53
Sniffage : premier choix Premier choix: un thread par sniffeur autant de sniffeurs que de combinaisons protocoles/destinations possibles irréalisable à cause de l IPX, car impossible de définir un filtre sur l IPX par destination. XVPND extended VPN Dæmon p.38/53
Sniffage : second choix Second choix: un thread par sniffeur un sniffeur par protocole détermination de la destination dépendante du paquet (plugin) XVPND extended VPN Dæmon p.39/53
Implémentation: Injection L injection... doit être aussi rapide que possible pour être utilisable par tout serveur (itératif ou concurrent, en mode connecté ou message) doit signaler aux sniffeurs les paquets injectés est techniquement plus simple que les autres parties XVPND extended VPN Dæmon p.40/53
Injection : identification des paquets A chaque interface est attachée une table de clés. A l injection sur une interface, insertion de la clé du message dans la table associée Au sniffage, si la clé est présente dans la table, le message est éliminé et la clé est effacée. Restriction de la concurrence sur la table par sémaphores En pratique, une clé par interface suffit. XVPND extended VPN Dæmon p.41/53
tâche du plugin Pour un besoin de performance: calcul de clé dépendant du type de message (plugin) interface destination dépendante du type de message (plugin) connaissance du plugin doit être la plus rapide possible à la réception (cf. transfert). XVPND extended VPN Dæmon p.42/53
Implémentation: Plugins Rassemblements des comportements propres à un protocole Calcule la clé d un message Fournit la règle de filtrage Fournit un identifiant utilisé à la réception par le serveur Injecte le paquet. XVPND extended VPN Dæmon p.43/53
Implémentation: Transfert Le module au choix le plus vaste mais le moins adaptable quand le choix est fait. doit permettre l identification d un message à la réception doit supporter une charge suffisante et minimiser les délais doit être pris en compte par le VPN XVPND extended VPN Dæmon p.44/53
Transfert: choix du protocole TCP est inutilisable à grande échelle. IP brut en est la forme utilisable la plus simple, mais toute l encapsulation sera à faire nous même GRE encapsulation standardisée et à géométrie variable mais à remplir nous-mêmes UDP encapsulation standardisée mais figée, très répandu et pris en compte par l OS. XVPND extended VPN Dæmon p.45/53
Transfert: Notre choix UDP Utilisation d un numéro de port par protocole (configuration) Relégation d un maximum de tâches à l OS (checksum, socket de haut niveau) Côté serveur: ouverture d une seule socket par port, Côté client: traitement du packet accéléré. XVPND extended VPN Dæmon p.46/53
Infrastructure de test Simulation d un VPN avec des règles de routage. Deux sites reliés par un internet Chaque site contient une feuille est une passerelle XVPND extended VPN Dæmon p.47/53
Infrastructure de test gateway0 gateway1 eth0 hub eth0 xvpnd xvpnd eth1 eth1 eth0 eth0 leaf0 leaf1 XVPND extended VPN Dæmon p.48/53
Infrastructure de test Routage d une passerelle: Destination Passerelle Genmask Iface 192.168.1.0 0.0.0.0 255.255.255.0 eth0 0.0.0.0 10.0.0.1 0.0.0.0 eth1 Routage d une feuille: Destination Passerelle Genmask Iface 0.0.0.0 10.0.0.1 0.0.0.0 eth0 XVPND extended VPN Dæmon p.49/53
Limitations et perspectives compilation des plugins initialisation des plugins chemin des plugins types d interfaces portabilité XVPND extended VPN Dæmon p.50/53
Conclusions techniques les quatre protocoles sont supportés bonnes perspectives d évolution besoin de tests à grande échelle projet diffusé XVPND extended VPN Dæmon p.51/53
Conclusions personnelles consolidation des connaissances en matière de réseau pratique de la programmation réseau et système démarche de recherche d informations sur les protocoles et sur le réseau XVPND extended VPN Dæmon p.52/53
EOF XVPND extended VPN Dæmon p.53/53