wpa_supplicant 客户端介绍和源码安装

linux 系统平台:

一. wpa_supplicant介绍

WPA是WiFi Protected Access的缩写,中文含义为“WiFi网络安全存取”。WPA是一种基于标准的可互操作的WLAN安全性增强解决方案,可大大增强现有以及未来无线局域网络的数据保护和访问控制水平。
Wpa_supplicant是一个免费的IEEE 802.1x客户端软件,支持多种操作系统,包括:Linux,BSD, 苹果计算机的Mac OS, 以及微软的Windows操作系统。它同时支持(无线受保护访问)WPA和WPA2(IEEE 802.11i / RSN)。Wpa_supplicant被设计成在后台运行来控制无线连接。同时拥有图形用户界面和命令行界面来监听运行的客户端。通过这些用户界面,用户可以看到所有可得到的网络
直译为: 用户空间802.1x/WPA请求者(无线client端),适用于linux /BSD/Windows驱动

也就是说,wpa_supplicant是一个client侧使用的进程,它包含了802.1x、WPA的请求工作。

二. 源码安装指南

  • 依赖库安装

    依赖库源码地址:
    http://ftp.gnu.org/gnu/bison/
    https://linux.softpedia.com/get/Programming/Interpreters/Flex-23296.shtml
    http://www.infradead.org/~tgr/libnl/files/libnl-3.2.25.tar.gz
    https://www.openssl.org/source/

  • 依赖库源码:

    bison-3.2.tar.gz;flex-2.6.4.tar.gz; libnl-3.2.25.tar.gz ; openssl-1.1.1.tar.gz
    依赖库安装说明:
    前三个依赖库编译安装方法类似 :{

    1. tar -xvf libnl-3.2.25.tar.gz || bison-3.2.tar.gz || flex-2.6.4.tar.gz
    2. cd libnl-3.2.25 || bison-3.2.tar.gz || flex-2.6.4.tar.gz
    3. ./configure --prefix=/usr/local/ || ./configure --prefix=/usr/local/tmp/ (linbn-3.2.25特定安装目录)
    4. make //编译
    5. make install
  • openssl 源码安装:

    {

    1. 在文件夹下解压缩,执行如下命令:
      a) tar -xzf openssl-1.1.1.tar.gz
      b) 得到openssl-1.1.1文件夹。
    2. 进入解压目录,执行如下命令
      i. cd openssl-1.1.1
    3. 设定Openssl 安装路径,( --prefix )参数为欲安装之目录,执行如下命令:
      i. ./config --prefix=/usr/local/openssl
    4. 执行命令./config -t
    5. 执行make,编译Openssl,编译需要等待一定的时间。
    6. 执行make install,安装 Openssl,安装也需要一定的时间。
      }
  • Wpa_supplicant 安装

1.解压

tar -xzf wpa_supplicant-2.6.tar.gz
cd wpa_supplicant-2.6/wpa_supplicant

2.编译与安装

#cp  deconfig .config
  Vi .config 
修改.config,使能CONFIG_LIBNL32=y
   修改Makefile ,加上libnl 和 opnssl的头文件 和 lib库。
CFLAGS += -I/usr/local/openssl/include
LIBS += -L/usr/local/openssl/lib
CFLAGS += -I/usr/local/tmp/include/libnl3
LDFLAGS += -L/usr/local/tmp/lib
将自带的defconfig改名为.config并编辑,打开如下选项:
CONFIG_LIBNL32=y
:wq
	#make;  
常见错误:

1.WPA_suppclient 错误
(1)
book@ubuntu:/wpa_supplicant/; make
/usr/bin/ld: cannot find -lnl
collect2: ld returned 1 exit status
make: *** [hostapd] Error 1
将自带的defconfig改名为.config并编辑,打开如下选项:
CONFIG_LIBNL32=y
原因:{
vi src/drivers/drivers.mk +38
发现下面这几句。
ifdef CONFIG_LIBNL32
DRV_LIBS += -lnl-3
DRV_LIBS += -lnl-genl-3
DRV_CFLAGS += -DCONFIG_LIBNL20 -I/usr/include/libnl3
那么我们只需要,在配置文件.config里,加
CONFIG_LIBNL32 = y 就可以了。

(2){
Package libnl-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libnl-3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libnl-3.0' found
则需要将libnl-3.0.pc所在目录添加到PKG_CONFIG_PATH变量中,先用如下命令查看所在目录:
 find / -name "libnl-3.0.pc"
/lib/pkgconfig/libnl-3.0.pc
在/etc/bash.bash的最后一行加:export PKG_CONFIG_PATH=/lib/pkgconfig/:$PKG_CONFIG_PATH
重启一次环境变量:source /etc/bash.bashrc
确认环境变量:    echo $PKG_CONFIG_PATH

}
2.openssl 安装错误
{
/usr/bin/ld: cannot find -lcrypto
ll /usr/lib64/libssl*,得到
-rwxr-xr-x. 1 root root 242112 Jul 17 2012 /usr/lib64/libssl3.so
lrwxrwxrwx. 1 root root 15 Nov 30 01:31 /usr/lib64/libssl.so.10 -> libssl.so.1.0.0
-rwxr-xr-x. 1 root root 372488 Aug 23 2012 /usr/lib64/libssl.so.1.0.0
根本原因是,虽然有libssl的动态库文件,但没有文件名为 libssl.so 的文件,ld找不到它
于是添加软链接:
ln -s /usr/lib64/libssl.so.1.0.0 /usr/lib64/libssl.so
ln -s /usr/lib64/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so
}
{
openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory 这是由于openssl库的位置不正确造成的。

解决方法:
在root用户下执行:
ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值