学校的校园网识别 UA 防代理,在路由器上拿 Privoxy 统一修改 UA 勉强能用。 但是,每次有新的设备连接到路由器时,校园网会立刻断开。日志如下
Tue Oct 20 14:25:04 2020 daemon.info hostapd: wlan0: STA 00:0a:f5:94:7a:52 IEEE 802.11: authenticated
Tue Oct 20 14:25:04 2020 daemon.info hostapd: wlan0: STA 00:0a:f5:94:7a:52 IEEE 802.11: associated (aid 3)
Tue Oct 20 14:25:05 2020 daemon.notice hostapd: wlan0: AP-STA-CONNECTED 00:0a:f5:94:7a:52
Tue Oct 20 14:25:05 2020 daemon.info hostapd: wlan0: STA 00:0a:f5:94:7a:52 RADIUS: starting accounting session 9B984F9BB76F4E80
Tue Oct 20 14:25:05 2020 daemon.info hostapd: wlan0: STA 00:0a:f5:94:7a:52 WPA: pairwise key handshake completed (RSN)
Tue Oct 20 14:25:40 2020 user.notice 校园网认证: Disconnected
Tue Oct 20 14:25:53 2020 user.notice 校园网认证: Try to Connect
Tue Oct 20 14:25:54 2020 user.notice 校园网认证: Login Success:UL='http://connectivitycheck.gstatic.com/generate_204'
所以说,新的设备连接时,到底是发送了什么数据,能够让上层的检测设备检测到呢?
generate_204
的 GET 请求来检查网络,一般走 http日志中的校园网认证
是一个脚本,地址 https://gist.github.com/Zxilly/d0236f55bbee3f116de7cdfa90d7e8c7
路由器的系统是自编译的 lede
日志中的 UL 字段,是从登陆成功的页面上正则匹配下来的,应该指的是在网络断开期间被重定向到校园网 Web Portal 的最后一个 http 请求
转发数据到 privoxy 的 iptables 如下
iptables -t nat -N http_ua_drop
iptables -t nat -I PREROUTING -j http_ua_drop
iptables -t nat -A http_ua_drop -d 0.0.0.0/8 -j RETURN
iptables -t nat -A http_ua_drop -d 127.0.0.0/8 -j RETURN
iptables -t nat -A http_ua_drop -d 192.168.0.0/16 -j RETURN
iptables -t nat -A http_ua_drop -p tcp -j REDIRECT --dport 80 --to-port 8118
设备是城市热点的Dr.COM 2166B-RAS 、Portal
与华为的 ME60
Web Portal 页面上的 js 没有做混淆,有一些信息。
/******************** 公用配置参数 ********************/
url3 = '1.htm';
url4 = 'F.htm';
s2 = 0;
var _version='2.4.1';
var companyInfo="本宽带计费系统由城市热点提供";// 公司信息(底部文字)
var companyLink="http://www.doctorcom.com";// 公司链接
var redirectLink="http://192.168.167.46/1.htm";// 登录重定向
var rebackLink="http://192.168.167.46/a79.htm?isReback=1";//返回重定向
以及
var pageSetting=2;//1:vlan 2:ip 3:ssid 4:区域 ID
/******************** SSID 外置登陆对应配置 ********************/
var ipPageAry = new Array(301);// 空表示未使用
//名称|ip-start|ip-end|虚拟商号|重定向地址|审核标记,0 未审,1 审过,2 审不过|认证方式(0-本地认证; 1-PORTAL 协议; 2-Ruckus ; 3-Cisco ; 4-Moto ; 5-JUNIPER ; 6-Aruba6.4.2.2 ; 7-Aruba 旧版本)
ipPageAry[0]="default|1.1.1.1|255.255.255.254|000||1|0";
ipPageAry[1]="jgsu|1.1.1.1|255.255.255.255|||1|0";
完整的这两个文件在
https://paste.ubuntu.com/p/ZcVb6X8Ms6/
https://paste.ubuntu.com/p/MyHV6JVqg5/
任何建议都非常感谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.