Red Hat Enterprise Linux 4: Guide de sécurité | ||
---|---|---|
Précédent | Chapitre 6. Réseaux privés virtuels (VPN) | Suivant |
IPsec peut également être configuré de manière à connecter un réseau entier (comme un LAN ou un WAN) à un réseau distant grâce à une connexion de réseau à réseau. Une connexion de réseau à réseau nécessite la configuration de routeurs IPsec sur chaque extrémité des réseaux connectés afin de manipuler et transférer les informations d'un noeud sur un LAN à un noeud sur un LAN distant. La Figure 6-1 illustre une connexion tunnelée de réseau à réseau avec IPsec.
Le diagramme représente deux LAN différents séparés par l'internet. Ces LAN utilisent des routeurs IPsec pour l'authentification et mettent en oeuvre une connexion à l'aide d'un tunnel sécurisé à travers l'internet. Les paquets qui sont interceptés en transit, nécessiteront un décryptage force brute afin de briser le chiffre qui protège les paquets entre ces LAN. Le processus de communication depuis un noeud sur la plage d'IP 192.168.1.0/24 à un autre noeud sur 192.168.2.0/24 est complètement transparent aux noeuds car le traitement, cryptage/décryptage et routage de ces paquets IPsec sont complètement effectués par le routeur IPsec.
Parmi les informations nécessaires à une connexion de réseau à réseau figurent :
Les adresses IP accessibles de l'extérieur des routeurs IPsec dédiés
Les plages d'adresses réseau du LAN/WAN servies par les routeurs IPsec (comme 192.168.0.0/24 or 10.0.1.0/24)
Les adresses IP des périphériques de passerelle qui dirigent les données depuis les noeuds du réseau sur l'internet
Un nom unique pour identifier la connexion IPsec et la différencier d'autres périphériques ou connexions (par exemple, ipsec0)
Une clé fixe ou générée automatiquement par racoon
Une clé d'authentification pré-partagée qui est utilisée pour établir la connexion et effectuer l'échange des clés de cryptage lors de la session.
Par exemple, imaginons que le LAN A (lana.example.com) et le LAN B (lanb.example.com) souhaitent se connecter à l'un et l'autre à travers un tunnel IPsec. L'adresse réseau du LAN A est présente dans la gamme 192.168.1.0/24, alors que le LAN B utilise la gamme 192.168.2.0/24. L'adresse IP de la passerelle est 192.168.1.254 pour le LAN A et 192.168.2.254 pour le LAN B. Les routeurs IPsec sont séparés de chaque passerelle du LAN et utilisent deux périphériques réseau : eth0 est attribué une adresse IP statique accessible de l'extérieur qui permet d'accéder à l'internet, alors que eth1 agit en tant que point de routage pour traiter et transmettre les paquets du LAN d'un noeud de réseau aux noeuds de réseau distant.
La connexion IPsec entre chaque réseau utilise une clé pré-partagée ayant la valeur r3dh4tl1nux et les administrateurs de A et B acceptent de laisser racoon générer et partager automatiquement une clé d'authentification entre chaque routeur IPsec. L'administrateur du LAN A décide de nommer la connexion IPsec ipsec0, alors que l'administrateur du LAN B nomme la connexion IPsec ipsec1.
L'extrait ci-dessous est un exemple de fichier ifcfg pour une connexion IPsec de réseau à réseau pour le LAN A. Le nom unique pour l'identification de la connexion étant ipsec1, le fichier créé se nomme logiquement /etc/sysconfig/network-scripts/ifcfg-ipsec1.
TYPE=IPSEC ONBOOT=yes IKE_METHOD=PSK SRCGW=192.168.1.254 DSTGW=192.168.2.254 SRCNET=192.168.1.0/24 DSTNET=192.168.2.0/24 DST=X.X.X.X |
La connexion est configurée de manière à être lancée au démarrage (ONBOOT=yes) et utilise la méthode de clés pré-partagées d'authentification (IKE_METHOD=PSK). L'administrateur du LAN A saisit la passerelle de destination qui est la passerelle du LAN B (DSTGW=192.168.2.254) ainsi que la passerelle source qui est l'adresse IP de la passerelle du LAN A (SRCGW=192.168.1.254). L'administrateur saisit ensuite le réseau de destination qui est la gamme de réseau du LAN B (DSTNET=192.168.2.0/24) ainsi que le réseau source (SRCNET=192.168.1.0/24). L'administrateur saisit finalement l'adresse IP de destination qui est l'adresse IP accessible de l'extérieur du LAN B (X.X.X.X).
L'extrait suivant représente un fichier de clés pré-partagées nommé /etc/sysconfig/network-scripts/keys-ipsecX (où X a la valeur 0 pour le LAN A et la valeur 1 pour le LAN B) que les deux réseaux utilisent pour s'authentifier l'un auprès de l'autre. Le contenu de ce fichier devrait être identique et ne devrait pouvoir être lu et écrit que par le super-utilisateur.
IKE_PSK=r3dh4tl1nux |
![]() | Important | |
---|---|---|
Pour changer le fichier keys-ipsecX de manière à ce que seul le super-utilisateur puisse lire et modifier ce fichier, exécutez la commande suivante après avoir créé le fichier en question :
|
Pour changer la clé d'authentification, éditez le fichier keys-ipsecX sur les deux routeurs IPsec. Les deux clés doivent être identiques pour une meilleure connectivité.
L'extrait suivant représente le fichier de configuration /etc/racoon/racoon.conf pour la connexion IPsec. Notez que la ligne include en bas du fichier est automatiquement générée et apparaît seulement si le tunnel IPsec est en cours d'exécution.
# Racoon IKE daemon configuration file. # See 'man racoon.conf' for a description of the format and entries. path include "/etc/racoon"; path pre_shared_key "/etc/racoon/psk.txt"; path certificate "/etc/racoon/certs"; sainfo anonymous { pfs_group 2; lifetime time 1 hour ; encryption_algorithm 3des, blowfish 448, rijndael ; authentication_algorithm hmac_sha1, hmac_md5 ; compression_algorithm deflate ; } include "/etc/racoon/X.X.X.X.conf" |
L'extrait ci-dessous correspond au fichier de configuration pour la connexion à un réseau distant. Le fichier porte le nom X.X.X.X.conf (remplacez l'élément X.X.X.X par l'adresse IP du routeur IPsec distant). Notez que ce fichier est automatiquement généré une fois que le tunnel IPsec est activé et ne devrait pas être directement édité.
; remote X.X.X.X { exchange_mode aggressive, main; my_identifier address; proposal { encryption_algorithm 3des; hash_algorithm sha1; authentication_method pre_shared_key; dh_group 2 ; } } |
Avant de lancer la connexion IPsec, la redirection d'IP devrait être activée dans le noyau. En tant que super-utilisateur, dans une invite de shell, activez la redirection d'IP :
Éditez /etc/sysctl.conf et réglez net.ipv4.ip_forward sur 1.
Exécutez la commande suivante afin d'activer le changement :
sysctl -p /etc/sysctl.conf |
Pour lancer la connexion IPsec, redémarrez les routeurs IPsec ou exécutez la commande suivante en tant que super-utilisateur sur chaque routeur :
/sbin/ifup ipsec0 |
Les connexions sont activées et les deux LAN A et B peuvent communiquer entre eux. Les routes sont créées automatiquement via le script d'initialisation appelé en exécutant ifup sur la connexion IPsec. Pour afficher une liste de routes pour le réseau, exécutez la commande suivante :
/sbin/ip route list |
Pour tester la connexion IPsec, exécutez l'utilitaire tcpdump sur le périphérique routable de l'extérieur (eth0 dans cet exemple) afin d'afficher les paquets du réseau étant transférés entre les hôtes (ou réseaux) et vérifiez qu'ils sont bien cryptés via IPsec. Par exemple, pour vérifier la connectivité IPsec du LAN A, saisissez la commande suivante :
tcpdump -n -i eth0 host lana.example.com |
Le paquet doit inclure un en-tête AH et devrait être affiché en tant que paquet ESP. ESP signifie qu'il est crypté. Par exemple (les obliques inverses représentent la continuité d'une ligne) :
12:24:26.155529 lanb.example.com > lana.example.com: AH(spi=0x021c9834,seq=0x358): \ lanb.example.com > lana.example.com: ESP(spi=0x00c887ad,seq=0x358) (DF) \ (ipip-proto-4) |
Précédent | Sommaire | Suivant |
Configuration d'hôte à hôte via IPsec | Niveau supérieur | Pare-feu |