目的
熟悉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了解