Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.3. 使用带有 wpa_supplicant 和 NetworkManager的 MACsec

介质访问控制安全 (MACsec、IEEE 802.1AE)使用 GCM-AES-128 算法加密并验证 LAN 中的所有流量。MACsec 不仅可以保护 IP,还可以保护地址解析协议(ARP)、邻居发现(ND)或 DHCPIPsec 在网络层(层 3)上运行,而 SSL 或 TLS 在应用层(层 7)上运行,而 MACsec 在数据链路层(层 2)中运行。将 MACsec 与其他网络层的安全协议相结合,以利用这些规则提供的不同安全功能。
使用使用预共享连接关联密钥/CAK 名称(CAK/CKN)对执行身份验证的交换机启用 MACsec
流程
  1. 创建 CAK/CKN 对。例如,以下命令在十六进制表示中生成 16 字节密钥:
    ~]$ dd if=/dev/urandom count=16 bs=1 2> /dev/null | hexdump -e '1/2 "%02x"'
  2. 创建 wpa_supplicant.conf 配置文件并添加以下行:
    ctrl_interface=/var/run/wpa_supplicant
    eapol_version=3
    ap_scan=0
    fast_reauth=1
    
    network={
        key_mgmt=NONE
        eapol_flags=0
        macsec_policy=1
    
        mka_cak=0011... # 16 bytes hexadecimal
        mka_ckn=2233... # 32 bytes hexadecimal
    }
    使用上一步中的值完成 wpa_supplicant.conf 配置文件中的ka_cak 和mka_ckn 行。
    如需更多信息,请参阅 wpa_supplicant.conf(5) man page。
  3. 假设您使用 wlp61s0 连接到您的网络,使用以下命令启动 wpa_supplicant
    ~]# wpa_supplicant -i wlp61s0 -Dmacsec_linux -c wpa_supplicant.conf
红帽建议使用 nmcli 命令配置 wpa_supplicant.conf 文件,而不是创建和编辑 wpa_supplicant.conf 文件。以下示例假定您已有一个 16 字节十六进制 CAK($MKA_CAK)和 32 字节十六进制 CKN($MKA_CKN):
~]# nmcli connection add type macsec \
  con-name test-macsec+ ifname macsec0 \
  connection.autoconnect no \
  macsec.parent wlp61s0 macsec.mode psk \
  macsec.mka-cak $MKA_CAK \
  macsec.mka-cak-flags 0 \
  macsec.mka-ckn $MKA_CKN

~]# nmcli connection up test-macsec+
在这一步后,应配置 macsec0 设备并用于联网。
如需了解更多详细信息,请参阅 MACsec 中的新功能:使用 wpa_supplicant 和(可选)NetworkManager 设置 MACsec。另外,请参阅 MACsec:加密网络流量文章的不同解决方案,以了解有关 MACsec 网络架构、用例场景和配置示例的更多信息。