环境:FreeBSD 8.0; 基于802.1x认证系统的校园网。
FreeBSD自带了wpa_supplicant程序,所以不需要自己安装了,其中几个关键文件的路径如下:
/usr/sbin/wpa_supplicant : 程序文件
/etc/wpa_supplicant.conf : 账号配置文件
/etc/rc.d/wpa_supplicant.sh : 一个shell
wpa_supplicant.conf 编写帮助可以使用命令 man wpa_supplicant.conf 查看,对于我所处的环境,wpa_supplicant.conf配置内容如下:
1: ctrl_interface=/var/run/wpa_supplicant
2: ctrl_interface_group=0
3: eapol_version=2
4: ap_scan=0
5:
6: #后面的“{”不能换行,否则提示语法错误
7: network={
8: key_mgmt=IEEE8021X
9: eap=MD5
10: identity="用户名"
11: password="密码"
12: eapol_flags=0
13: }
14: #或者(因为实际上EAP协议使用的是MD5认证算法)
15: network={
16: key_mgmt=IEEE8021X
17: identity="用户名"
18: password="密码"
19: phase1="auth=MD5"
20: phase2="auth=PAP password=密码"
21: eapol_flags=0
22: }
23:
配置好之后就可以使用下面的方式登录了(我的网卡是vr1):
1: wpa_supplicant -i vr1 –D wired -c /etc/wpa_supplicant.conf –B
2: sleep 1
3: dhclient vr1
值得注意的是:拨号之后应该等一下,然后使用dhclient(或者dhcpcd)重新自动获取ip地址,否则就是拨号成功,但是ip没有变化。
由于我的系统是作为服务器,所以这里需要在启动时自动拨号,然后获取ip地址,所以在rc.conf中增加了下面语句:
1: background_dhclient_vr1="YES" # Start dhcp client on vr1 in the background.
2: ifconfig_vr1="dhcp" # Config dhcp client on vr1
1: wpa_supplicant -i vr1 –D wired -c /etc/wpa_supplicant.conf –B
2: sleep 1
3: dhclient vr1
此外还需要用wpa_cli命名,使用方法如下:
1: wpa_cli -i vr1 status #Show status
2: wpa_cli -i vr1 logoff #Set ``logoff'' state.
3: wpa_cli -i vr1 logon #Set ``logon'' state.
4: wpa_cli -i vr1 terminate #Force wpa_supplicant to terminate.