5.3. 使用带有 wpa_supplicant 和 NetworkManager的 MACsec
介质访问控制安全
(MACsec
、IEEE 802.1AE)使用 GCM-AES-128 算法加密并验证 LAN 中的所有流量。MACsec
不仅可以保护 IP
,还可以保护地址解析协议(ARP)、邻居发现(ND)或 DHCP
。IPsec
在网络层(层 3)上运行,而 SSL 或
TLS
在应用层(层 7)上运行,而 MACsec
在数据链路层(层 2)中运行。将 MACsec
与其他网络层的安全协议相结合,以利用这些规则提供的不同安全功能。
使用使用预共享连接关联密钥/CAK 名称(CAK/CKN)对执行身份验证的交换机启用
MACsec
:
流程
- 创建 CAK/CKN 对。例如,以下命令在十六进制表示中生成 16 字节密钥:
~]$ dd if=/dev/urandom count=16 bs=1 2> /dev/null | hexdump -e '1/2 "%02x"'
- 创建
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。 - 假设您使用 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
网络架构、用例场景和配置示例的更多信息。