标签: wpa-supplicant

使用 WPA-EAP 和 MSCHAP-v2 在 wpa_supplicant.conf 中隐藏密码

我的wpa_supplicant.conf看起来像这样:

network={
  ssid="Some name"
  scan_ssid=1
  key_mgmt=WPA-EAP
  eap=PEAP
  identity="my-user-id"
  password="(clear text password here)"
  ca_cert="/usr/share/ca-certificates/mozilla/GeoTrust_Global_CA.crt"
  phase2="auth=MSCHAPV2"
}
Run Code Online (Sandbox Code Playgroud)

使用 WPA-EAP 和 MSCHAP-v2 的这种特定组合,有没有办法在此配置文件中不以明文形式包含我的密码?

ChangeLog 似乎声称这是可行的(自 2005 年以来!):

* added support for storing EAP user password as NtPasswordHash instead
  of plaintext password when using MSCHAP or MSCHAPv2 for
  authentication (hash:<16-octet hex value>); added nt_password_hash
  tool for hashing password to generate NtPasswordHash
Run Code Online (Sandbox Code Playgroud)

一些注意事项:

wpa-supplicant security password wpa

30
推荐指数
2
解决办法
4万
查看次数

使用没有纯文本密码的 wpa_supplicant

我在我的笔记本电脑上运行 gentoo,我目前正在使用wpa_supplicant来处理 wifi。

我的配置有效,我可以连接,但需要在配置文件中输入纯文本密码。如果我想连接到朋友的 wifi 并且他们想输入密码而不是告诉我密码是什么,这将不起作用。纯文本密码没有安全性。

我怎样才能使它更安全,以便存储某种加密的密码而不是明文?

wifi wpa-supplicant security

21
推荐指数
1
解决办法
2万
查看次数

对 wpa_supplicant 的后续调用失败 - 无法连接到 wifi

我有一个 ubuntu 15.10 服务器,它利用 wpa_supplicant 连接到使用 wpa_passphrase 创建的无线网络配置文件。在重新启动时,我第一次调用sudo wpa_supplicant -B -i wlp2s0 -c ./MVS(其中 MVS 是网络的已保存配置文件的名称)时,我得到了输出

Successfully initialized wpa_supplicant
Could not read interface p2p-dev-wlp2s0 flags: No such device
Run Code Online (Sandbox Code Playgroud)

但是退出代码为零,我可以通过运行来确认我实际上已连接到无线网络 sudo iw wlp2s0 link

但是,随后对 wpa_supplicant 的调用(对于其他配置文件甚至相同的配置文件)会产生更详细的输出:

Successfully initialized wpa_supplicant
Could not read interface p2p-dev-wlp2s0 flags: No such device
nl80211: Could not set interface 'p2p-dev-wlp2s0' UP
nl80211: deinit ifname=p2p-dev-wlp2s0 disabled_11b_rates=0
p2p-dev-wlp2s0: Failed to initialize driver interface
P2P: Failed to enable P2P Device interface
Run Code Online (Sandbox Code Playgroud)

wpa_supplicant 仍然返回零退出代码,但这次无线设备绝对没有连接到任何网络。任何建议或想法将不胜感激,我不知道如何调试或修复它。

linux wifi wpa-supplicant ubuntu

16
推荐指数
1
解决办法
2万
查看次数

WiFi 错误 wpa_supplicant

我的wpa_supplicant程序有问题。

我的问题是关于使用wpa_cli哪个需要wpa_supplicant。我执行时出错sudo wpa_cli

Could not connect to wpa_supplicant
Run Code Online (Sandbox Code Playgroud)

的手动启动wpa_supplicant给了我一些错误:

sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

rfkill: Cannot open RFKILL control device
ioctl[SIOCSIWAP]: Operation not permitted
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
wlan0: CTRL-EVENT-DISCONNECTED bssid=00:00:00:00:00:00 reason=0   ### NEW!!!
Run Code Online (Sandbox Code Playgroud)

配置dhcp

