我必须连接到 WPA2 Enterprise 网络,该网络仅在我不验证证书时才有效。我不想这样做,因为这样任何人都可以看到 MSCHAPv2 消息。
解决此问题的第一步是查看 AP 提供的证书,然后将 wpa_supplicant 配置为仅信任该证书。但我不知道如何获得证书。wpa_cli“status”命令不显示它,也不在任何日志中。
我也很好奇使用了哪些 SSL/TLS 密码套件。是否可以手动连接,也许使用 openssl s_client?
我正在使用新的 Debian Stretch 系统,并且想连接到我的大学 eduroam 网络。我没有使用 GNOME 或任何 DM,因此我通过nmcli
.
然而,据我所知,似乎nmcli
不支持这种连接。太糟糕了。然后我决定尝试一下wpa_supplicant
,我发现这个配置文件在大多数情况下应该可以开箱即用。但不适合我。
编辑相关部分后,我尝试了
sudo wpa_supplicant -i wlp5s0 -c eduroam.conf
输出是这样的:
Successfully initialized wpa_supplicant
wlp5s0: SME: Trying to authenticate with 64:f6:9d:6a:bd:00 (SSID='eduroam' freq=2412 MHz)
wlp5s0: Trying to associate with 64:f6:9d:6a:bd:00 (SSID='eduroam' freq=2412 MHz)
wlp5s0: Associated with 64:f6:9d:6a:bd:00
wlp5s0: CTRL-EVENT-EAP-STARTED EAP authentication started
wlp5s0: CTRL-EVENT-REGDOM-CHANGE init=COUNTRY_IE type=COUNTRY alpha2=ES
wlp5s0: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=21 -> NAK
wlp5s0: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=25
wlp5s0: CTRL-EVENT-EAP-METHOD EAP vendor 0 method 25 …
Run Code Online (Sandbox Code Playgroud) 使用 connman 连接到我的私人 WPA2 Wifi 效果非常好(按照此说明进行操作)。\n但是当我尝试连接到 ieee8021x 网络时,我总是收到此错误:
\n\n\n\n\n错误 /net/connman/service/wifi_801f024ae577_556e6974796d65646961205769666953706f74_driven_ieee8021x:参数无效
\n
我认为放置在 /var/lib/connman 中的配置文件有问题:
\n\n[global]\nName = UnityMedia\n\n[service_umWifiSpot]\nType = wifi\nSSID = 556e6974796d65646961205769666953706f74\nEAP = peap\nPhase2 = MSCHAPV2\nIddentit=unitymedia/myUsername\n#AnonymousIdentity=anonymous@foo.edu\nPassphrase=myPassword\n
Run Code Online (Sandbox Code Playgroud)\n\n这就是我尝试连接的方式:
\n\nconnmanctl> agent on\nAgent registered\nconnmanctl> scan wifi\nconnmanctl> services\n*AO Wired ethernet_b827eb8920a9_cable\n*AR \xc2\xaf\\_(\xe3\x83\x84)_/\xc2\xaf wifi_801f024ae577_c2af5c5f28e38384295f2fc2af_managed_psk\n furb wifi_801f024ae577_66757262_managed_psk\n Unitymedia WifiSpot wifi_801f024ae577_556e6974796d65646961205769666953706f74_managed_ieee8021x\n :o) wifi_801f024ae577_3a6f29_managed_psk\n \xca\x95\xe2\x80\xa2\xe1\xb4\xa5\xe2\x80\xa2\xca\x94 wifi_801f024ae577_ca95e280a2e1b4a5e280a2ca94_managed_psk\n DIRECT-eE-Sonja\'s Fire TV wifi_801f024ae577_4449524543542d65452d536f6e6a6127732046697265205456_managed_psk\n DIRECT-B9-HP ENVY 4520 series wifi_801f024ae577_4449524543542d42392d485020454e5659203435323020736572696573_managed_psk\n SoHigh-WG wifi_801f024ae577_536f486967682d5747_managed_psk\n o2-WLAN42 wifi_801f024ae577_6f322d574c414e3432_managed_psk\n wifi_801f024ae577_hidden_managed_psk\n UPC1989729 wifi_801f024ae577_55504331393839373239_managed_psk\n wildline wifi_801f024ae577_77696c646c696e65_managed_psk\n Internet wifi_801f024ae577_496e7465726e6574_managed_psk\n UPC317EB59 wifi_801f024ae577_55504333313745423539_managed_psk\n HP-Print-BE-Officejet Pro 8610 wifi_801f024ae577_48502d5072696e742d42452d4f66666963656a65742050726f2038363130_managed_none\n …
Run Code Online (Sandbox Code Playgroud) 很长一段时间以来,我已经能够使用 Debian 7 中配置的 NetworkManager + wpa_supplicant 连接到工作中的安全无线网络(即 WPA2 Enterprise,具有 PEAP + MSCHAPv2 身份验证)。
最近我想通过将服务器的证书合并到我的网络管理器连接设置中来提高连接的安全性。我从网络管理员那里收到了两个 PEM 密钥:
RADIUS 证书的真实性取决于中间证书;并且中间证书取决于 GlobalSign 的最终根 CA。
这是我的目标:每当我连接到 wifi 网络时,我想让我的笔记本电脑检查 wifi 接入点的真实性。我如何将这些证书放在连接设置(/etc/NetworkManager/system-connections/THE-AP-NAME
文件)中,以便我可以实现这个目标?具体来说:应该在何处列出哪个文件(例如,什么配置文件),以及需要哪些额外的步骤来验证服务器证书?我在这里问这个是因为我在其他地方找到的所有内容都是 1 步证书检查,其中证书可能取决于完善的根 CA,而不是像我这样的中间 CA。
目前这是我的连接设置文件的内容(XXXX 和 YYYY 表示模糊信息):
[ipv6]
method=ignore
[connection]
id=XXXXXXXXX
uuid=XXXXXXXXX
type=802-11-wireless
timestamp=1436377448
[802-11-wireless-security]
key-mgmt=wpa-eap
[802-11-wireless]
ssid=XXXXXXXXX
mode=infrastructure
seen-bssids=XXXXXXXXX
security=802-11-wireless-security
[802-1x]
eap=peap;
identity=XXXXXXXXX
password=YYYYYYYYY
ca-cert=/etc/NetworkManager/certs/work/globalsign_intermediary.pem
phase2-auth=mschapv2
[ipv4]
method=auto
Run Code Online (Sandbox Code Playgroud)
如您所见,我使用的是中间证书文件。但这是不对的。仅使用 RADIUS 证书文件也是不对的。在任何一种情况下,我都收到以下错误syslog
:
Jul 8 12:02:37 wirawan1 wpa_supplicant[3638]: wlan0: CTRL-EVENT-EAP-STARTED EAP …
Run Code Online (Sandbox Code Playgroud)