Linux下的锐捷认证

1
2
ping baidu.com -n 100|foreach -" -f (Get-Date),$_}
#显示时间的PING指令

背景

第一次使用校园网,才知道校园网原来需要登录认证①,并且限制设备②,在没有办理校内校园流量卡的情况下,原来的流量卡只有100kb/s速度(办了校园卡之后,速度也仅有2M/s),已经严重影响使用,另外校园全覆盖WiFi,同样需要登录认证,速度大概在2mb/s,但是无线传输的弊端就是不稳定,间断性断网已经成为常态。

①:wifi使用学号+密码网页认证登录,有线网需要锐捷客户端v6.84多运营商版本。

②:wifi+有线,同一帐号仅能支持两个设备登录,这对于联网终端多的人是无法使用的。

另外,最重要的是常用的编码环境Linux,官方并没有提供对应的linux的认证客户端,所以这也使linux设备的有线网络连接设下了障碍。

通过网络上前人的研究了解到,使用mentohust或者其迭代版本minieap可以实现linux系统认证通过锐捷,甚至可以将其交叉编译到软路由上;

那么,理论可行,实践开始。

1.mentohust

首先做提前准备,准备mentohust必须的文件。

gh源码:gh repo clone hyrathb/mentohust

3个客户端源文件和1个mpf抓包

W32N55.dll 0821x.exe SuConfig.dat mentohust.mpf

1
2
3
4
5
sudo mkdir /etc/mentohust
sudo cp ./8021x.exe /etc/mentohust
sudo cp ./W32N55.dll /etc/mentohust
sudo cp ./SuConfig.dat /etc/mentohust
sudo cp ./mentohust.mpf /etc/mentohust

mpf文件使用MentoHUSTTool进行获取

可能因为该项目过于久远,最后没能成功认证,换为minieap

2.minieap

其原理和mentohust类似,不过需要手动编译两个文件——minieap和libpcap

Minieap

可能由于多运营商的问题,无法获取运营商的id,这个版本的minieap也没能通过认证,所以让linux连接有线网络以失败告终。(其实是学校不准许出了windows端的任何客户端连接,以上两种方法都是基于准许linux客户端的前提下)

最终解决思路

一次偶然的机会,联系上了一位学长,他给出了重要的点拨提示。为什么要仿造锐捷进行认证呢?直接使用路由器仿造电脑不就行了。所以在路由器后台管理端仿造通过验证的电脑MAC即可,具体步骤:

  1. 准备工作:网线至少1,路由器(千兆/百兆),win系统电脑
  2. 电脑连接网线连接面板,正常进行锐捷认证。
  3. 认证通过后可以在锐捷软件或者本地网络属性查看链接速度(1000MBPS,100MBPS)
  4. 直接拔出面板端网线,插入路由器的LAN口。
  5. 根据路由器的本地网络进入路由器管理界面,设置仿造当前设备MAC地址,WAN口设置自动获取IP地址。
  6. 拔出电脑端网线和路由器端网线,分别插入路由器WAN口和面板,即可实现路由器上网。此时可使用第二根网线连接LAN口和电脑实现最优网络,也可以连接wifi使用。

注意事项:面板一段时间没有流量会掉认证,重新认证需要重复上述步骤比较麻烦,可以一直连接用网设备来保活(比如wifi台灯)。过多设备会封号,请谨慎连接2个以上的设备。网口可能有千兆的,这也是为什么会提到千兆百兆的原因,如果你速度达不到,可能是出现木桶效应。

总结

不过我一直怀疑寝室里的网存在环路,导致广播风暴时常发生,只能期待校方有朝一日能够解决这个严重的问题。

另一种可能是网络大面积中毒,可以通过交换机的是否存在端口数量进行查看,不过真的有人在局域网内放蠕虫来偷取pcdn流量吗?

2024秋季更:锐捷客户端新加了5分钟一次的心跳包,这让仿造MAC地址成为无效化,所以以上方法均不可用