使用 minieap 实现路由器锐捷认证上网
背景
学校的校园网需要通过锐捷认证才能上网,这样的话我的一些智能家具就无法联网了,于是想通过路由器认证上网。当然了锐捷官方是不提供路由器端的认证客户端的,所以需要找一个路由器可以运行的认证程序。目前比较主流的认证程序是 updateing/minieap(MiniEAP),本文将编译 MiniEAP 的一个分支,并通过它实现路由器的锐捷认证上网。
- 什么是 EAP:IEEE 802.1X | Wikipedia
编译并安装 openwrt-minieap
建议使用 Ubuntu 22.04 编译。
-
安装依赖:
sudo apt update -y sudo apt full-upgrade -y sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \ bzip2 ccache clang cmake cpio curl device-tree-compiler ecj fastjar flex gawk gettext gcc-multilib \ g++-multilib git gnutls-dev gperf haveged help2man intltool lib32gcc-s1 libc6-dev-i386 libelf-dev \ libglib2.0-dev libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev libncurses5-dev libncursesw5 \ libncursesw5-dev libpython3-dev libreadline-dev libssl-dev libtool lld llvm lrzsz mkisofs msmtp \ nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pip python3-ply \ python3-docutils python3-pyelftools qemu-utils re2c rsync scons squashfs-tools subversion swig \ texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev zstd -
下载适用于你的路由器的 OpenWrt SDK。
在 Firmware Selector 上搜索你的路由器型号,然后点击链接处的文件夹图标进入下载服务器。

拉到最下面,找到
openwrt-sdk-xxx,点击下载。
-
解压并进入 SDK 目录,然后克隆
openwrt-minieap项目。openwrt-minieap是minieap的 OpenWrt 适配版。需要注意的是不同学校的认证算法有所不同,你需要找到适配了你的学校认证算法的分支项目(也可以自己手动适配,方法是替换packet_plugin/rjv3/rjv3_hashes/checkV4.c文件)。这里我使用的是 KumaTea/openwrt-minieap 分支。git clone https://github.com/KumaTea/openwrt-minieap package/minieap -
配置编译选项:
make menuconfig在菜单中打开
Network选项:
选中
minieap作为模块(显示为M)编译。
保存并退出编译菜单:

-
编译:
make package/minieap/compile V=s在
bin/packages/<arch>/base目录下可以找到编译产物minieap_xxx.ipk。 -
打开路由器配置页面,在
系统>软件包菜单下上传并安装软件包:
-
SSH 登录路由器,启动 minieap:
# 测试运行 minieap -u <your_username> -p <your_password> -n wan -w # 停止测试进程 minieap -k # 启动守护进程 /etc/init.d/minieap start /etc/init.d/minieap enable这里
-n选项要设置成路由器的网络接口中wan网络下的物理接口名。我的wan网络下的物理接口就叫wan,因此设置选项-n wan。
编译并安装 luci-app-minieap
luci-app-minieap 是 MiniEAP 的 LuCI 界面,安装之后可以直接在 OpenWrt 配置页面管理 MiniEAP 的配置:

编译安装过程和 openwrt-minieap 类似,这里略。
- 配置文件:
/etc/config/minieap
相关项目
-
2009 年,华中科技大学的学生开发了 MentoHUST,这是我目前找到的最早的开源 EAP 认证客户端,该项目已于 2011 年停止更新。后来本校学生接手了这个项目,发布了新版的 MentoHUST,这个项目于 2016 年停止更新。后来有人在新版 MentoHUST 的基础上开发了 MiniEAP,其相对于 MentoHUST 有着更少的内存占用。该项目最后一次更新是在 2023 年,不确定是否会持续更新。
-
可以编写 Makefile 以将 MiniEAP 编译为
.ipk包,具体可以参考 openwrt-minieap 项目。 -
关于锐捷认证的具体过程,集美大学的学生写了一篇论文:锐捷认证过程分析与第三方锐捷认证客户端的设计与实现
-
前人开发的
minieap的认证流程不太适合我的学校,因此我又进行了修改,并将修改过程记录在博客修改 MiniEAP 中。

浙公网安备 33010602011771号