Openwrt使用802.1X,突破drcom认证
时间 2014-10-17 23:42:36
HDQ's Blog
主题
OpenWRT
最近学校换了Drcom(发音:dogcom)认证, 在默认插上网线的时候,路由器是获取不了IP的,获取不了IP,就不能连接内网,连接不了内网就不能通过代理上外网,严重影响我的情绪.当时唯一的办法就是在电脑乖乖地用学校提供的客户端,路由器不能用了,试了几个学校编译出来的版本,几乎都不能用,貌似他们的都没带802.1X认证, 难道装着openwrt的路由器就废了吗? 先分享几个开源的项目,你们可以先0看一下几个开源项目吧: 哈尔滨工业大学的EasyDrcom ,带802.1X认证,提供Openwrt和Linux版本,我的路由器是MIPS架构的AR71XX,看他 论坛的介绍 是支持的,但是我编译出来的openwrt版本不可用,Linxu版本没试. U62协议不带802.1X认证 ,纯python写的,带图形界面,我这里因为无法需要802.1X认证,所以无效 带802.1X认证,java实现 ,因为openwrt跑java太麻烦了,没弄,pc可以考虑这个,看代码写的不错,没试. 我的dogcom版本号如下:
产品版本:5.2.0.201408291.A.W.100500 主模块:5.2.0.201408290.A.W.100500 通讯模块:0.8(U62.R0)(1x)Build(k33.20140714) 升级模块:5.2.0.201408290.A.W.100500 检测模块:5.2.0.201408290.A.W.100500 网际协议:IPV4 认证/封装方式:Dr.COM / 不封装防代理 内网认证:已启用
这里不认证的时候是不能获取ip的, 看官方客户端的日志以及气泡提示, ip应该是802.1X认证通过之后获取到IP的,所以现在首要的想法是先通过802.1X认证之后看能不能获取到IP, 能获取到就一些好说了, 包括可以使用不带802.1X的认证程序了. 一次偶然的机会听到同学说校园正在使用的微哨通过802.1X的方式登陆方式可以连到内网, 灵感马上来了, 微哨是锐捷的,居然可以获取到drcom设备的IP, 说明使用的802.1X方式应该是相同的, drcom并没有使用私有的802.1X协议. 马上开整: openwrt默认带的是wpad-mini,这个软件其实是带wpa_supplicant-mini以及hostapd-mini的套件.不支持标准802.1X认证,但是wpad是支持的,所以思路就是把wpad-mini换成wpad.所以很自然就有以下步骤:
opkg updata opkg remove wpad-mini opkg install wpad
但是我用的openwrt 12.09 (Attitude Adjustment)仓库里面wpad是有bug的,重启wifi之后就起不来,
运行
/sbin/wifi: eval: line 1: hostapd_set_log_options: not found /sbin/wifi: eval: line 1: hostapd_set_bss_options: not found Configuration file: /var/run/hostapd-phy0.conf Using interface wlan0 with hwaddr xx:xx:xx:xx:98:66 and ssid "" Failed to set beacon parameters Interface initialization failed wlan0: interface state UNINITIALIZED->DISABLED wlan0: AP-DISABLED wlan0: Unable to setup interface. hostapd_free_hapd_data: Interface wlan0 wasn't started ELOOP: remaining socket: sock=12 eloop_data=0x5c0118 user_data=(nil) handler=0x4178e9 Failed to start hostapd for phy0
这是 官方12年的bug
, 但是我安装的是 其实可以简单地把wpa-supplicant-mini换成wpa-supplicant就行了, wpad-mini不用换成wpad, 顺便安装上wpa-cli, 便于看状态
opkg install wpa-supplicant wpa-cli
这里有个有趣的问题是, 路由器没有网络怎么装软件?最简单的办法就是直接去把对应版本的这几个ipk下载下来,然后用opkg直接安装.
折腾一点的办法就是可以把官方的包全部下载下来, 当然不是一个一个点击下载,每个平台都有一个编译工具包的,里面有带软件包的, 例如ar71xxx平台12.09版本的从这里下载 http://downloads./attitude_adjustment/12.09/ar71xx/generic/OpenWrt-ImageBuilder-ar71xx_generic-for-linux-i486.tar.bz2
然后把packages目录弄到hfs上去, 最后把
基本软件装完了, 接着就是配置wpa-supplicant了,很简单.把下面内容保存为文本,该配置文件放到
ctrl_interface=/var/run/wpa_supplicant ap_scan=0 network={ key_mgmt=IEEE8021X eap=MD5 identity="用户名" password="密码" eapol_flags=0 }
接着路由器就插上网线开始认证吧. Roboswitch?系列交换芯片:
wpa_supplicant -i eth0 -D roboswitch -c /etc/8021x.conf -p multicast_only=1 -B
非Roboswitch?系列交换芯片:
wpa_supplicant -i eth0 -D wired -c /etc/8021x.conf -B
这里要注意: * eth0根据你的wan口情况来改, 不知道的可以登陆openwrt管理面板,在网络->接口 查看
* * 如果你不知道你的是什么交换芯片, 两个都试一下就知道了 查看是否运行成功可以通过wpa_cli来查看
wpa_cli status
成功之后会有如下字样 如果成功了, 但是没有ip的话,可以用这条命令获取ip
udhcpc -i eth0 #ech0同样根据你的wan口情况来改
若不成功检查以下: * 网线有没有插, 别笑, 很容易忽视的 * 检查账号密码是否正确, 两边要带””的哦 * 检查-i 接口是否正确, 不行尝试换其他. 以上都不行的话, 该怀疑一下环境是否支持标准802.1X认证. 最后附上几条常用命令:
wpa_cli logoff #下线 wpa_cli terminate #结束程序
理论上这种方式可以用在使用了锐捷、H3C、Drcom认证方式的地方。 |
|
来自: aaawoyucheng > 《路由》