Beruflich Dokumente
Kultur Dokumente
1 Organisation du BE
Le BE sera effectu en groupes composes de 2 ou 3 machines. Le BE est constitue de 2 manips. La premire se ralise avec 3 machines, la seconde en collaboration entre 2 groupes de 2 machines.
Le plus simple pour obtenir ces cls alatoirement est de se baser sur le priphrique /dev/urandom de votre machine, en procdant ainsi : # Affiche 32 caractres hexadcimaux alatoires : hexdump -e '8/2 "%04x" ' /dev/urandom -n 16; echo # Affiche 48 caractres hexadcimaux alatoires : hexdump -e '8/2 "%04x" ' /dev/urandom -n 24; echo Une fois vos cls AH et ESP sont gnres pour chaque paire de machines (ip source / ip destination), nous pouvons passer la configuration de /etc/ipsec-tools.conf. Dans notre exemple, commenons par la configuration de ce fichier sur 192.168.0.6. #!/usr/sbin/setkey -f # netoyage des SA et de la SPD flush; spdflush; # AH SAs cle de 128 bits : add 192.168.0.6 192.168.0.10 0xc0291ff014dccdd03874d9e8e4cdf3e6; add 192.168.0.10 192.168.0.6 0x96358c90783bbfa3d7b196ceabe0536b;
ah
0x200
-A
hmac-md5
ah
0x300
-A
hmac-md5
# ESP SAs cle de 192 bits (168 + 24 de parite) : add 192.168.0.6 192.168.0.10 esp 0x201 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831; add 192.168.0.10 192.168.0.6 esp 0x301 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df; # Normes de securite imposees : spdadd 192.168.0.6 192.168.0.10 any esp/transport//require ah/transport//require; spdadd 192.168.0.10 192.168.0.6 any esp/transport//require ah/transport//require;
-E
3des-cbc
-E
3des-cbc
-P
out
ipsec
-P
in
ipsec
Puis celle sur 192.168.0.10 (on recopie gnralement le fichier ipsec-tools.conf via scp d'une machine l'autre) :
# AH SAs cle de 128 bits : add 192.168.0.6 192.168.0.10 ah 0x200 -A 0xc0291ff014dccdd03874d9e8e4cdf3e6; add 192.168.0.10 192.168.0.6 ah 0x300 -A 0x96358c90783bbfa3d7b196ceabe0536b; # ESP SAs cle de 192 bits (168 + 24 de parite) : add 192.168.0.6 192.168.0.10 esp 0x201 -E 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831; add 192.168.0.10 192.168.0.6 esp 0x301 -E 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df; # # Cration des politiques (simplistes) : spdadd 192.168.0.6 192.168.0.10 any esp/transport//require ah/transport//require; spdadd 192.168.0.10 192.168.0.6 any esp/transport//require ah/transport//require;
hmac-md5 hmac-md5
3des-cbc 3des-cbc
-P -P
in out
ipsec ipsec
Notez la seule diffrence entre ces fichiers : l'ordre IN / OUT dans les 2 lignes SPDADD ... Rappelons que : setkey : cette commande sert paramtrer les SA et les SP dans le noyau Linux. On peut l'utiliser en "ligne de commande" ou lui passer un fichier de configuration en argument. racoon : c'est le dmon IKE qui tablira les SA la demande. Lancez l'utilisation d' IPSec en invoquant setkey /etc/init.d/setkey start Ensuite, vous pourrez vrifier que le dialogue entre 2 machines utilisant IPSec est bien chiffr / authentifi grce tcpdump ou en utilisant wiresharke: avec Tcpdump # tcpdump -n "host 192.168.0.6"
01:23:27.996891 IP 192.168.0.10 > 192.168.0.6: AH(spi=0x00000302,seq=0x1): ESP(spi=0x00000303,seq=0x1), length 88 01:23:27.998282 IP 192.168.0.6 > 192.168.0.10: AH(spi=0x00000202,seq=0x277ac2): ESP(spi=0x00000203,seq=0x277ac2), length 88 15653 packets received by filter 0 packets dropped by kernel
3.2.1. Mise en place et configuration avec Racoon Installation du rseau A. Mettez en place la configuration IP de chaque rseau d'entreprise B. Vrifiez que chaque routeur de l'entreprise peut se connecter aux autres routeurs d'entreprise mais que les machines internes ne peuvent pas dialoguer. Gnration des certificats Les cls et certificats numriques des diffrentes parties (autorits de certification et les 2 routeurs) vont tre sur un des 2 routeurs dans le cadre de ce TP. Ils seront gnrs dans le rpertoire /etc/racoon/certs. Sur le routeur que nous appellerons routeur 1, effectuer les commandes: 1. Crz le rpertoire etc/racoon/certs s'il n'xiste pas 2. gnrez le certificat de l'AC l'aide de la commande /usr/lib/ssl/CA.pl -newca (qui gnre notamment le fichier demoCA/cacert.pem). Il se peut que CA.pl se trouve
dans /usr/lib/ssl/misc/CA.pl 3. gnrez le certificat du routeur 1 l'aide des commandes : 1. gnration d'une requte de certification : /usr/lib/ssl/CA.pl -newreq (qui gnre notamment le fichier newreq.pem (certificat temporaire non sencore sign) et et la cl prive chiffre dans newkey.pem) puis 2. signature du certificat temporaire (cr dans l'tape prcdente) avec la cl prive de l'autorit racine (CA) et gnration du certificat du routeur : /usr/lib/ssl/CA.pl -sign. 3. Le certificat gnr s'appelle newcert.pem. Renommez le par ex. en certRzo1.pem 4. Vous devez galement gnrer un fichier de cl prive en clair. Pour cela, excutez la commande openssl rsa -in newkey.pem -out keyRzo1.pem. Le fichier contenant la cl est donc keyRzo1.pem. 5. Dans le rpertoire certs, recopiez demoCA/cacert.pem et renomez le CAfile.pem. Excutez ensuite la commande ln -s CAfile.pem `openssl x509 -noout -hash < CAfile.pem`.0 A quoi sert cette commande ? Vrifier que vous avez les droits ncessaires (# chmod go-rwx host.key). Dans notre cas, # chmod go-rwx keyRzO1.pem. Maintenant sur le routeur 2 : 6. gnrez le certificat du routeur 2 l'aide des la mme manip et nommez le certRzo2.pem. De mme gnrez la cl prive dans le fichier keyRzO2.pem. 7. Dans le rpertoire certs, recopiez demoCA/cacert.pem et renomez le CAfile.pem. Excutez ensuite la commande ln -s CAfile.pem `openssl x509 -noout -hash < CAfile.pem`.0 A quoi sert cette commande ? Vrifier que vous avez les droits ncessaires (# chmod go-rwx host.key). Dans notre cas, # chmod go-rwx keyRzO2.pem. 8. Sur le routeur 1 dans /etc/racoon/certs, vous devez donc avoir certRezo1.pem, keyRezo1.pem, CAfile.pem, ainsi que le lien symbolique gnr par la commande cidessus. De mme, sur le routeur 2, vous devez donc avoir certRezo2.pem, keyRezo2.pem, CAfile.pem, ET LE lien. Il vous faut donc recopier depuis le routeur 1 sur le routeur 2, les 3 premiers fichiers et gnrer le lien directement sur le routeur 2. Prparation du tunnel Il est tout d'abord ncessaire de dcrire tous les lments ncessaires l'tablissement du tunnel Ipsec. Pour cela, il vous fat complter les fichiers de configurations. Ceux-ci diffrent d'une distribution une autre. Dans ce BE, on va vous donner deux exemples. Distribution 1 : fichiers config : /etc/racoon/racooncert.conf et /etc/racoon/tunnel.conf. /etc/racoon/racooncert.conf identifie l'extrmit oppose du tunnel (@IP) et prcise les mthodes d'authentification choisies ainsi que les emplacements des cls et certificats locaux. Il dcrit galement quels sont les rseaux (@IP) qui seront relis par le tunnel et quels sont les mcanismes de chiffrement ventuellement mis en palce pour ce rseaux. Le fichier /etc/racoon/tunnel.conf dcrit quant lui la politique de scurit mise en place pour ce tunnel. Il prcise pour chaque sens de communication si le mode ESP ou AH doit tre utilis. 1. Compltez le fichier racooncert.conf en ce qui concerne les @IP et les cls 2. Compltez tunnel.conf en ce qui concerne les @IP des 2 rseaux pour lesquels on
dsire raliser un tunnel. Mise en place du tennuel Ipsec 1. Chargez manuellement les modules ah4, esp4 et ipcom, ncessaire au bon fonctionnement des mcanismes crypto de IPsec. 2. Chargez le fichier de configuration du tunnel avec la commande setkey -f /etc/racoon/tunnel.conf 3. Lancez ensuite le dmon racoon avec la commande racoon -F -d /etc/racoon/racooncert.conf 4. Vrifiez l'tablissement du tunnel en essayant de faire communiquer les 2 rsaeaux d'entreprises. Vrifiez notamment que les donnes sont bien chiffres dans le tunnel. Distribution 2 : fichiers config : /etc/racoon/certs/ et /etc/racoon/racoon-tool.conf . Mettre les cls et certificats dans /etc/racoon/certs/
Dans cet exemple de configuration de racoon-tool.conf j'ai une configuration d'IPsec entre : - un hte nomm "host.example.org" avec une adresse IP 333.333.333.333 et "guest.example.org" ayant comme @IP 444.444.444.444.
Le fichier contient quelques valeurs par dfaut son dbut ainsi que plusieurs exemples comments. Laissez ces paramtres et ajouter les lignes suivantes la fin.
peer(%default): certificate_type: x509 host.crt host.key my_identifier: fqdn host.example.org verify_identifier: on authentication_method[0]: rsasig connection(%default): src_ip: 333.333.333.333 # Guest peer(444.444.444.444): peers_identifier: fqdn guest.example.org connection(guest): dst_ip: 444.444.444.444 admin_status: enabled #
Avec cette configuration, on n'accepte pas les paquets non IPSec provenant de guest.example.org, et on n'envoie que des paquets IPSec ce hte. Vous rptez cette dernire section (dlimite par #) pour tous les htes avec qui vous souhaitez communiquer de manire scurise.
Le lancement de racoon peut se faire avec la commande: /etc/init.d/racoon start
Pre-Shared Keys Supprimer "authentication_method[0]", "certificate_type", et "my_identifier" pour utiliser les valeurs par dfaut qui utilisent PSKs. Changer "peers_identifier" mettre dans "address" (et seulement la chaine "address" ) aux sections de chaque hte. Editer /etc/racoon/psk.txt pour contenir les cls de chaque hte (qui doit tre diffrent pour des raisons de scurit). Le format ressemble au fichier /etc/hosts, mais la seconde colonne est la cls et non pas le nom du hte. Les cls peuvent tre n'importe quel format; les cls hexadcimales, commencent bien videment par "0x".
ayant des adresses non routables donc) puissent se connecter a cette machine quelconque de l'Internet?