## /etc/dhcp/dhcpd.conf
subnet 192.168.2.0 netmask 255.255.255.0 {
   range 192.168.2.2 192.168.2.9;
   option domain-name-servers 192.168.1.1;
   option domain-name "home";
   option routers 192.168.2.1;
}
Run Code Online (Sandbox Code Playgroud)

配置wpa_supplicant

## /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
# network={
#   ssid="__SSID__" …
Run Code Online (Sandbox Code Playgroud)

wifi wpa-supplicant wpa

15
推荐指数
2
解决办法
8万
查看次数

如何在不使用浏览器的情况下对无线提供商的“开放”网络进行身份验证?

这种设置在购物中心和机场似乎很常见。在加拿大西部,Shaw 提供了这样的服务,并将其称为“Shaw Open”。我很确定其他地区也有来自 T-Mobile 等提供商的类似服务。

从手机之类的东西做起来并不复杂。连接到 wifi 热点不需要身份验证,因为它是“开放的”供公众访问。但是,在我使用浏览器并登录 ISP 提供的特定网页之前,我的手机无法通过应用程序连接到网站或远程服务。

我的问题简单地说是:如何从通常没有传统浏览器的设备自动执行身份验证步骤?

在我的特殊情况下,我有一个配置了软件的树莓派,我想在贸易展览等上使用。这些位置具有相同类型的“开放”热点。Raspi 是自给自足的。它只是做自己的生意并与网站交谈。但是这个出站连接被 ISP 的“开放”连接阻止了,因为我没有,也无法完成该过程的浏览器部分。

假设我拥有在特定提供商网络上执行此操作的凭据,如何在不需要我打开与 Pi 的终端会话的情况下自动执行该部分流程? 这里甚至使用了什么样的技术,我可以搜索?

wifi wpa-supplicant

15
推荐指数
2
解决办法
3万
查看次数

随机“通过本地选择解除认证(原因:3=DEAUTH_LEAVING)”

我在跑

uname -r
4.10.6-1-ARCH
Run Code Online (Sandbox Code Playgroud)

在我的戴尔 XPS 13 开发者版(2014 年)上。我目前的 wifi 有一些奇怪的问题(我将 Networkamanger 与nm-appletKDE一起使用):

1)在最肤浅的层面上,我观察到有时它可以完美运行:当我启动我的电脑时,它已经连接到wifi,有时它不会以任何方式连接(wifi始终相同);

2)我尝试重新启动NM:并且问题仍然存在。3)有时,如果我重新启动笔记本电脑,它会再次工作,有时则不会。

4)我尝试使用 nmcli

nmcli connection up My-WiFi 
Run Code Online (Sandbox Code Playgroud)

然后我观察

dmesg
[  250.165837] IPv6: ADDRCONF(NETDEV_CHANGE): wlp2s0: link becomes ready
[  250.255882] wlp2s0: Limiting TX power to 14 dBm as advertised by 00:3a:9a:32:62:d3
[  272.004204] wlp2s0: deauthenticating from 00:3a:9a:32:62:d3 by local choice (Reason: 3=DEAUTH_LEAVING)
[  275.432861] wlp2s0: authenticate with 00:3a:9a:32:62:d3
[  275.435513] wlp2s0: send auth to 00:3a:9a:32:62:d3 (try 1/3)
[  275.440164] …
Run Code Online (Sandbox Code Playgroud)

wifi wpa-supplicant networkmanager

15
推荐指数
1
解决办法
6751
查看次数

无法打开配置文件“/dev/fd/63”,错误:wpa_supplicant 没有这样的文件或目录

当我这样做时:

sudo wpa_supplicant -D nl80211,wext -i wlp4s0 -c <(wpa_passphrase "some ssid" "password")
Run Code Online (Sandbox Code Playgroud)

我得到

Successfully initialized wpa_supplicant
Failed to open config file '/dev/fd/63', error: No such file or directory
Failed to read or parse configuration '/dev/fd/63'
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

wpa-supplicant bash arch-linux sudo process-substitution

14
推荐指数
2
解决办法
2万
查看次数

