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 !