FreeBSD 支持多种连接无线网络的方式。本节将介绍如何执行无线网络的高级认证。
要进行连接和基本的无线网络认证,请参阅《网络章节》中的连接和认证无线网络 部分。
34.4.1. 使用 EAP-TLS 的 WPA
使用 WPA 的第二种方式是通过 802.1X 后端认证服务器。在这种情况下,WPA 被称为 WPA 企业版,以区别于安全性较低的 WPA 个人版。WPA 企业版中的认证基于可扩展认证协议(EAP)。
EAP 本身并不带加密方法,而是嵌入到加密隧道中。有许多 EAP 认证方法,但 EAP-TLS、EAP-TTLS 和 EAP-PEAP 是最常见的。
使用传输层安全性(EAP-TLS)的 EAP 是一种得到广泛支持的无线认证协议,因为它是第一个获得 Wi-Fi 联盟 认证的 EAP 方法。EAP-TLS 需要三个证书才能运行:安装在所有机器上的证书颁发机构(CA)证书、认证服务器的服务器证书以及每个无线客户端的客户端证书。在这种 EAP 方法中,认证服务器和无线客户端通过提供各自的证书来互相认证,然后验证这些证书是否由组织的 CA 签发。
如前所述,配置通过 /etc/wpa_supplicant.conf 文件完成:
复制 network={
ssid="freebsdap" ①
proto=RSN ②
key_mgmt=WPA-EAP ③
eap=TLS ④
identity="loader" ⑤
ca_cert="/etc/certs/cacert.pem" ⑥
client_cert="/etc/certs/clientcert.pem" ⑦
private_key="/etc/certs/clientkey.pem" ⑧
private_key_passwd="freebsdmallclient" ⑨
}
② 该示例使用 RSN IEEE® 802.11i 协议,也称为 WPA2。
③ key_mgmt
行指示要使用的密钥管理协议。在此示例中,它是使用 EAP 认证的 WPA。
⑤ identity
字段包含 EAP 的身份字符串。
⑥ ca_cert
字段指示 CA 证书文件的路径。此文件用于验证服务器证书。
⑦ client_cert
行给出了客户端证书文件的路径。该证书对于每个无线客户端都是唯一的。
⑧ private_key
字段是客户端证书私钥文件的路径。
⑨ private_key_passwd
字段包含私钥的密码短语。
然后,将以下行添加到 /etc/rc.conf 文件中:
复制 wlans_ath0="wlan0"
ifconfig_wlan0="WPA DHCP"
下一步是启动接口:
复制 # service netif start
Starting wpa_supplicant.
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUAL
也可以使用 wpa_supplicant(8) 和 ifconfig(8) 手动启动接口。
34.4.2. 使用 EAP-TTLS 的 WPA
使用 EAP-TLS 时,认证服务器和客户端都需要证书。与此不同,使用 EAP-TTLS 时,客户端证书是可选的。这种方法类似于一个 Web 服务器,即使访客没有客户端证书,也能创建一个安全的 SSL 隧道。EAP-TTLS 使用加密的 TLS 隧道来安全传输认证数据。
所需的配置可以添加到 /etc/wpa_supplicant.conf 文件中:
复制 network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=TTLS ①
identity="test" ②
password="test" ③
ca_cert="/etc/certs/cacert.pem" ④
phase2="auth=MD5" ⑤
}
② identity
字段包含加密的 TLS 隧道中的 EAP 身份字符串。
③ password
字段包含 EAP 认证的密码。
④ ca_cert
字段指示 CA 证书文件的路径。此文件用于验证服务器证书。
⑤ 该字段指定加密 TLS 隧道中使用的认证方法。在此示例中,使用了 MD5 挑战的 EAP 认证。通常称为“第二阶段认证”,也可以称为“phase2”。
接下来,将以下行添加到 /etc/rc.conf 文件中:
复制 wlans_ath0="wlan0"
ifconfig_wlan0="WPA DHCP"
下一步是启动接口:
复制 # service netif start
Starting wpa_supplicant.
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUAL
34.4.3. 使用 EAP-PEAP 的 WPA
注意
PEAPv0/EAP-MSCHAPv2 是最常用的 PEAP 方法。在本章中,PEAP 指的是此方法。
受保护的 EAP(PEAP)是作为 EAP-TTLS 的替代方案设计的,并且是继 EAP-TLS 后最常用的 EAP 标准。在混合操作系统的网络中,PEAP 应该是继 EAP-TLS 后最受支持的标准。
PEAP 与 EAP-TTLS 类似,它使用服务器端证书通过创建加密的 TLS 隧道来认证客户端,从而保护随后的认证信息交换。PEAP 认证与 EAP-TTLS 的不同之处在于,PEAP 会以明文方式广播用户名,只有密码才会在加密的 TLS 隧道中传送。而 EAP-TTLS 会将用户名和密码都通过 TLS 隧道传输。
将以下行添加到 /etc/wpa_supplicant.conf 文件,以配置与 EAP-PEAP 相关的设置:
复制 network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=PEAP ①
identity="test" ②
password="test" ③
ca_cert="/etc/certs/cacert.pem" ④
phase1="peaplabel=0" ⑤
phase2="auth=MSCHAPV2" ⑥
}
② identity
字段包含加密 TLS 隧道中的 EAP 身份字符串。
③ password
字段包含 EAP 认证的密码。
④ ca_cert
字段指示 CA 证书文件的路径。此文件用于验证服务器证书。
⑤ 该字段包含 TLS 隧道第一阶段认证的参数。根据所使用的认证服务器,指定认证的特定标签。大多数情况下,标签为“客户端 EAP 加密”,通过设置 peaplabel=0
来实现。更多信息请参见 wpa_supplicant.conf(5) 。
⑥ 该字段指定加密的 TLS 隧道中使用的认证协议。对于 PEAP,使用的是 auth=MSCHAPV2
。
将以下内容添加到 /etc/rc.conf 文件中:
复制 wlans_ath0="wlan0"
ifconfig_wlan0="WPA DHCP"
然后,启动接口:
复制 # service netif start
Starting wpa_supplicant.
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUAL