OpenWrt下进行标准802.1X认证

学校网络使用的是标准802.1X认证(非H3C、锐捷等私有认证),虽然没有限制路由的使用,但是原生支持802.1X认证的路由器是少之又少,这给我们的使用带来了很大的不便。

很久就对OpenWrt、DD-WRT、Tomato等第三方路由器固件强大的功能有所耳闻,但是限于条件一直没有使用过。最近由于需要,购入一支持第三方固件刷入的设备,经过一番探索,终于在OpenWrt系统下使用802.1X认证成功。

使用的设备为中兴H618B,Broadcom 5354处理器,16M Flash,32M RAM,1 WAN + 4 LAN,1 USB,54Mbps无线。
准备工作

首先,需要根据自己的路由器型号,选择合适版本的OpenWrt系统刷入,并进行常规的配置(无线、LAN等)。

然后,需要确定路由器WAN口在系统中的名称,可以通过路由器的配置界面查看,本例中为eth0.1。

接下来进行软件包的安装。进行802.1X认证需要安装两个软件包:wpa_supplicant与wpa_cli,wpa_supplicant进行认证,wpa_cli进行认证后的操作(查看状态、注销等)。wpa_supplicant包含在wpad中,但由于OpenWrt已经默认安装wpad-mini,我们需要先卸载wpad-mini再进行安装。命令如下:

opkg update
opkg remove wpad-mini
opkg install wpad
opkg install wpa-cli

安装完成后,需要创建认证所需的配置文件,将认证使用的用户名、密码填写进去,本例中将配置文件存放至/etc/8021x.conf。配置文件内容如下:

ctrl_interface=/var/run/wpa_supplicant
ap_scan=0
network={
key_mgmt=IEEE8021X
eap=MD5
identity=”用户名″
password=”密码″
eapol_flags=0
}

另外,对于部分Broadcom处理器的路由器,由于其集成的Roboswitch™系列交换芯片存在Bug(见参考链接),会导致802.1X认证发送的多播帧被丢弃,对于此类路由器,需要使用wpa_supplicant 0.69以上版本提供的roboswitch驱动进行认证,对于不存在该Bug的路由器,使用普通wired驱动进行认证。所以,需要提前确认路由器交换芯片型号,并在安装软件包时注意版本。
进行认证

认证命令:

Roboswitch™系列交换芯片:wpa_supplicant -i eth0.1 -D roboswitch -c /etc/8021x.conf -p multicast_only=1 -B
非Roboswitch™系列交换芯片:wpa_supplicant -i eth0 -D wired -c /etc/8021x.conf -B

注:WAN口名称与配置文件路径需要根据实际情况进行替换。

查看是否认证状态命令:

wpa_cli status

若显示“Authorized”,则表示认证成功。

下线命令:

wpa_cli logoff
wpa_cli terminate

第一条为注销认证,第二条为终止wpa_supplicant的运行。

若在认证成功后没有获得IP地址,则执行命令:

udhcpc -i eth0.1

本文章由作者:佐须之男 整理编辑,原文地址: OpenWrt下进行标准802.1X认证
本站的文章和资源来自互联网或者站长的原创,按照 CC BY -NC -SA 3.0 CN协议发布和共享,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资 源请尽快联系站长,我们会在24h内删除有争议的资源。欢迎大家多多交流,期待共同学习进步。

相关推荐