4.5. Autenticação de um cliente RHEL para a rede usando a norma 802.1X
Os administradores freqüentemente usam o Controle de Acesso à Rede (NAC) baseado no padrão IEEE 802.1X para proteger uma rede contra clientes LAN e Wi-Fi não autorizados. Os procedimentos nesta seção descrevem diferentes opções para configurar a autenticação da rede.
4.5.1. Configuração de uma conexão Ethernet estática com autenticação de rede 802.1X usando as funções do sistema RHEL
Usando as funções do Sistema RHEL, você pode automatizar a criação de uma conexão Ethernet que usa o padrão 802.1X para autenticar o cliente. Este procedimento descreve como adicionar remotamente uma conexão Ethernet para a interface enp1s0
com as seguintes configurações, executando um Livro de Jogadas Possível:
-
Um endereço IPv4 estático -
192.0.2.1
com uma máscara de sub-rede/24
-
Um endereço IPv6 estático -
2001:db8:1::1
com uma máscara de sub-rede/64
-
Um gateway padrão IPv4 -
192.0.2.254
-
Um gateway padrão IPv6 -
2001:db8:1::fffe
-
Um servidor DNS IPv4 -
192.0.2.200
-
Um servidor DNS IPv6 -
2001:db8:1::ffbb
-
Um domínio de busca DNS -
example.com
-
802.1X autenticação de rede usando o protocolo
TLS
Extensible Authentication Protocol (EAP)
Execute este procedimento no Nó de controle possível.
Pré-requisitos
-
Os pacotes
ansible
erhel-system-roles
estão instalados no nó de controle. -
Se você usar um usuário remoto diferente de
root
ao executar o playbook, você deve ter as permissões apropriadassudo
no nó gerenciado. - A rede suporta autenticação de rede 802.1X.
- O nó gerenciado utiliza o NetworkManager.
Os seguintes arquivos necessários para autenticação TLS existem no nó de controle:
-
A chave do cliente armazenada no arquivo
/srv/data/client.key
. -
O certificado do cliente armazenado no arquivo
/srv/data/client.crt
. -
O certificado da Autoridade Certificadora (CA) armazenado no arquivo
/srv/data/ca.crt
.
-
A chave do cliente armazenada no arquivo
Procedimento
Se o anfitrião no qual você deseja executar as instruções no playbook ainda não estiver inventariado, adicione o IP ou nome deste anfitrião ao arquivo
/etc/ansible/hosts
Inventário possível:node.example.com
Crie o playbook
~/enable-802.1x.yml
com o seguinte conteúdo:--- - 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
Execute o livro de brincadeiras:
Para se conectar como usuário
root
ao host gerenciado, entre:#
ansible-playbook -u root ~/enable-802.1x.yml
Para conectar-se como usuário ao host administrado, entre:
#
ansible-playbook -u user_name --ask-become-pass ~/ethernet-static-IP.yml
A opção
--ask-become-pass
garante que o comandoansible-playbook
solicita a senhasudo
do usuário definido no-u user_name
opção.
Se você não especificar o
-u user_name
ansible-playbook
se conecta ao host gerenciado como o usuário que está atualmente conectado ao nó de controle.
Recursos adicionais
-
Para detalhes sobre os parâmetros usados em
network_connections
e para informações adicionais sobre o Sistema de Papelnetwork
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.network/README.md
. -
Para obter detalhes sobre os parâmetros 802.1X, consulte a seção
ieee802_1x
no arquivo/usr/share/ansible/roles/rhel-system-roles.network/README.md
. -
Para obter detalhes sobre o comando
ansible-playbook
, consulte a página de manualansible-playbook(1)
.