简介
在各大高校内,你一般需要通过学号和密码进行登录上网,且可能受到设备数量的限制。如果你留心发现登录上网界面里面的信息,你会看到认证方案的提供商。其中,锐捷认证是一种高校上网的解决方案。它通过账密交互、间隔心跳等方式确认网络访问的合法性。
作者mullingnull(Github)基于Mentohust,编成适用校园网锐捷等认证的路由器插件,可以运行于ARM、Mipsel架构的路由器上。该插件可以使认证流程在路由器上完成,减少认证的时间耗费。
实现方式
准备
如果需要实现路由器上的认证上网,你需要准备以下内容。
1、硬件:一台ARM/Mipsel架构的路由器、网线、电脑
2、软件:请自行安装Winscp、PuTTY
3、插件:mentohust for merlin(点击即可下载,来源Github)
开启梅林固件的SSH
复制插件到路由器
启动插件
打开PuTTY,输入路由器地址,回车进入命令行。输入你平时使用的路由器账号密码。
输入以下命令(输入一行,回车再进行下一行)
1、授权:chmod +x /jffs/mentohust/mentohust
2、定位:cd /jffs/mentohust
3、启动:./mentohust
设置插件自动启动
请参考第三个引用网址内容提到的3.5部分。因为作者设备认证存在问题,故不设置自启。
Q&A
作者坐标JNU South Campus。感觉遇到最大的问题是“网卡的激活问题”。如果发现选用eth0作为网卡时仍然无法找到服务器,你需要尝试使用你的学校账密设置i2tp网络。如果认证成功后无法上网,你需要撤销该i2tp网络。i2tp网络的开启过程可能对eth0网卡有促发作用。
后续测试中,发现认证方式并不是l2tp,而是802.1x,需要在WAN设置中选择该方式并输入账号密码(应该是双认证了)。
本篇适用于博通处理器的路由,联发科处理器的可以参考:https://www.jianshu.com/p/7f7733a1242e
(引以为戒:请勿5台PC,或者苹果安卓同时连接到路由器。否则列入黑名单后需要联系技术人员解禁。最近测试,苹果直连学校WiFi,加上安卓和电脑连路由器也不行,直接小黑屋120分钟。。)
参考数据:JNUSC宿舍区域的测试速度为上下同16M,换算实际约为2M/s,使用网络接口可以达到300M,换算实际约为30M/s。WiFi信号源位于宿舍内的一个圆饼机器,提供两个信号:JNU为单出口,采用网页认证,JNU-Secure为多出口,采用PEAP方法认证(maybe)。
(感觉校园网配置的AP差不多是电子垃圾级别了,宿舍区布置的AP多,少人连还好,在教室连效果会更差一些)
QA2
1.Mentohust
起初的mentohust版本单一,后面逐渐扩展到三大系统平台,后又编译为路由器可使用的版本(见参考3)。
2.rj认证原理
详见该链接。
3.关于MentohustTool使用方法的补充
该工具包内的安装卸载bat可以不运行,直接自己下载winpcap安装,否则可能出现找不到网卡的情况。并且,该工具仅在登录认证时可以抓包mpf。所以先把工具start,再使用客户端操作登录认证。
4.关于客户端文件夹下的额外信息
如果对参考5的院校支持信息不确定,可以查看认证客户端安装文件夹下的SuConfig.txt,里面包括dhcp方式,等待时间等信息。
5.关于路由器不带dhclient
可以使用udhcpc代替,不过其缺点是运行时cpu占用大。而且对于笔者的情况,一定要使用dhcp脚本,否则会出现认证成功无法上网的情况。
6.关于udhcpc出现的apps filter问题
在运行udhcpc时可能会出现:
apps filter disabled!!
setup_qos_conf : set ibw into 10Gbps due to unlimited
setup_qos_conf : set ibw obw into 10Gbps due to unlimited
virtual patch disabled!!
Disable virtual patch result: OK
apps filter disabled!!
如果不希望其出现,请到路由器后台>Adaptive QOS 网络监控家>带宽监控>“应用程序分析”按钮,将其关闭即可。
7.解决udhcpc高占用问题
在ssh中运行udhcpc,输出如下
udhcpc: started, v1.25.1
eth0: No such process
udhcpc: sending discover
udhcpc: sending select for 172.20.17.202
udhcpc: lease of 172.20.17.202 obtained, lease time 28800
发现不对劲的地方
eth0: No such process
ps命令查看进程,发现有这样的命令在进行
/sbin/udhcpc -i eth0 -p /var/run/udhcpc0.pid -s /tmp/udhcpc -O33 -O249
查询udhcpc的参数,-s是运行一个脚本,但是去到/tmp/udhcpc,发现是一个链接。将链接改名后,再次运行udhcpc,不对劲的地方消失。udhcpc可以在1秒内完成获取ip的整个过程。认证过程几乎是1秒结束,输出到“发送心跳包”。这个算是歪打正着吧哈哈。
附一个udhcpc用法的中英,仅供参考。
udhcpc: option requires an argument -- h
BusyBox v1.25.1 (2018-05-09 17:06:43 CST) multi-call binary.
Usage: udhcpc [-fbqRB] [-a[MSEC]] [-t N] [-T SEC] [-A SEC/-n]
[-i IFACE] [-s PROG] [-p PIDFILE]
[-oC] [-r IP] [-V VENDOR] [-F NAME] [-x OPT:VAL]... [-O OPT]...
-i,--interface IFACE Interface to use (default eth0) 使用的网卡
-s,--script PROG Run PROG at DHCP events (default /tmp/udhcpc) 在dhcp时运行脚本
-p,--pidfile FILE Create pidfile 创建pid文件
-B,--broadcast Request broadcast replies 要求广播回复
-t,--retries N Send up to N discover packets (default 3) 最多发几个包
-T,--timeout SEC Pause between packets (default 3) 包间停顿时长
-A,--tryagain SEC Wait if lease is not obtained (default 20) 如果没拿到租期就等待
-n,--now Exit if lease is not obtained 如果没拿到租期就退出
-q,--quit Exit after obtaining lease 拿到租期就退出
-R,--release Release IP on exit 退出时释放ip
-f,--foreground Run in foreground 前台运行
-b,--background Background if lease is not obtained 没拿到租期就后台运行
-S,--syslog Log to syslog too 同时保存为日志
-a[MSEC],--arping[=MSEC] Validate offered address with ARP ping 使用arp检查地址是否可用
-r,--request IP Request this IP address 通过该ip请求
-o,--no-default-options Don't request any options (unless -O is given) 不要求其他选项
-O,--request-option OPT Request option OPT from server (cumulative) 想从服务器要求什么选择
-x OPT:VAL Include option OPT in sent packets (cumulative) 在包中装入你的要求
Examples of string, numeric, and hex byte opts:
-x hostname:bbox - option 12
-x lease:3600 - option 51 (lease time)
-x 0x3d:0100BEEFC0FFEE - option 61 (client id)
-F,--fqdn NAME Ask server to update DNS mapping for NAME
-H,-h,--hostname NAME Send NAME as client hostname
-V,--vendorclass VENDOR Vendor identifier (default 'udhcp VERSION')
-C,--clientid-none Don't send MAC as client identifier
Signals:
USR1 Renew lease
USR2 Release lease
参考
格式:作者, 篇名, 发表日期
1. WELLTIM, 玩转...篇二:校园网使用之路由器锐捷认证, 2017.03
2. zzdjk6, ...linux上校园网的配置说明..., 2011.09
3. ...砖, (ARM+Mipsel)校园网MentoHust认证+l2tp拨号, 2015.11
4. mullingnull, 华中mentohust认证插件 Github下载, 2016.6
5. Hustmoon, 锐捷、赛尔认证MentoHUST - Ubuntu中文