让 systemd 停止启动不需要的 wpa_supplicant 服务?

我想禁用systemd不需要的自动启动尝试wpa_supplicant。我认为我可以简单地运行一个

sudo systemctl disable wpa_supplicant.service --global
Run Code Online (Sandbox Code Playgroud)

我不会再在ps -ef输出中看到 wpa_supplicant了。无论如何,这是行不通的。我怎样才能让它工作?

我手头的问题可能最好通过以下输出来描述

$>systemctl status wpa_supplicant*
? wpa_supplicant.service - WPA supplicant
   Loaded: loaded (/usr/lib/systemd/system/wpa_supplicant.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2016-08-28 20:57:37 CEST; 14min ago
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,该disabled服务无论如何都已加载并处于活动状态,这要感谢 systemd 完全帮助我完成了最简单的事情;)

更新
我似乎通过粗暴删除这些文件获得了一些运气:

wpa_supplicant-nl80211@.service
wpa_supplicant.service
wpa_supplicant@.service
wpa_supplicant-wired@.service
Run Code Online (Sandbox Code Playgroud)

/usr/lib/systemd/system文件夹。你猜怎么着?重启后wpa终于不再启动systemd了。虽然必须有一种更和平/和解的方式来让systemd服务不被启动,但我还是很震惊。

wpa-supplicant configuration systemd services

14
推荐指数
2
解决办法
1万
查看次数

如果检测到错误的密码,则 wpa_supplicant 结束进程

通常当我运行时,wpa_supplicant我会得到一些这样的输出:

Successfully initialized wpa_supplicant
ioctl[SIOCSIWAP]: Operation not permitted
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
wlan3: Trying to associate with 9c:3d:cf:fb:95:96 (SSID='Bell420' freq=2462 MHz)
wlan3: Association request to the driver failed
wlan3: Associated with 9c:3d:cf:fb:95:96
wlan3: Authentication with 9c:3d:cf:fb:95:96 timed out.
ioctl[SIOCSIWAP]: Operation not permitted
wlan3: CTRL-EVENT-DISCONNECTED bssid=9c:3d:cf:fb:95:96 reason=3 locally_generated=1
wlan3: WPA: 4-Way Handshake failed - pre-shared key may be incorrect
Run Code Online (Sandbox Code Playgroud)

问题是它只是一遍又一遍地尝试。

有没有一种方法可以告诉我wpa_supplicant在出现明显错误(例如错误的键)时立即退出?

我使用的是带有wpa_supplicant v2.1.


我写了一个解决方法来监视wpa_supplicant不正确的密钥。使用grepwpa_supplicant(与stdbuf基于斯特凡Chazelas'在这里评论 …

wpa-supplicant wpa-cli

14
推荐指数
1
解决办法
1487
查看次数

wpa_supplicant 下的驱动程序(-D)选项

在开始wpa_supplicant工作之前,网络接口必须可用并且必须加载设备的驱动程序。wpa_supplicant允许使用“-D”标志指定驱动程序。我在几个系统上尝试过这个,但wpa_supplicant似乎从来没有接受我指定的驱动程序。例如:

T42 ~ # lspci -v -s 02:02.0
02:02.0 Network controller: Intel Corporation PRO/Wireless 2915ABG [Calexico2] Network Connection (rev 05)
    Subsystem: Intel Corporation Device 1011
    Flags: bus master, medium devsel, latency 64, IRQ 11
    Memory at c0214000 (32-bit, non-prefetchable) [size=4K]
    Capabilities: [dc] Power Management version 2
    Kernel driver in use: ipw2200
    Kernel modules: ipw2200
T42 ~ # wpa_supplicant -D ipw2200 -i eth1 -c /root/wpafile 
Unsupported driver 'ipw2200'.
T42 ~ # 
Run Code Online (Sandbox Code Playgroud)

但是,如果我开始时wpa_supplicant没有指定像 那样的驱动程序 …

wpa-supplicant

12
推荐指数
1
解决办法
4万
查看次数