13/05/2014 Dossier VPN VPN Anthony MANDRON LYCEE LE CASTEL
Table des matières Schéma... 2 Procédure d installation... 2 Mise en œuvre de règles de filtrage... 4 Intégration de services réseaux... 6 ANTHONY MANDRON 1
Schéma Procédure d installation Pour se faire, il faut installer les paquets racoon ipsec-tools pour permettre l'utilisation d'ipsec. L'installation se fait facilement par les dépôts : aptitude install racoon ipsec-tools tcpdump Le paquet tcpdump va permettre la vérification de l'utilisation du protocole esp permettant l'encapsulation des données incorporant le chiffrement. Pour permettre l'utilisation de certificat X509, il faut créer une autorité de certification qui va servir à signer les futurs certificats des deux routeurs VPN : /usr/lib/ssl/misc/ca.pl -newca ANTHONY MANDRON 2
Une fois, l'autorité de certification signée on va pouvoir créer les certificats publics : /usr/lib/ssl/misc/ca.pl -newreq On va pouvoir ensuite signer les certificats avec celui de l'autorité de certificat : /usr/lib/ssl/misc/ca.pl -sign Avant de répéter la manipulation, changer le nom du certificat, de la clé et de la requête de certification. Il faut créer la liste des révocations des certificats afin de pouvoir les rendre non valables. openssl ca -gencrl -out crl.pem Il faut ensuite copier les fichiers des certificats crées, les clés des certificats, l'autorité de certification et la liste de révocation dans le dossier certs de racoon. On va ensuite procéder au hachage du certificat d'autorité et de liste de révocation afin d'assurer leur intégrité et la confidentialité des communications. #Lien entre cacert.pem et hash cd /etc/racoon/certs/ ln -s cacert.pem $(openssl x509 -noout -hash < cacert.pem).0 #Lien entre crl.pem et hash cd /etc/racoon/certs/ ln -s crl.pem $(openssl x509 -noout -hash < cacert.pem).r0 Une fois, les certificats X509 crée, on va pouvoir passer à la configuration d IPSEC. D'abord, il faut configurer le fichier ipsec-tools.conf permettant d'effectuer le tunnel VPN. vim /etc/ipsec-tools.conf flush; spdflush; spdadd adresse_réseau/xx adresse_reseau_distante/xx any -P out ipsec esp/tunnel/lien-lien_distant/require; spdadd adresse_reseau_distante/xx adresse_réseau/xx any -P in ipsec esp/tunnel/lien_distant-lien/require; ANTHONY MANDRON 3
On va pouvoir configurer racoon avec les certificats crées précédemment. vim /etc/racoon/racoon.conf path certificate "/etc/racoon/certs"; remote $remip { exchange_mode main; certificate_type x509 "IPSECcert.pem" "IPSECkey.pem"; verify_cert on; my_identifier asn1dn; peers_identifier asn1dn; proposal { encryption_algorithm 3des; hash_algorithm md5; authentication_method rsasig; dh_group modp1024; } } sainfo anonymous { pfs_group modp768; encryption_algorithm 3des; authentication_algorithm hmac_md5; compression_algorithm deflate; } Pour prendre en compte les changements, il faut d'abord redémarrer le service setkey puis le service racoon sur les deux machines. service setkey restart ; service racoon restart Mise en œuvre de règles de filtrage Une fois, le tunnel VPN fonctionnel, il est primordial de mettre en œuvre des règles de filtrage pour garantir la sécurité des transactions entre les 2 extrémités du VPN. IPtables est un outil qui va permettre de les mettre en œuvre. Dans un premier temps, on va vider les données existantes. ANTHONY MANDRON 4
## On vide les règles iptables. iptables -F ## On supprime toutes les chaînes utilisateurs. iptables -X ## On supprime tout le trafic entrant. iptables -P INPUT DROP ## On supprimer tout le trafic sortant. iptables -P OUTPUT DROP ## On supprimer le forward. iptables -P FORWARD DROP On va ensuite autoriser le trafic sur l'interface de bouclage lo. ## On accepte la boucle locale en entrée. iptables -I INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT On va ensuite mettre en place un système de traçabilité sur les chaines INPUT et FORWARD pour permettre d'effectuer des diagnostiques. ## On log les paquets en entrée. iptables -A INPUT -j LOG ## On log les paquets forward. iptables -A FORWARD -j LOG O n va ensuite autoriser les différents protocoles du tunnel IPSEC. En l'occurence, on aura l'esp et l ISAKMP. ANTHONY MANDRON 5
## Permettre les connexions relatives au tunnel IPsec iptables -A INPUT -p udp --dport isakmp -m comment --comment ipsec -j ACCEPT iptables -A OUTPUT -p udp --sport isakmp -m comment --comment ipsec -j ACCEPT iptables -A FORWARD -p udp --dport isakmp -m comment --comment ipsec -j ACCEPT iptables -A FORWARD -p udp --sport isakmp -m comment --comment ipsec -j ACCEPT iptables -A INPUT -p esp -j ACCEPT iptables -A OUTPUT -p esp -j ACCEPT iptables -A FORWARD -p esp -j ACCEPT Pour des raisons de test, on peut aussi autoriser le protocole ICMP pour effectuer des tests de fonctionnement du VPN avec les règles de filtrage. ## Permettre les connexions des autres protocoles autorisés iptables -A INPUT -p icmp -j ACCEPT iptables -A OUTPUT -p icmp -j ACCEPT iptables -A FORWARD -p icmp -j ACCEPT Intégration de services réseaux Afin de permettre la mise en production informatique de l'agence, il est important d'installer un serveur DHCP en local et un serveur DNS faisant office de relais. Le serveur DNS principal est situé sur le site principal de GSB. La mise en place de cette infrastructure est nécessaire afin de permettre l'accès aux services hébergés sur le site principal. On va d'abord installer le serveur DHCP qui sera installé sur le routeur VPN. aptitude install isc-dhcp-server On va ensuite modifier le fichier de configuration du serveur DHCP. vim /etc/dhcp/dhcpd.conf ANTHONY MANDRON 6
subnet 172.16.128.0 netmask 255.255.255.0 { range 172.16.128.10 172.16.128.30; option domain-name-servers 172.16.0.6, 172.16.0.1; option domain-name "gsb.lan"; option routers 172.16.128.254; option broadcast-address 172.16.128.255; default-lease-time 86400; max-lease-time 604800; } ANTHONY MANDRON 7