34.4.无线高级身份验证

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" ⑨
}
  • ① 该字段表示网络名称(SSID)。

  • ② 该示例使用 RSN IEEE® 802.11i 协议,也称为 WPA2。

  • key_mgmt 行指示要使用的密钥管理协议。在此示例中,它是使用 EAP 认证的 WPA。

  • ④ 该字段指示连接使用的 EAP 方法。

  • 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" ⑤
}
  • ①该字段指定连接使用的 EAP 方法。

  • 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" ⑥
}
  • ① 该字段指定连接使用的 EAP 方法。

  • 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

最后更新于

这有帮助吗?