OH3C 的安装及使用 H3C 802.1x Client for OpenWrt
OH3C是基于Openwrt路由器固件平台的H3C 802.1x兼容客户端,基于YaH3C开发。
目前已经实现的功能有:
- H3C 802.1x认证
- 多用户管理
- mac绑定设置及自动修改mac
项目主页:
Github:https://github.com/nanpuyue/oh3c
Google Code:https://code.google.com/p/oh3c
下载:
https://code.google.com/p/oh3c/downloads/list
前提
首先要会用ssh登录路由器,但是如果是首次将路由器刷成openwrt或者复位过设置,那么路由器是没有密码,也不会允许ssh登录的,解决方法是使用telnet登录或者web登录设置密码。在windows下面telnet和ssh登录可以使用Putty。
你还可以在Saved Sessions下面填上一个名称,然后点击保存,以后直接在下面点击这个名称,再点Load、Open就可以登录了。 需要注意的是登录ssh是需要输入你设置的密码,但是密码不会显示,对,连星号都不会显示,只管输入就是了。
依赖
- python-mini
或者使用python-mini-oh3c代替,python-mini-oh3c在本项目下载页面下载。 下面是快速下载链接:
python-mini-oh3c_2.6.4-4_ar71xx.ipk
python-mini-oh3c_2.6.4-4_brcm63xx.ipk
python-mini-oh3c_2.7.3-1_ar71xx.ipk
一般的openwrt固件不包含python的支持,所以你可以自行编译一个带python-mini的固件,或者直接在路由器里面利用包管理软件安装python-mini(路由器须联网):
opkg update
opkg install python-mini
如果无法联网,可以下载python-mini或者python-mini-oh3c,上传到路由器的/tmp目录,建议windows用户使用Winscp上传文件!再ssh登录路由器安装:
opkg install /tmp/python-mini*.ipk
安装时如果提示依赖zlib而无法安装,请下载zlib上传到路由器/tmp目录。 先安装zlib,再安装python-mini或python-mini-oh3c:
opkg install /tmp/zlib*.ipk
opkg install /tmp/python-mini*.ipk
安装OH3C
OH3C目前有两个版本,一个web界面控制版,需luci支持:luci-app-oh3c,还有一个命令行版,没有web界面,两个版本不能共存,只能任选其一。
如果你使用的是trunk版的openwrt,建议使用luci-app-oh3c:
luci-app-oh3c_2013-2-6_all.ipk
带Web界面的版本可以使用命令传递参数使用,用法是:
python /usr/oh3c/oh3c.py <username> <password> <dev> <mac>
如果不绑定mac,mac一项可以使用default,下面是自启脚本,只适用于带web界面的版本:
#!/bin/sh /etc/rc.common
# Copyright (C) 2012 OpenWrt.org
# Copyright (C) 2013 [email protected]
START=90
current=`uci get oh3ctest.@control[0].current`
ifname=`uci get oh3ctest.@control[0].ifname`
for i in `seq 0 10`;do
username=`uci get oh3ctest.@userinfo[$i].username`;
if [ $username = $current ];then
password=`uci get oh3ctest.@userinfo[$i].password`
macaddr=`uci get oh3ctest.@userinfo[$i].macaddr`
break
fi;
done
start() {
python /usr/oh3c/oh3c.py $current $password $ifname $macaddr >> /tmp/log/oh3c
}
stop() {
pid=`ps | grep /usr/oh3c/oh3c.py | grep -v grep | awk '{printf $1}'`
if [ -n "$pid" ];then
kill $pid
fi
}
restart() {
stop
start
}
将脚本保存为/etc/init.d/oh3c
,运行/etc/init.d/oh3c enable
启用自启动。
dreambox由于暂时有兼容性问题,所以不能使用带luci界面支持的,请下载下面命令行版本包:
oh3c_2013-2-6_all.ipk
在Linux下使用命令行上传文件想来对于Linux用户不是难事,就略过了。
使用OH3C
安装luci-app-oh3c的童鞋,使用浏览器从web端登录路由器,OH3C控制入口在Network[网络]——OH3C。 另外建议使用主题bootstrap:
opkg update
opkg install luci-theme-bootstrap
点击Add[添加]添加用户,设置好用户名、密码,如果有需要,切换到Advanced Settings[高级设置]标签设置连网设备及mac。 然后点击Save[保存],要注意的是,新添加的用户要点两次Save[保存]才能在下面的Current user中选择。 点击Save&Appy[保存&应用]连网。 目前无法显示连网状态,如果再次点击Save&Appy[保存&应用]会断网。
要切换用户,只需要在Current user中选择相应的用户,依次点击Save[保存]和Save&Appy[保存&应用]即可。
需要注意的是,如果你使用的mac绑定功能,这时会修改路由器wan口的mac地址,所以相应时间会久一些,还有极少数情况连接失败,这时请再次点击Save&Appy[保存&应用]。 web版的OH3C连接时不会有屏幕输出信息,但是所有输出信息都保存在/tmp/log/oh3c中,重启路由器后消失,如果使用中遇到问题,可以将此文件中的内容贴出来。
使用命令行版本的童鞋,先使用ssh登录路由器,输入命令:
oh3c
然后按提示操作即可。
从V0.2开始,OH3C加入了mac设置项,以方便mac绑定的情况,如果你不需要设置mac,命令行版本请在设置帐号要求输入mac时直接回车,web版请保持默认的default,这样该帐号联网时就不会更改mac,而保持之前的mac设置。
另外,如果你的路由器仅有4M flash,建议自己编译固件,你可以在编译openwrt时去掉和PPP和PPPOE相关的包,这样固件体积会缩小很多。
如果使用中有任何问题,欢迎反馈:
https://code.google.com/p/oh3c/issues/list