当前位置: 主页 > 操作系统 > FreeBSD > 彻底解决 FreeBSD-6.0 下 802.1X 验证问题

彻底解决 FreeBSD-6.0 下 802.1X 验证问题

时间:2009-10-21来源:互联网 点击:
热爱 FreeBSD 的人们!长久一来困扰我们的 802.1X 验证问题,今天终于得以彻底地解决。在 Linux 系统中这个问题已经被 Xsupplicant 完美地解决,但它对 *BSD 的支持始终未能完成,我们要不要继续对它心存幻想呢?我们已经不能再等了。wpa_supplicant 的出现为我们解决了这一个历史性难题。

一、准备性工作

1) 我们需要安装 FreeBSD-6.0 及其开发环境,此外还要安装 gmake 包。

gmake 在 FreeBSD-6.0 CD2 中,找到它 pkg_add 就行了。

2) 安装必要的库 libdnet libcap openssl。

1>安装 libdnet

-到 http://libdnet.sourceforge.net/ 下载 libdnet-1.10.tar.gz
-$tar xzvf libdnet-1.10.tar.gz
-$cd libdnet-1.10
-$./configure --prefix=/usr
-$make
-#make install (要超级用户权限执行)

2>安装 libpcap

-到 http://www.tcpdump.org/release/ 下载 libpcap-0.9.4.tar.gz
-$tar xzvf libpcap-0.9.4.tar.gz
-$cd libpcap-0.9.4
-$./configure --prefix=/usr
-$make
-#make install (要超级用户权限执行)

3>安装 opensslopenssl-0.9.7g.tar.gz

-到 http://www.openssl.org/source/ 下载 openssl-0.9.7g.tar.gz
-$tar xzvf openssl-0.9.7g.tar.gz
-$cd openssl-0.9.7g
-$./config --prefix=/usr
-$make
-$make test
-#make install (要超级用户权限执行)

二、安装 wpa_supplicant

1)获取 wpa_supplicant 源码

-到 http://hostap.epitest.fi/releases 下载 wpa_supplicant-0.4.0.tar.gz
注:1、FreeBSD-6.0 自带 wpa_supplicant 的 0.3.9版,但此版本不支持 wired 方式。
注:2、0.4.0版以上的也可能可以用,但0.4.6版有问题,编译不能通过。

2)配置并安装

-$tar xzvf wpa_supplicant-0.4.0.tar.gz
-$cd wpa_supplicant-0.4.0
-编辑生成 .config (可参看 defconfig 文件。下面是我的 .config 可供参考)
-------我的.config 文件---------

CONFIG_DRIVER_BSD=y
CONFIG_DRIVER_WIRED=y
CONFIG_IEEE8021X_EAPOL=y
CONFIG_EAP_MD5=y
CONFIG_EAP_MSCHAPV2=y
CONFIG_EAP_TLS=y
CONFIG_EAP_PEAP=y
CONFIG_EAP_TTLS=y
CONFIG_EAP_GTC=y
CONFIG_EAP_OTP=y
CONFIG_EAP_LEAP=y
CONFIG_PKCS12=y
CONFIG_SMARTCARD=y
CONFIG_DNET_PCAP=y
CONFIG_CTRL_IFACE=y

---------------------------

-修改 Makefile 文件,将第274行的 LIBS += -ldl 用#注释掉,注意,这很重要。

注:1、在 libdl 中有操纵动态连接库的函数,但在 FreeBSD 中这些函数已包含在 libc 中,因此没有 libdl。

-$gmake (注意是 gmake!)
-#gmake install (要超级用户权限执行)

三、wpa_supplicant 的基本应用

这里仅仅介绍它的基本使用方法,要完全了解它的用法请参看其文档。

1>清除系统中旧版本的 wpa_supplicant 的干扰

-#rm /usr/sbin/wpa_supplicant
-#rm /usr/sbin/wpa_cli

2>建立 wpa_supplicant 的配置文件 /etc/wpa_supplicant.conf

注:1、可参照源代码目录中的 wpa_supplicant.conf 文件,根据具体情况进行配置(有些繁琐)。
注:2、由于我们校园网用的是 eap_md5 验证方式,故我的 /etc/wpa_supplicant.conf 如下:

---------------------------

ctrl_interface=/var/run/wpa_supplicant

ctrl_interface_group=wheel

ap_scan=0

network={

key_mgmt=IEEE8021X

eap=MD5

identity="用户名"

password="密码"

eapol_flags=0

}

----------------------------

3>运行 wpa_supplicant 进行身份验证

-#ifconfig rl0 down (这里的 rl0 是网卡设备,根据你的实际情况填写,下同。)
-#ifconfig rl0 up (这里的 rl0 是网卡设备,根据你的实际情况填写,下同。)
-#wpa_supplicant -B -c /etc/wpa_supplicant.conf -i rl0 -D wired >& /var/log/wpa.log
-#cat /var/log/wpa.log (若没出错则不会有内容。)

4>用 DHCP 方式申请 IP 地址 (我们校园网 IP 是动态分配的,估计很多学校都是这样。)

-#dhclient rl0 (这里的 rl0 是网卡设备,根据你的实际情况填写。)


四、wpa_supplicant 的用法的进一步讨论

1>可以将整个过程写成一个脚本

-编辑生成 startnet1x.sh 内容如下

-----------------------------

#!/bin/csh

ifconfig rl0 down
ifconfig rl0 up

echo "Start Wpa_supplicant ..."
wpa_supplicant -B -c /etc/wpa_supplicant.conf -i rl0 -D wired >& /var/log/wpa.log
sleep 3
echo "Done."

dhclient rl0

------------------------------

-#chmod 755 startnet1x.sh
-#./startnet1x.sh (测试用)
-#cp startnet1x.sh /usr/local/sbin (备用)

(往后直接运行 startnet1x.sh 就行了。)

2>开机自动运行
站长资讯网
. TAG: freedbsd 802 1X验证 解决
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言