Red Hat Training
A Red Hat training course is available for RHEL 8
17.2. Configuración de una conexión Ethernet estática con autenticación de red 802.1X mediante RHEL System Roles
Utilizando RHEL System Roles, puede automatizar la creación de una conexión Ethernet que utilice el estándar 802.1X para autenticar al cliente. Este procedimiento describe cómo añadir remotamente una conexión Ethernet para la interfaz enp1s0
con la siguiente configuración mediante la ejecución de un playbook de Ansible:
-
Una dirección IPv4 estática -
192.0.2.1
con una máscara de subred/24
-
Una dirección IPv6 estática -
2001:db8:1::1
con una máscara de subred/64
-
Una pasarela por defecto IPv4 -
192.0.2.254
-
Una pasarela por defecto IPv6 -
2001:db8:1::fffe
-
Un servidor DNS IPv4 -
192.0.2.200
-
Un servidor DNS IPv6 -
2001:db8:1::ffbb
-
Un dominio de búsqueda DNS -
example.com
-
802.Autenticación de red 1X mediante el protocolo de autenticación extensible (EAP)
TLS
Ejecute este procedimiento en el nodo de control de Ansible.
Requisitos previos
-
Los paquetes
ansible
yrhel-system-roles
se instalan en el nodo de control. -
Si utiliza un usuario remoto diferente a
root
cuando ejecuta el libro de jugadas, debe tener los permisos apropiados desudo
en el nodo gestionado. - La red es compatible con la autenticación de red 802.1X.
- El nodo gestionado utiliza NetworkManager.
Los siguientes archivos necesarios para la autenticación TLS existen en el nodo de control:
-
La clave del cliente almacenada en el archivo
/srv/data/client.key
. -
El certificado del cliente almacenado en el archivo
/srv/data/client.crt
. -
El certificado de la Autoridad de Certificación (CA) almacenado en el archivo
/srv/data/ca.crt
.
-
La clave del cliente almacenada en el archivo
Procedimiento
Si el host en el que desea ejecutar las instrucciones del libro de jugadas aún no está inventariado, añada la IP o el nombre de este host al archivo de inventario de Ansible
/etc/ansible/hosts
:node.example.com
Cree el libro de jugadas
~/enable-802.1x.yml
con el siguiente contenido:--- - name: Configure an Ethernet connection with 802.1X authentication hosts: node.example.com become: true 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: linux-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
Ejecuta el libro de jugadas:
Para conectarse como usuario de
root
al host gestionado, introduzca:#
ansible-playbook -u root ~/enable-802.1x.yml
Para conectarse como usuario al host gestionado, introduzca:
#
ansible-playbook -u user_name --ask-become-pass ~/ethernet-static-IP.yml
La opción
--ask-become-pass
asegura que el comandoansible-playbook
solicite la contraseñasudo
del usuario definido en la opción-u user_name
opción.
Si no se especifica la opción
-u user_name
ansible-playbook
se conecta al host gestionado como el usuario que ha iniciado la sesión en el nodo de control.
Recursos adicionales
-
Para obtener detalles sobre los parámetros utilizados en
network_connections
y para obtener información adicional sobre el rol del sistemanetwork
, consulte el archivo/usr/share/ansible/roles/rhel-system-roles.network/README.md
. -
Para más detalles sobre los parámetros 802.1X, consulte la sección
ieee802_1x
en el archivo/usr/share/ansible/roles/rhel-system-roles.network/README.md
. -
Para obtener más información sobre el comando
ansible-playbook
, consulte la página de manualansible-playbook(1)
.