Introducion
Installation
Génération des clés de chiffrement
Configuration Lan to Lan
Tests de connectivité
Conclusion
Installation
Génération des clés de chiffrement
Configuration Lan to Lan
Tests de connectivité
Conclusion
Introduction
Les VPNs (Virtual Private Networks) sont une solution sécurisée et économique aux lignes louées dédiées et de ce fait très couteuses. Le principe de cette technologie est simple et consiste en la création d'un tunnel chiffré entre 2 points d'accès utilisant le réseau publique pour support.
Plusieurs topologies existent et sont supportées par FreeS/WAN :
- Lan to Lan
- Client to Lan (config Road Warrior)
- Client to Server (pour utiliser les services d'un serveur par exemple)
Installation de FreeS/WAN
Vous avez 2 options pour l'installation : - sources
- RPM
Installation à partir des sources
Téléchargez le tarball de la version que vous aurez choisi sur le FTP de freeswan.org En tant que root executer les commandes suivante pour dépacker les sources :
su
mv freeswan-2.03.tar.gz /usr/src
cd /usr/src
tar -xvf freeswan-2.03.tar.gz
Il faut savoir qu'il existe des patchs pour le support de différentes technologies commes le NAT transversal ou le chiffrement X.509, ces patchs doivent être appliqués à ce moment de l'installation par les sources et uniquement par cette méthode.
...Make
Userland - uniquement pour des kernels 2.6 cd /usr/src/freeswan-2.03
make programs
make install
KLIPS - kernels 2.2 2.4 et 2.6
Pour effectuer une installation modulaire de KLIPS :
cd /usr/src/freeswan-2.03
make oldmod
make minstall
Pour effectuer lier statiquement KLIPS à votre noyau :
cd /usr/src/freeswan-2.03
make oldmod
make minstall
L'installation est terminée
Installation à partir des RPM
Ces instructions s'appliquent à des version récentes de RedHat. Mandrake et Suse produisent aussi des RPMs destinés à leurs distributions. Téléchargez les rpms déstinés à votre version du noyau :
ftp://ftp.xs4all.nl/pub/crypto/freeswan/binaries/RedHat-RPMs
Pour les kernels 2.6 n'oubliez pas les rpm Userland comme :
freeswan-userland-2.03.9-0.i386.rpm
Pour les kernels 2.4 :Pour l'installation executer les commandes suivantes :
- Vous pouvez verifier la version de votre kernel par : uname -r
- Téléchargez la version qui vous correspond comme :
freeswan-module-2.03_2.4.20_20.9-0.i386.rpm
- Téléchargez la version de userland qui correspond :
freeswan-userland-2.03_2.4.20_20.9-0.i386.rpm
note : ces utilitaires ne fonctionneront correctement qu'avec RedHat car très sensibles aux variations du kernel
su
rpm -ivh freeswan*.rpm
Génération des clés de chiffrement
La commande ipsec newhostkey permet la génération de nouvelles clés d'identification des hôtes. Plusieurs options permettent de spécifier le mode de génération :
--output : spécifie le chemin et le nom du fichier qui contiendra les cles --bits : spécifie le nombre de bits utilisés pour les cles (2192 bits par défaut) --hostname : intègre le nom d'hôte dans les clesPour de plus amples informations se reporter au man d'IPSEC NEWHOSTKEY.
Configuration Lan to Lan
Nous utiliserons la topologie suivante : LAN A ]----[gwA]----[routeur]---------[routeur]----[gwB]----[ LAN B
Rassembler les informations suivantes :
- IPs des gateways
- Les adresses des réseaux d'extrémité
- déterminer des noms FQDN pour l'identification des gateways
Récupérez les clés publiques IPSec par les commandes :
sur la première gateway :
ipsec showhostkey --left
sur la seconde (par une connexion SSH ou en direct sur la machine par exemple)ipsec showhostkey --right
Editez le fichier /etc/ipsec.conf
Remarque :# configuration générale config setup interfaces="ipsec0=eth0 ipsec1=eth1" klipsdebug=none plutodebug=none # eth0 etant l'interface reliée au LAN x et eth1 etant l'interface reliée à l'inter-réseau conn %default keyingtries=0 authby=rsasig # configuration de la connexion conn gauche-droite left=172.16.0.2 # @ gwB interface sortante leftsubnet=192.168.0.0/24 # @ réseau LAN A exp : 192.x.x.x/24 leftnexthop=172.16.0.1 # @ passerelle par défaut de gwA leftid=@gauche.projet.net # FQDN gwA leftrsasigkey=0sAQNyoS+bzNsiLhqm65ZZ... # clé de gwA right=172.17.0.2 # @ gwB interface sortante rightsubnet=192.168.1.0/24 # @ réseau LAN B rightnexthop=172.17.0.1 # @ passerelle par défaut de gwB rightid=@right.projet.net # FQDN gwB rightrsasigkey=0sAQN++TysjAizAn29jKP... # clé de gwB auto=add # Autorise mais n'effectue pas le # lancement de la connexion lancement
Les fichiers ipsec.conf doivent être identiques sur les 2 gateways
Remplacer auto=add par auto=start pour monter la connexion au demarrage
Tests de connectivité
Démarrer la connexion ipsec auto --up gauche-droiteVous aurez les messages suivants :
104 "gauche-droite" #1: STATE_MAIN_I1: initiate 106 "gauche-droite" #1: STATE_MAIN_I2: sent MI2, expecting MR2 108 "gauche-droite" #1: STATE_MAIN_I3: sent MI3, expecting MR3 004 "gauche-droite" #1: STATE_MAIN_I4: ISAKMP SA established 112 "gauche-droite" #2: STATE_QUICK_I1: initiate 004 "gauche-droite" #2: STATE_QUICK_I2: sent QI2, IPsec SA established {ESP=>0xd5631de5 <0xcfcffb92}Testez la connexion
ipsec verifyVous aurez les messages suivants :
Version check and ipsec on-path [OK] Checking for KLIPS support in kernel [OK] Checking for RSA private key (/etc/ipsec.secrets) [OK] Checking that pluto is running [OK]Testez la connectivité
Un simple ping d'une machine du LAN A vers le LAN B suffit, pour celà :
Pour vérifier que le chiffrement des données qui transitent s'effectue correctement on peut effectuer un dump sur l'une des gateway à l'aide de la commande suivante :D:\>ping 192.168.1.2 Envoi d'une requête 'ping' sur 192.168.1.2 avec 32 octets de données : Réponse de 192.168.1.2 : octets=32 temps=47 ms TTL=126 Réponse de 192.168.1.2 : octets=32 temps=31 ms TTL=126 Réponse de 192.168.1.2 : octets=32 temps=31 ms TTL=126 Réponse de 192.168.1.2 : octets=32 temps=32 ms TTL=126 Statistiques Ping pour 192.168.1.2: Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%), Durée approximative des boucles en millisecondes : minimum = 31ms, maximum = 47ms, moyenne = 35ms
tcpdump -i eth0
Si vous ne disposez pas de TCPDump : http://www.tcpdump.org
Exemple de paquet crypté :
13:25:34.986147 172.16.0.2 > 172.17.0.2: ESP(spi=0xe15ce30a,seq=0x6a9) (ttl 62, id 39151, len 112) 0x0000 4500 0070 98ef 0000 3e32 8b47 ac10 0002 E..p....>2.G.... 0x0010 ac11 0002 e15c e30a 0000 06a9 a8a6 26c0 .....\........&. 0x0020 a732 c5b2 3446 c056 01fe c6a8 6319 1926 .2..4F.V....c..& 0x0030 940b b2e5 6d88 4c8c a989 5722 058b 9e31 ....m.L...W"...1 0x0040 6efb 483a a599 187a 18dd 286e 3453 3e57 n.H:...z..(n4S>W 0x0050 06c3 5362 df7d 4c23 9338 901c 38e4 1154 ..Sb.}L#.8..8..T 0x0060 73be ab06 0628 5302 25b8 c098 4a02 62a5 s....(S.%...J.b.
Conclusion
Cette méthode vous permet d'installer un VPN en un minimum de temps. Il s'agit d'une configuration de base étant donné que la gestion de polices d'accès sont possibles mais ne sont pas abordées dans cet article. Une dernière remarque : si le routage vers le tunnel ne s'effectue pas correctement assurez vous que l'ip forward est bien activé sur les gateways.
0 commentaires:
Enregistrer un commentaire