Tunnel ipsec
Ce qui suit est extrait de http://www.pintaric.net/index.php?post/2009/05/22/OVH%3A-MIse-en-place-d-un-cluster-Haute-Disponibilit%C3%A9, mais chez moi (debian lenny, le aes-ctr marche pas en 224 bits)
Pour comprendre les modes ah et esp (authentification et transport), voir http://www.frameip.com/ipsec/#2.2%C2%A0-_Les_protocoles_%C3%A0_la_base_dIPsec
En gros, ah sert à authentifier les paquets (ils viennent bien de la bonne machine et n'ont pas été modifiés depuis l'émission) et esp sert à chiffre le contenu. En combinant les deux on a du vpn.
Dans l'exemple qui suit, on va utiliser les mêmes clés sur les 2 serveurs, 160 bits avec hmac-sha1 pour ah et 192 bits avec 3des-cbc pour esp (man setkey pour voir la liste des algo de chiffrement possibles et la longueurs des clés nécessaires).
# on installe le paquet qui va bien aptitude install ipsec-tools # On prépare une clé 160 bits (40 caractères hexa soit 20 octets) avec hexdump -e '8/2 "%04x"' /dev/urandom -n 20 # et une autre 192 bits (ie 48 car hexa et 24 octets) hexdump -e '8/2 "%04x"' /dev/urandom -n 24
Ensuite, sur le serveur d'ip aaaa on peut mettre dans /etc/ipsec-tools.conf
#!/usr/sbin/setkey -f flush; spdflush; # AH add bbbb aaaa ah 24500 -A hmac-sha1 0x<cle160>; add aaaa bbbb ah 15700 -A hmac-sha1 0x<cle160>; # ESP add bbbb aaaa esp 24501 -E 3des-cbc 0x<cle192>; add aaaa bbbb esp 15701 -E 3des-cbc 0x<cle192>; # Transport spdadd aaaa bbbb any -P out ipsec esp/transport//require ah/transport//require; spdadd bbbb aaaa any -P in ipsec esp/transport//require ah/transport//require;
Et sur le serveur d'ip bbbb
#!/usr/sbin/setkey -f flush; spdflush; # AH add bbbb aaaa ah 24500 -A hmac-sha1 0x<cle160>; add aaaa bbbb ah 15700 -A hmac-sha1 0x<cle160>; # ESP add bbbb aaaa esp 24501 -E 3des-cbc 0x<cle192>; add aaaa bbbb esp 15701 -E 3des-cbc 0x<cle192>; # Transport spdadd bbbb aaaa any -P out ipsec esp/transport//require ah/transport//require; spdadd aaaa bbbb any -P in ipsec esp/transport//require ah/transport//require;
Après un /etc/init.d/setkey restart
ça devrait être bon, tester avec un ping et tcpdump pour voir si on utilise bien ah et esp lors de la causette.