18.3. Configuration d'une connexion Ethernet statique avec authentification réseau 802.1X à l'aide du rôle de système RHEL réseau
À l'aide du rôle système network
RHEL, vous pouvez automatiser la création d'une connexion Ethernet qui utilise la norme 802.1X pour authentifier le client. Par exemple, ajoutez à distance une connexion Ethernet pour l'interface enp1s0
avec les paramètres suivants en exécutant un script Ansible :
-
Une adresse IPv4 statique -
192.0.2.1
avec un masque de sous-réseau/24
-
Une adresse IPv6 statique -
2001:db8:1::1
avec un masque de sous-réseau/64
-
Une passerelle par défaut IPv4 -
192.0.2.254
-
Une passerelle par défaut IPv6 -
2001:db8:1::fffe
-
Un serveur DNS IPv4 -
192.0.2.200
-
Un serveur DNS IPv6 -
2001:db8:1::ffbb
-
Un domaine de recherche DNS -
example.com
-
802.1X authentification réseau utilisant le protocole d'authentification extensible (EAP)
TLS
Effectuez cette procédure sur le nœud de contrôle Ansible.
Conditions préalables
- Vous avez préparé le nœud de contrôle et les nœuds gérés
- Vous êtes connecté au nœud de contrôle en tant qu'utilisateur pouvant exécuter des séquences sur les nœuds gérés.
-
Le compte que vous utilisez pour vous connecter aux nœuds gérés dispose des autorisations
sudo
. - Les nœuds gérés ou les groupes de nœuds gérés sur lesquels vous souhaitez exécuter cette séquence sont répertoriés dans le fichier d'inventaire Ansible
- Le réseau prend en charge l'authentification réseau 802.1X.
- Les nœuds gérés utilisent NetworkManager.
Les fichiers suivants, nécessaires à l'authentification TLS, existent sur le nœud de contrôle :
-
La clé du client est stockée dans le fichier
/srv/data/client.key
. -
Le certificat du client est stocké dans le fichier
/srv/data/client.crt
. -
Le certificat de l'autorité de certification (CA) est stocké dans le fichier
/srv/data/ca.crt
.
-
La clé du client est stockée dans le fichier
Procédure
Créez un fichier playbook, par exemple
~/enable-802.1x.yml
avec le contenu suivant :--- - name: Configure an Ethernet connection with 802.1X authentication hosts: managed-node-01.example.com tasks: - name: Copy client key for 802.1X authentication copy: src: "/srv/data/client.key" dest: "/etc/pki/tls/private/client.key" mode: 0600 - name: Copy client certificate for 802.1X authentication copy: src: "/srv/data/client.crt" dest: "/etc/pki/tls/certs/client.crt" - name: Copy CA certificate for 802.1X authentication copy: src: "/srv/data/ca.crt" dest: "/etc/pki/ca-trust/source/anchors/ca.crt" - include_role: name: rhel-system-roles.network vars: network_connections: - name: enp1s0 type: ethernet autoconnect: yes ip: address: - 192.0.2.1/24 - 2001:db8:1::1/64 gateway4: 192.0.2.254 gateway6: 2001:db8:1::fffe dns: - 192.0.2.200 - 2001:db8:1::ffbb dns_search: - example.com ieee802_1x: identity: user_name eap: tls private_key: "/etc/pki/tls/private/client.key" private_key_password: "password" client_cert: "/etc/pki/tls/certs/client.crt" ca_cert: "/etc/pki/ca-trust/source/anchors/ca.crt" domain_suffix_match: example.com state: up
Exécutez le manuel de jeu :
# ansible-playbook ~/enable-802.1x.yml
Ressources supplémentaires
-
/usr/share/ansible/roles/rhel-system-roles.network/README.md
fichier