6.7. Configuration d'un VPN maillé


Un réseau VPN maillé, également connu sous le nom de VPN any-to-any, est un réseau dont tous les nœuds communiquent à l'aide d'IPsec. La configuration prévoit des exceptions pour les nœuds qui ne peuvent pas utiliser IPsec. Le réseau VPN maillé peut être configuré de deux manières :

  • Pour exiger IPsec.
  • Pour privilégier IPsec tout en autorisant un retour à la communication en texte clair.

L'authentification entre les nœuds peut être basée sur des certificats X.509 ou sur des extensions de sécurité DNS (DNSSEC).

La procédure suivante utilise des certificats X.509. Ces certificats peuvent être générés à l'aide de n'importe quel système de gestion d'autorité de certification (CA), tel que le système de certificats Dogtag. Dogtag suppose que les certificats de chaque nœud sont disponibles au format PKCS #12 (fichiers .p12), qui contient la clé privée, le certificat du nœud et le certificat de l'autorité de certification racine utilisé pour valider les certificats X.509 des autres nœuds.

Chaque nœud a une configuration identique à l'exception de son certificat X.509. Cela permet d'ajouter de nouveaux nœuds sans reconfigurer les nœuds existants du réseau. Les fichiers PKCS #12 requièrent un "nom convivial", pour lequel nous utilisons le nom "nœud" afin que les fichiers de configuration faisant référence au nom convivial soient identiques pour tous les nœuds.

Conditions préalables

  • Libreswan est installé et le service ipsec est démarré sur chaque nœud.

Procédure

  1. Sur chaque nœud, importer les fichiers PKCS #12. Cette étape nécessite le mot de passe utilisé pour générer les fichiers PKCS #12 :

    # ipsec import nodeXXX.p12
  2. Créez les trois définitions de connexion suivantes pour les profils IPsec required (privé), IPsec optional (privé ou clair) et No IPsec (clair) :

    # cat /etc/ipsec.d/mesh.conf
    conn clear
    	auto=ondemand
    	type=passthrough
    	authby=never
    	left=%defaultroute
    	right=%group
    
    conn private
    	auto=ondemand
    	type=transport
    	authby=rsasig
    	failureshunt=drop
    	negotiationshunt=drop
    	# left
    	left=%defaultroute
    	leftcert=nodeXXXX
    	leftid=%fromcert
            leftrsasigkey=%cert
    	# right
    	rightrsasigkey=%cert
    	rightid=%fromcert
    	right=%opportunisticgroup
    
    conn private-or-clear
    	auto=ondemand
    	type=transport
    	authby=rsasig
    	failureshunt=passthrough
    	negotiationshunt=passthrough
    	# left
    	left=%defaultroute
    	leftcert=nodeXXXX
    	leftid=%fromcert
            leftrsasigkey=%cert
    	# right
    	rightrsasigkey=%cert
    	rightid=%fromcert
    	right=%opportunisticgroup
  3. Ajoutez l'adresse IP du réseau dans la catégorie appropriée. Par exemple, si tous les nœuds résident dans le réseau 10.15.0.0/16 et que tous les nœuds doivent utiliser le cryptage IPsec :

    # echo "10.15.0.0/16" >> /etc/ipsec.d/policies/private
  4. Pour permettre à certains nœuds, par exemple 10.15.34.0/24, de fonctionner avec et sans IPsec, ajoutez ces nœuds au groupe privé ou clair en utilisant :

    # echo "10.15.34.0/24" >> /etc/ipsec.d/policies/private-or-clear
  5. Pour définir un hôte, par exemple 10.15.1.2, qui n'est pas capable d'IPsec dans le groupe clair, utilisez :

    # echo "10.15.1.2/32" >> /etc/ipsec.d/policies/clear

    Les fichiers du répertoire /etc/ipsec.d/policies peuvent être créés à partir d'un modèle pour chaque nouveau nœud, ou peuvent être approvisionnés à l'aide de Puppet ou Ansible.

    Notez que chaque nœud a la même liste d'exceptions ou des attentes différentes en matière de flux de trafic. Deux nœuds peuvent donc ne pas être en mesure de communiquer parce que l'un d'eux nécessite IPsec et que l'autre ne peut pas l'utiliser.

  6. Redémarrez le nœud pour l'ajouter au maillage configuré :

    # systemctl restart ipsec
  7. Une fois l'ajout de nœuds terminé, une commande ping suffit pour ouvrir un tunnel IPsec. Pour savoir quels tunnels un nœud a ouvert :

    # ipsec trafficstatus
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.