WPA_supplicant 是 WPA/WPA2 认证的客户端,同时也适用于 WEAP,对有线、无线网络都可以使用,不过,WPA2/TKIP (就是前两天说被破解了的那个,不过目前仍然是最安全的WLAN无线连接方式。哦?你说WAPI?哦,不好意思,我没见过真的,不好说哈。)还是我们最首选的方式。
要使用 WPA_Supplicant,在 /etc/network/interfaces (这个网卡配置文件的格式是 Debian 系的特点 RH/SuSE 系有明显不同,未做研究)中,需要指定使用 WPA_supplicant
allow-hotplug wlan0 iface wlan0 inet manual wpa-driver wext wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
这里,注意第二行的 manual,指定既不配置固定IP,又不使用 DHCP,要“手工”配置,而后,指定了 WPA 的驱动,wext 是 Linux kernel 的 Wireless Extension,凡是使用 Linux 原生驱动的情况,只有使用固定网络的情况和使用 atmel 芯片的情况例外,关于这些例外,请参考软件文档。
wpa-roam (漫游模式)是指,根据后面指定的配置文件进行匹配,接入可以发现的网络,当然,也可以配置成不使用 wpa-roam,而是固定在这里写明配置,但对于大部分笔记本用户来说,在不同时间地点接入两个以上的网络是常有的事,因此 roam 是更常见的模式。
wpa_supplicant.conf 这个文件很简单,是用来描述一个个网络的,下面是我家的网络配置
network={ ssid="fusion" scan_ssid=1 key_mgmt=WPA-PSK proto=WPA pairwise=TKIP group=TKIPpsk="my-wlan-passwd" id_str="fusion" }
对每个网络都是这么一段,这里面 ssid 是无线路由器设置的 SSID,后面 key_mgment, proto, group 这几个字段指定了 WPA/TKIP 方式,而 psk 指定的就是我的密钥,这几个对于不同的认证方式有所不同,scan_ssid=1 是用来对付设置不广播网络SSID的路由器的,我的路由器就是这么配置的,呵呵,理由自然是增强一层安全性了。最后的 id_str 是这段描述的一个标记,在 /etc/network/interfaces 里,可以针对这个 id 进行配置,如
iface fusion inet dhcp
指定对这个网络进行 dhcp 获取 IP。如果是 WEP 的话,设置可能是这样
network={ ssid="wepnet" key_mgmt=NONE wep_key0="WEPKEY" wep_tx_keyidx=0 id_str="wep" }
字段含义与 WPA 的类似。 当然,在 wpa_supplicant.conf 里可以设定一个缺省的网络,在没有其他网络时进行尝试
network={ key_mgmt=NONE }
在 interfaces 里也可以指定一个缺省配置,如,对没有特殊声明的大多数网络都采用 dhcp
iface default inet dhcp
以上就是使用 wpa_supplicant 配置无线网络认证的简单方法,wpa_supplicant 也提供了很多例子可供参考,大家可以尝试一下。
WPA-SUPPLICANT: http://hostap.epitest.fi/wpa_supplicant/
OpenSSL:http://www.openssl.org/source/
1. OpenSSL:openssl-0.9.8i.tar.gz
./Config --prefix=../openssl/__install os/compiler:/usr/local/mipseltools-gcc412-lnx26/bin/mipsel-linux-gcc
修改Makefile
480 install_sw:
481 @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin /
482 $(INSTALL_PREFIX)$(INSTALLTOP)/lib /
483 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines /
484 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig /
485 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl /
486 $(INSTALL_PREFIX)$(OPENSSLDIR)/misc /
487 $(INSTALL_PREFIX)$(OPENSSLDIR)/certs /
488 $(INSTALL_PREFIX)$(OPENSSLDIR)/private
489 @set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;/
490 do /
491 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; /
492 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); /
493 done;
494 @set -e; target=install; $(RECURSIVE_BUILD_CMD)
将最后一行改为
494 @set -e; target=install; #$(RECURSIVE_BUILD_CMD)
这个会导致执行make install 时cp 头文件出错
make
make install
cp include/openssl/* ../openssl/_install/include/openssl/ (将头文件拷贝到安装目录下)
cp -rf ../openssl/__install/* /usr/local/mipseltools-gcc412-lnx26/mipsel-linux
2.WPA-SUPPLICANT
make mkconfig
make CC=mipsel-linux-gcc DESTDIR=./install
make CC=mipsel-linux-gcc DESTDIR=./install install
将install/usr/local/sbin 拷贝到 开发板上