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
putty_telnet.png
putty_ssh.png
你还可以在Saved Sessions下面填上一个名称,然后点击保存,以后直接在下面点击这个名称,再点Load、Open就可以登录了。 需要注意的是登录ssh是需要输入你设置的密码,但是密码不会显示,对,连星号都不会显示,只管输入就是了。
putty_ssh_login.png

依赖

  • 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 nanpuyue@gmail.com

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[保存&应用]会断网。
OH3C_01.png
要切换用户,只需要在Current user中选择相应的用户,依次点击Save[保存]和Save&Appy[保存&应用]即可。
OH3C_02.png

需要注意的是,如果你使用的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

标签: OpenWrt, 802.1x, 校园网

添加新评论