7.10. ネットワーク RHEL システムロールを使用した 802.1X ネットワーク認証による静的イーサネット接続の設定
network
RHEL システムロールを使用して、802.1X 規格を使用してクライアントを認証するイーサネット接続の作成を自動化できます。たとえば、Ansible Playbook を実行して、以下の設定で enp1s0
インターフェイスのイーサネット接続をリモートで追加します。
-
静的 IPv4 アドレス: サブネットマスクが
/24
の192.0.2.1
-
静的 IPv6 アドレス -
2001:db8:1::1
(/64
サブネットマスクあり) -
IPv4 デフォルトゲートウェイ -
192.0.2.254
-
IPv6 デフォルトゲートウェイ -
2001:db8:1::fffe
-
IPv4 DNS サーバー -
192.0.2.200
-
IPv6 DNS サーバー -
2001:db8:1::ffbb
-
DNS 検索ドメイン -
example.com
-
TLS
Extensible Authentication Protocol (EAP) を使用した 802.1X ネットワーク認証
Ansible コントロールノードで以下の手順を実行します。
前提条件
- 制御ノードと管理対象ノードを準備している。
- 管理対象ノードで Playbook を実行できるユーザーとして制御ノードにログインします。
-
管理対象ノードへの接続に使用するアカウントには、そのノードに対する
sudo
権限があります。 - この Playbook を実行する管理対象のノードまたは管理対象のノードのグループは、Ansible インベントリーファイルにリストされています。
- ネットワークは 802.1X ネットワーク認証をサポートしている。
- 管理対象ノードは NetworkManager を使用します。
TLS 認証に必要な以下のファイルがコントロールノードにある。
-
クライアントキーは、
/srv/data/client.key
ファイルに保存されます。 -
クライアント証明書は
/srv/data/client.crt
ファイルに保存されます。 -
認証局 (CA) 証明書は、
/srv/data/ca.crt
ファイルに保存されます。
-
クライアントキーは、
手順
~/enable-802.1x.yml
などの Playbook ファイルを次の内容で作成します。--- - 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
Playbook を実行します。
# ansible-playbook ~/enable-802.1x.yml
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.network/README.md
ファイル