打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Openwrt使用802.1X,突破drcom认证

Openwrt使用802.1X,突破drcom认证

最近学校换了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 / 不封装防代理内网认证:已启用

产品版本 : 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 updataopkg remove wpad-miniopkg install wpad

opkg updata

opkg remove wpad - mini

opkg install wpad

但是我用的openwrt 12.09 (Attitude Adjustment)仓库里面wpad是有bug的,重启wifi之后就起不来,

运行 wifi up 之后有如下提示:

/sbin/wifi: eval: line 1: hostapd_set_log_options: not found/sbin/wifi: eval: line 1: hostapd_set_bss_options: not foundConfiguration file: /var/run/hostapd-phy0.confUsing interface wlan0 with hwaddr xx:xx:xx:xx:98:66 and ssid ""Failed to set beacon parametersInterface initialization failedwlan0: interface state UNINITIALIZED->DISABLEDwlan0: AP-DISABLED wlan0: Unable to setup interface.hostapd_free_hapd_data: Interface wlan0 wasn't startedELOOP: remaining socket: sock=12 eloop_data=0x5c0118 user_data=(nil) handler=0x4178e9Failed to start hostapd for phy0

/ 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 , 但是我安装的是 wpad_2014-06-03-1_ar71xx.ipk , 14年的版本,依旧有这个bug, 如果不幸出现这种情况,可以找个旧点版本的wpad-mini试试运气, 不行的话就只能恢复出厂了.我在这里折腾了好久

其实可以简单地把wpa-supplicant-mini换成wpa-supplicant就行了, wpad-mini不用换成wpad, 顺便安装上wpa-cli, 便于看状态

opkg install wpa-supplicant wpa-cli

opkg install wpa - supplicant wpa - cli

这里有个有趣的问题是, 路由器没有网络怎么装软件?最简单的办法就是直接去把对应版本的这几个ipk下载下来,然后用opkg直接安装.

折腾一点的办法就是可以把官方的包全部下载下来, 当然不是一个一个点击下载,每个平台都有一个编译工具包的,里面有带软件包的, 例如ar71xxx平台12.09版本的从这里下载 http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/OpenWrt-ImageBuilder-ar71xx_generic-for-linux-i486.tar.bz2 然后把packages目录弄到hfs上去, 最后把 /etc/opkg.conf 里面的源地址照着改成你自己架设的服务器地址就行了.

基本软件装完了, 接着就是配置wpa-supplicant了,很简单.把下面内容保存为文本,该配置文件放到 /etc/8021x.conf

ctrl_interface=/var/run/wpa_supplicantap_scan=0network={    key_mgmt=IEEE8021X    eap=MD5    identity="用户名"    password="密码"    eapol_flags=0}

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

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

wpa_supplicant - i eth0 - D wired - c / etc / 8021x.conf - B

这里要注意:

* eth0根据你的wan口情况来改, 不知道的可以登陆openwrt管理面板,在网络->接口 查看

* /etc/8021x.conf 就是上一步你保存的配置文件.

* 如果你不知道你的是什么交换芯片, 两个都试一下就知道了

查看是否运行成功可以通过wpa_cli来查看

wpa_cli status

wpa_cli status

成功之后会有如下字样 Supplicant PAE state=AUTHENTICATING , 当然里面也显示你获取到的ip

如果成功了, 但是没有ip的话,可以用这条命令获取ip

udhcpc -i eth0     #ech0同样根据你的wan口情况来改

udhcpc - i eth0      #ech0同样根据你的wan口情况来改

若不成功检查以下:

* 网线有没有插, 别笑, 很容易忽视的

* 检查账号密码是否正确, 两边要带””的哦

* 检查-i 接口是否正确, 不行尝试换其他.

以上都不行的话, 该怀疑一下环境是否支持标准802.1X认证.

最后附上几条常用命令:

wpa_cli logoff  #下线wpa_cli terminate #结束程序

wpa_cli logoff    #下线

wpa_cli terminate #结束程序

理论上这种方式可以用在使用了锐捷、H3C、Drcom认证方式的地方。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
OPENWRT 支持git
【原创】调试ralink 5370 wifi芯片 二
权威开源项目(linux系统、sip、live555)
rtl8188etv无线网卡驱动移植
WIFI从零开始学起
TQT507开发板wifi蓝牙使用指南
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服