Installation ipsec Host-to-Host et Network-to-Network
Tunnel ipsec avec ipsec-tools.
Pour ma part je l'ai mis en place sur des serveurs Redhat et Centos mais peu de chose change si vous êtes sous Debian ou Ubuntu.
Pré-requis :
Rien de spéciale il vous suffit juste d'avoir un ou des systèmes dont la partie réseau fonctionne.
Installation :
Un paquet suffit :
yum install ipsec-tools.i386 ou aptitude install ipsec-tools
Configuration host to host :
machine A : 192.168.1.248 machine B : 192.168.1.240
Il vous faudra créer plusieurs fichiers sur les deux machines, les voici :
vi /etc/sysconfig/network-scripts/ifup-ipsec0
Avec pour contenu (machine A):
DST=192.168.1.240 TYPE=IPSEC ONBOOT=yes IKE_METHOD=PSK
Remplacez 192.168.1.240 par l'adresse ip du serveur distant sur chacune des deux machines, 192.168.1.248 pour la machine B.
vi /etc/sysconfig/network-scripts/keys-ipsec0
Copiez y ceci :
IKE_PSK=PassEuhW0rDD
C'est à faire sur les deux machines aussi.
Pensez à personnaliser la clef.
Configuration network to network :
C'est sensiblement la même chose que pour le host to host.
A faire chaque fois sur les deux routeurs.
Le contenu du fichiers ifcfg-ipsec0 pour le Lan 1 :
TYPE=IPSEC ONBOOT=yes IKE_METHOD=PSK SRCGW=192.168.100.254 DSTGW=192.168.200.254 SRCNET=192.168.100.0/24 DSTNET=192.168.200.0/24 DST=ip-exterieur-lan-2
Il vous faudra aussi éditer le fichier /etc/sysctl.conf pour activer le forward :
# Controls IP packet forwarding net.ipv4.ip_forward = 1
Exécutez la commande suivante pour valider ce changement :
sysctl -p /etc/sysctl.conf
Créer le fichier /etc/sysconfig/network-scripts/keys-ipsecX où X a la valeur 1 pour le Lan 1 et la valeur 2 pour le Lan 2 et copier y ceci :
IKE_PSK=LaN1&LAn2
Pas oublier les droits :
chmod 600 /etc/sysconfig/network-scripts/keys-ipsecX
Une fois lancé sur les deux routeurs les routes sont automatiquement créées (ifup).
Pour afficher la liste de routes réseau, exécutez la commande suivante :
/sbin/ip route list
Lancement :
Un simple :
/sbin/ifup ipsec0
Sur les deux machines biensur.
Cette commande si elle fonctionne :
- Génère le fichier /etc/racoon/192.168.1.240.conf sur la machine A
- Génère le fichier /etc/racoon/192.168.1.248.conf sur la machine B
- Ajoute dans : racoon.conf automatiquement :
include "/etc/racoon/192.168.1.240.conf"; pour la machine A include "/etc/racoon/192.168.1.248.conf"; pour la machine B
- Ajout sur les deux machines dans : psk.txt toujours automatiquement :
192.168.1.240 pAssW0rDD
Test et vérification :
Les seuls moyens que j'ai trouvé pour vérifier que le tunnel fonctionne bien :
Processus racoon est il présent ? :
Vous devez avoir le binaire racoon lancé.
ps -ef | grep racoon root 1820 1 0 14:57 ? 00:00:00 /usr/sbin/racoon
Ou avec tcpdump :
Vérifications de l'encryptage :
Lancé un ping d'une machine vers l'autre et un tcpdump sur une des deux :
tcpdump host 192.168.1.248
Vous devriez voir des AH et ESP qui se promènent :
tcpdump host 192.168.1.240 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 17:16:13.972768 IP 192.168.1.240 > centos1: AH(spi=0x07d48124,seq=0x1a): ESP(spi=0x09d4bd60,seq=0x1a), length 100 17:16:14.051104 IP centos1 > 192.168.1.240: AH(spi=0x0f89ca25,seq=0x1a): ESP(spi=0x0252fd13,seq=0x1a), length 100 17:16:15.012628 IP 192.168.1.240 > centos1: AH(spi=0x07d48124,seq=0x1b): ESP(spi=0x09d4bd60,seq=0x1b), length 100 17:16:15.012735 IP centos1 > 192.168.1.240: AH(spi=0x0f89ca25,seq=0x1b): ESP(spi=0x0252fd13,seq=0x1b), length 100
Voila ça fonctionne heureux ?
Si vous rencontrez des soucis pensez à jeter un œil dans les logs :
tail -f /var/log/messages | grep racoon
Vous en savez plus ? la parole est à vous !