如何连接到不使用 CA_Certificate 的 WPA2/PEAP/MSCHAPv2 企业 wifi 网络,如 Eduroam

Bal*_*Coy 61 networking

我的大学使用 WPA2 Enterprise 加密让学生登录他们的无线网络。在 NetworkManager 中,我输入了他们需要的所有内容

  • 安全性:WPA 和 WPA2 企业版
  • 身份验证:受保护的 EAP (PEAP)
  • 不需要CA证书
  • PEAP 版本:自动
  • 内部认证:MSCHAPv2
  • 用户名和密码正确。

每次尝试连接时,都会出现一个窗口,要求我一遍又一遍地输入密码

小智 41

这里有一个错误报告:https : //bugs.launchpad.net/ubuntu/+source/network-manager/+bug/1104476

解决方法是删除该行

system-ca-cert=true
Run Code Online (Sandbox Code Playgroud)

来自 /etc/NetworkManager/system-connections/ 中的配置文件

  • 这个答案对我不起作用。该行在更高版本的 ubuntu 中不存在。奇怪的是,我在 Fedora 版本 28 中也有相同的症状,但版本 29 现在可以工作(arch 也可以),OpenSUSE tumbleweed 和 Leap15 都不起作用。Ubuntu 18.04、18.10 和今天的 19.04 预览快照不起作用。一定是某些设置导致了此问题,这些设置在 Fedora 29 或 Arch 中不再存在,但在 Ubuntu 中仍然存在,导致了此问题。 (3认同)
  • 仍在 14.04 上发生(当前测试版) (2认同)

小智 25

这是一个解决方法。

  1. 打开终端 ( Alt+ F2) 并运行以下命令:

    cd /etc/NetworkManager/system-connections
    sudo touch SSID #SSID is the name of the profile, e.g. eduroam
    sudo nano SSID
    
    Run Code Online (Sandbox Code Playgroud)
  2. 然后编辑“SSID”配置文件如下:

    [ipv6]
    method=auto
    
    [connection]
    id=SSID #(e.g.EDUroam)
    uuid=9e123fbc-0123-46e3-97b5-f3214e123456 #unique uuid will be created upon creation of this profile
    type=802-11-wireless
    
    [802-11-wireless-security]
    key-mgmt=wpa-eap
    auth-alg=open
    
    [802-11-wireless]
    ssid=SSID
    mode=infrastructure
    mac-address=0A:12:3C:DA:C1:A5
    security=802-11-wireless-security
    
    [802-1x]
    eap=peap;
    identity=studentid123123
    phase2-auth=mschapv2
    password=mypass123123
    
    [ipv4]
    method=auto
    
    Run Code Online (Sandbox Code Playgroud)

修改上面的文件,它应该可以工作。

  • 有用!谢谢@基思!以下是我必须做的更改:(1) 删除了 `system-ca-cert=true` 行和 (2) 用 `password=mypassword` 替换了 `password-flags=1`。 (3认同)

小智 8

我在工作中遇到了同样的问题,我按照说明进行了更改,system-ca-cert=false但我也必须在进行更改后立即更改无线驱动程序设置。查看我在下面获得信息的链接

http://wireless.kernel.org/en/users/Documentation/wpa_supplicant

-o<driver> and -O<ctrl>

/usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service

[D-BUS Service]
Name=fi.epitest.hostap.WPASupplicant
Exec=/sbin/wpa_supplicant -u -f /var/log/wpa_supplicant.log
User=root

[D-BUS Service]
Name=fi.epitest.hostap.WPASupplicant
Exec=/sbin/wpa_supplicant -u -onl80211 -O/var/run/wpa_supplicant
User=root
Run Code Online (Sandbox Code Playgroud)


Ale*_*ing 7

最近,许多 eduroam 部署在 Ubuntu 22.04 LTS 上出现故障,因为它们仍然使用不安全的重新协商,这种重新协商已于 2010 年被 RFC 5746 弃用,并且 OpenSSL 在 2010 年 3 月左右放弃了对重新协商的支持(以及 TLS 1.0 和 1.1)。在您的大学修复网络之前,您可以通过编辑一些配置文件来重新启用不安全的重新协商。

以下步骤由用户“nfalse”(#22) 和 Simon Chopin (#36)贡献给Launchpad Bug #1958267

步骤1:为wpa_supplicant创建特定的openssl.cnf

$ sudo cp /etc/ssl/openssl.cnf /etc/wpa_supplicant/
Run Code Online (Sandbox Code Playgroud)

这将确保启用 TLS 1.0 仅适用于 WPA 协商,这将在一定程度上减轻此更改的安全影响。

步骤 2:在复制的配置文件中启用旧版 TLS

以 root 身份编辑新的配置文件:

$ sudo gedit /etc/wpa_supplicant/openssl.cnf
Run Code Online (Sandbox Code Playgroud)

然后,找到以下几行:

[openssl_init]
providers = provider_sect
Run Code Online (Sandbox Code Playgroud)

之后立即插入以下行:

ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
Options = UnsafeLegacyRenegotiation
CipherString = DEFAULT@SECLEVEL=1
Run Code Online (Sandbox Code Playgroud)

步骤 3:使 wpa_supplicant 使用新配置

以 root 身份编辑/usr/lib/systemd/system/wpa_supplicant.service.

$ sudo gedit /usr/lib/systemd/system/wpa_supplicant.service
Run Code Online (Sandbox Code Playgroud)

找到以下几行:

[Service]
Type=dbus
BusName=fi.w1.wpa_supplicant1
ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
ExecReload=/bin/kill -HUP $MAINPID
Run Code Online (Sandbox Code Playgroud)

之后BusName,插入Environment="OPENSSL_CONF=/etc/wpa_supplicant/openssl.cnf". 整个部分应如下所示:

[Service]
Type=dbus
BusName=fi.w1.wpa_supplicant1
Environment="OPENSSL_CONF=/etc/wpa_supplicant/openssl.cnf"
ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
ExecReload=/bin/kill -HUP $MAINPID
Run Code Online (Sandbox Code Playgroud)

步骤 4:重新启动 wpa_supplicant

此时您可以重新启动整个计算机,也可以只运行以下命令:

$ sudo systemctl daemon-reload
$ sudo systemctl restart wpa_supplicant.service
Run Code Online (Sandbox Code Playgroud)

  • 我有 Ubuntu 22,并且可以确认这有效! (4认同)
  • 此后备现在是 wpasupplicant 2:2.10-6ubuntu2 中的默认设置,因此可以升级到该版本。 (2认同)

小智 1

我假设您使用的是自签名证书(您说:“不需要 CA 证书”)。如果是这样,请确保您在建立连接时信任该证书。

  • 不,不需要我的意思是他们不要求我们在连接时使用任何证书。 (3认同)