wpa_supplicant

严书
2023-12-01

目的

熟悉wpa_supplicant,并了解其并应用功能 , 以及 wpa_cli命令操作连接无线。。

什么是wpa_supplicant

它是用来配置无线网络的工具, 可以加密认证。
wpa_supplicant包含两个主要的可执行工具:wpa_supplicant和wpa_cli。wpa_supplicant是核心程序, 它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用wpa_cli来搜索、设置、和连接网络。

WPA: Wifi Protected Access 缩写,wifi网络安全保护存取。
是一种基于标准的可互操作的WLAN安全性增强解决方案,可大大增强现有以及未来无线局域网络的数据保护和访问控制水平。

wpa_supplicant是一个连接、配置WIFI的工具,它主要包含wpa_supplicant与wpa_cli两个程序。通常情况下,可以通过wpa_cli来进行WIFI的配置与连接,如果有特殊的需要,可以编写应用程序直接调用wpa_supplicant的接口直接开发。

wpa_supplicant 与 Wireless-tools区别

wpa_supplicant 不支持所有驱动,只能连接你已经配置好的ssid无线网络, 可以让你连接到使用的wpa的ap。支持wep, wpa, wpa2等完整加密。

Wireless-tools 只支持wep加密,支持几乎所有的无线网卡和驱动,但它不能连接到那些只支持WPA的AP。

安全性不同排序为:WEP<WPA<WPA2。

WEP是Wired Equivalent Privacy的简称,有线等效保密(容WEP)协议是对在两台设备间无线传输的数据进行加密的方式,用以防止非法用户窃听或侵入无线网络。

WPA全名为Wi-Fi Protected Access,有WPA和WPA2两个标准,是一种保护无线电脑网络(Wi-Fi)安全的系统,它是应研究者在前一代的系统有线等效加密(WEP)中找到的几个严重的弱点而产生的。

WPA是用来替代WEP的。WPA继承了WEP的基本原理而又弥补了WEP的缺点:WPA加强了生成加密密钥的算法,因此即便收集到分组信息并对其进行解析,也几乎无法计算出通用密钥;WPA中还增加了防止数据中途被篡改的功能和认证功能。

WPA2是WPA的增强型版本,与WPA相比,WPA2新增了支持AES的加密方式。

Wireless tools for Linux
iwlist/iwconfig/iw命令

wpa_supplicant 常用操作

官网
启动

 wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B
-D  驱动程序名称(可以是多个驱动程序:nl80211,wext) 
-i  接口名称 
-c 配置文件 
-B 在后台运行守护进程

扫描附近热点

wpa_cli -i wlan0 scan

显示扫描附近热点

wpa_cli -i wlan0 scan_result

当前网络状态

wpa_cli -i wlan0 status

添加网络 添加一个网络连接,会返回 network id

wpa_cli -i wlan0 add_network

设置网络密码

// wpa_cli set_network <network id>  key_mgmt WPA-PSK 无线加密方式 //NONE 
// wpa_cli set_network <network id>  ssid \"name\"  //ssid名称 
wpa_cli set_network <network id>  ssid '"name"'  //ssid名称 
wpa_cli set_network <network id>  psk '“psk”'  //密码
wpa_cli set_network <network id>  scan_ssid 1   
wpa_cli set_network <network id>  priority  1   //优先级

保存连接

wpa_cli -i wlan0 save_config   //信息保存到默认的配置文件中

断开连接

wpa_cli -i wlan0 disable_network <network id> 

连接已有连接

wpa_cli -i wlan0 list_networks //列举保存过得连接
wpa_cli -i wlan0 select_network  <network id>  //连接指定的ssid 
wpa_cli -i wlan0 enable_network  <network id>  //使能制定的ssid 

配置文件示例: wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant/
ap_scan=1
network={
    scan_ssid=1
    ssid="xxxx"
    psk="xxxx"
    bssid=
    priority=2
}

命令行了解

命令 描述
status 显示当前连接的状态信息
ping 测试指令,看service端是否有响应
reassociate 设置连接标签,开启扫描,查找可用的AP进行连接,如果当前是连接状态,只会扫描一次。
password 设置密码
disconnect断开连接,并且会告知wpa_supplicant 不在连接其他AP
reconnect重新连接,在运行上面的过程后,运行此命令
reconfigure重新导入配置文件,可以在调试时,修改配置文件后运行此命令,使配置文件生效
scan 扫描
scan_result显示扫描结果
bss获取扫描结果 某一个热点的具体信息
list_networks已经保存配置文件中的AP
add_network添加一个AP配置,在framework还没调通之前,可以用此命令进行配置
set_network 设置ap的属性,用set_network 不接参数,可以看到所有可用信息。
select_network 选择一个已经配置的AP进行连接,这个命令用的比较多。上面set_n 命令进行配置后,可以用这命令进行连接
enable_network将network 的标志位
disable 置0,该位为1时,wifi在断开连接状态,不会去主动连接该热点。如果wifi不主动连接任何热点,可以查看配置文件。
disable_network 对应上面disable_network network_id
remove_network id 会删除对应network配置
get_network 获取network的属性对应之前的set_network
save_config 保存信息到配置文件中,每次修改配置后记得用

不同的无线网络认证方式不同设置:

1)open(开放式认证方式,分为):
     wpa_cli -iwlan0 set_network 0 ssid '"wlan"'(PS:wlan是无线的ssid号,外面是一对双引号,然后再外面是一对单引号)
     wpa_cli -iwlan0 set_network 0 key_mgmt NONE
2)wep(分为开放式和共享式):
     wpa_cli -iwlan0 set_network 0 ssid '"wlan"'
     wpa_cli -iwlan0 set_network 0 key_mgmt NONE
     wpa_cli -iwlan0 set_network 0 wep_key0 '"wlan_key"'
     如果是共享式,还需要配置:wpa_cli -iwlan0 set_network 0 auth_alg SHARED(默认是开放式,可以不配置)
 3)WPA/WPA2-Personal认证方式:
       wpa_cli -iwlan0 set_network 0 ssid '"wlan"'
     wpa_cli -iwlan0 set_network 0 key_mgmt WPA-PSK
     wpa_cli -iwlan0 set_network 0 proto WPA(WPA2)
     wpa_cli -iwlan0 set_network 0 pairwise TKIP(CCMP)
     wpa_cli -iwlan0 set_network 0 group TKIP(CCMP)
     wpa_cli -iwlan0 set_network 0 psk '"wlan_password"'
   4)WPA/WPA2-Enterprise认证方式:
      wpa_cli -iwlan0 set_network 0 ssid '"wlan"'
      wpa_cli -iwlan0 set_network 0 key_mgmt WPA-EAP
      wpa_cli -iwlan0 set_network 0 pairwise TKIP(CCMP)
      wpa_cli -iwlan0 set_network 0 group TKIP(CCMP)
      wpa_cli -iwlan0 set_network 0 eap PEAP
      wpa_cli -iwlan0 set_network 0 identity '"username"'
      wpa_cli -iwlan0 set_network 0 password '"password"'
      如果是WPA2-Enterprise认证:需要设置proto:wpa_cli -iwlan0 set_network 0 protoWPA2 

查看博客

wpa_supplicant
wpa_supplicant详解
wpa_supplicant 使用
wpa_supplicant 常用操作
命令状态查看
wpa_passphrase – 产生一个存储ssid与之对应的psk密码的文件
wpc_cli命令
wpa_supplicant了解

 类似资料:

相关阅读

相关文章

相关问答