Red Hat Enterprise Linux 4: Guide de sécurité | ||
---|---|---|
Précédent | Chapitre 6. Réseaux privés virtuels (VPN) | Suivant |
Le protocole IPsec peut être configuré de sorte à connecter un bureau ou un poste de travail à un autre au moyen d'une connexion d'hôte à hôte. Ce type de connexion utilise le réseau auquel chaque hôte est connecté pour créer un tunnel sécurisé entre eux. Les pré-requis d'une connexion d'hôte à hôte sont minimaux, tout comme la configuration d'IPsec sur chaque hôte. Pour créer une connexion IPsec, tout ce dont les hôtes ont besoin est une connexion dédiée à un réseau porteur (comme l'internet) et Red Hat Enterprise Linux.
La première étape dans la création d'une connexion consiste à recueillir des informations sur le système et sur le réseau s'appliquant à chaque poste de travail. Pour une connexion d'hôte à hôte, les informations suivantes sont nécessaires :
L'adresse IP des deux hôtes
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, imaginez que le poste de travail A et le poste de travail B souhaitent se connecter à l'un et l'autre grâce à un tunnel IPsec. Ils souhaitent utiliser une clé pré-partagée avec la valeur foobarbaz et les utilisateurs acceptent de laisser racoon générer automatiquement et partager une clé d'authentification entre chaque hôte. Les deux utilisateurs hôtes décident de nommer leurs connexions ipsec0.
L'extrait ci-dessous est un exemple de fichier ifcfg pour une connexion IPsec d'hôte à hôte d'un poste de travail A à un poste de travail B (le nom unique pour l'identification de la connexion est ipsec0, le fichier créé se nomme donc /etc/sysconfig/network-scripts/ifcfg-ipsec0) :
DST=X.X.X.X TYPE=IPSEC ONBOOT=yes IKE_METHOD=PSK |
Le poste de travail A devrait remplacer X.X.X.X par l'adresse IP du poste de travail B, alors que ce dernier devrait remplacer X.X.X.X par l'adresse IP du poste de travail A. La connexion est définie de manière à être lancée au démarrage (ONBOOT=yes) et utilise la méthode de clé pré-partagée d'authentification (IKE_METHOD=PSK).
L'extrait suivant représente un fichier de clés pré-partagées (nommé /etc/sysconfig/network-scripts/keys-ipsec0) que les deux postes de travail utilisent pour s'authentifier l'un auprès de l'autre. Le contenu de ce fichier devrait être identique sur les deux postes et ne devrait pouvoir être lu et écrit que par le super-utilisateur (root).
IKE_PSK=foobarbaz |
![]() | Important | |
---|---|---|
Pour changer le fichier keys-ipsec0 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-ipsec0 sur les deux postes de travail. Les deux clés doivent être identiques pour une meilleure connectivité.
L'extrait ci-dessous correspond au fichier de configuration pour la première phase de connexion à un hôte distant. Le fichier porte le nom X.X.X.X.conf (X.X.X.X est remplacé 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 ; } } |
Le fichier de configuration par défaut de la phase 1 créé lorsqu'une connexion IPsec est initialisée, contient les instructions suivantes utilisées par l'implémentation Red Hat Enterprise Linux d'IPsec :
Spécifie que les stanzas subséquents de ce fichier de configuration s'appliquent uniquement au noeud distant identifié par l'adresse IP X.X.X.X.
La configuration par défaut pour IPsec sur Red Hat Enterprise Linux utilise un mode d'authentification agressif qui réduit le dépassement de connexions tout en permettant la configuration de plusieurs connexions IPsec avec plusieurs hôtes.
Définit la méthode d'identification à utiliser lors de l'authentification de noeuds. Red Hat Enterprise Linux utilise les adresses IP pour identifier les noeuds.
Définit le chiffre de cryptage utilisé durant l'authentification. 3DES (Triple Data Encryption Standard) est utilisé par défaut.
Spécifie l'algorithme de hachage utilisé durant la négociation de la première phase entre les noeuds. La version 1 de Secure Hash Algorithm est utilisé par défaut.
Définit la méthode d'authentification utilisée durant la négociation entre noeuds. Red Hat Enterprise Linux utilise par défaut les clés pré-partagées pour l'authentification.
Spécifie le numéro de groupe Diffie-Hellman pour établir les clés de session générées dynamiquement. Le groupe 1024-bit est utilisé par défaut.
Les fichiers /etc/racoon/racoon.conf devraient être identiques sur tous les noeuds IPsec à part l'instruction include "/etc/racoon/X.X.X.X.conf". Cette dernière (et le fichier auquel elle fait référence) est générée lorsque le tunnel IPsec est activé. Pour le poste de travail A, X.X.X.X dans l'instruction include représente l'adresse IP du poste de travail B. Le cas contraire est vrai pour le poste de travail B. L'exemple suivant représente un fichier racoon.conf typique lorsque la connexion IPsec est activée.
# 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" |
Ce fichier racoon.conf par défaut inclut les chemins définis pour la configuration IPsec, les fichiers de clés pré-partagées et les certificats. Les champs de sainfo anonymous décrivent la SA de la deuxième phase entre les noeuds IPsec — la nature de la connexion IPsec (y compris les algorithmes de cryptage supportés utilisés) et la méthode d'échange de clés. La liste suivante définit les champs de la deuxième phase :
Dénote que la SA peut être initialisée de façon anonyme avec tout pair de façon à ce que les références IPsec correspondent.
Définit le protocole d'échange de clés Diffie-Hellman qui détermine la méthode avec laquelle les noeuds IPsec établissent une clé de session temporaire mutuelle pour la deuxième phase de la connectivité IPsec. Par défaut, l'implémentation Red Hat Enterprise Linux d'IPsec utilise le groupe 2 (ou modp1024) des groupes d'échange de clés cryptographiques Diffie-Hellman. Ce groupe utilise une exponentiation modulaire de 1024-bit qui empêche les agresseurs de décrypter les transmissions IPsec précédentes même si la clé privée est compromise.
Ce paramètre spécifie le cycle de vie d'une SA et peut être quantifié par durée de temps ou par octets de données. L'implémentation Red Hat Enterprise Linux d'IPsec spécifie une durée de vie d'une heure.
Spécifie les chiffres de cryptage supportés pour la deuxième phase. Red Hat Enterprise Linux supporte 3DES, 448-bit Blowfish et Rijndael (le chiffre utilisé dans AES, de l'anglais Advanced Encryption Standard).
Liste les algorithmes de hachage supportés pour l'authentification. Les modes supportés sont les codes de hachage d'authentification de message (HMAC) sha1 et md5.
Définit l'algorithme de compression Deflate pour le support IPCOMP (IP Payload Compression) qui permet des transmissions de datagrammes d'IP plus rapides sur des connexions lentes.
Pour lancer la connexion, redémarrez le poste de travail ou exécutez la commande suivante en tant que super-utilisateur sur chaque hôte :
/sbin/ifup ipsec0 |
Pour tester la connexion IPsec, exécutez l'utilitaire tcpdump afin d'afficher les paquets réseau transférés entre les hôtes (ou les réseaux) et vérifiez qu'ils sont bien cryptés via IPsec. Le paquet devrait inclure un en-tête AH et devrait apparaître comme paquet ESP. ESP signifie qu'il est crypté. Par exemple :
17:13:20.617872 pinky.example.com > ijin.example.com: \ AH(spi=0x0aaa749f,seq=0x335): ESP(spi=0x0ec0441e,seq=0x335) (DF) |
Précédent | Sommaire | Suivant |
Installation de IPsec | Niveau supérieur | Configuration de réseau à réseau via IPsec |