第 33 章 使用带有存储在文件系统上证书的 802.1X 标准将 RHEL 客户端认证到网络

管理员通常使用基于 IEEE 802.1X 标准的基于端口的网络访问控制(NAC)来保护网络不受未授权 LAN 和 Wi-Fi 客户端的影响。要让客户端能够连接到这样的网络,您必须在此客户端上配置 802.1X 身份验证。

33.1. 使用 nmcli 在现有以太网连接上配置 802.1X 网络身份验证

您可以使用 nmcli 工具在命令行上配置带有 802.1X 网络身份验证的以太网连接。

先决条件

  • 网络支持 802.1X 网络身份验证。
  • 以太网连接配置集存在于 NetworkManager 中,且具有有效的 IP 配置。
  • 客户端上存在 TLS 身份验证所需的以下文件:

    • 存储的客户端密钥位于 /etc/pki/tls/private/client.key 文件中,该文件归 root 用户所有,且只对 root 可读。
    • 客户端证书存储在 /etc/pki/tls/certs/client.crt 文件中。
    • 证书颁发机构(CA)证书存储在 /etc/pki/tls/certs/ca.crt 文件中。
  • wpa_supplicant 软件包已安装。

步骤

  1. 将扩展验证协议(EAP)设置为 tls,将路径设置为客户端证书和密钥文件:

    # nmcli connection modify enp1s0 802-1x.eap tls 802-1x.client-cert /etc/pki/tls/certs/client.crt 802-1x.private-key /etc/pki/tls/certs/certs/client.key

    请注意,您必须在一个命令中设置 802-1x.eap802-1x.client-cert802-1x.private-key 参数。

  2. 设置 CA 证书的路径:

    # nmcli connection modify enp1s0 802-1x.ca-cert /etc/pki/tls/certs/ca.crt
  3. 设置证书中使用的用户的身份:

    # nmcli connection modify enp1s0 802-1x.identity user@example.com
  4. 另外,还可将该密码存储在配置中:

    # nmcli connection modify enp1s0 802-1x.private-key-password password
    重要

    默认情况下,NetworkManager 在 /etc/sysconfig/network-scripts/keys-connection_name 文件中以明文形式保存密码,该文件只对 root 用户可读。但是,在配置文件中清除文本密码会有安全隐患。

    要提高安全性,请将 802-1x.password-flags 参数设为 0x1。有了这个设置,在具有 GNOME 桌面环境或运行 nm-applet 的服务器上,NetworkManager 从这些服务中检索密码。在其他情况下,NetworkManager 会提示输入密码。

  5. 激活连接配置集:

    # nmcli connection up enp1s0

验证

  • 访问需要网络身份验证的网络上的资源。

其他资源