当一台新设备接入无线热点时,都会交换哪些数据?

2020-10-20 15:21:09 +08:00
 learningman

起因

学校的校园网识别 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'

问题

所以说,新的设备连接时,到底是发送了什么数据,能够让上层的检测设备检测到呢?

猜测

  1. DHCP 的广播包
  2. 有些设备会发送一个 generate_204 的 GET 请求来检查网络,一般走 http
  3. 新设备连入,导致了 iptables 重启,让 2 的请求没有被 iptables 转发。又或者 privoxy 重启?

额外信息

关于本地设备

日志中的校园网认证是一个脚本,地址 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/

任何建议都非常感谢!

1507 次点击
所在节点    路由器
2 条回复
ihades
2020-10-21 15:38:53 +08:00
话说 再接一条二级路由器咋样
learningman
2020-11-13 14:32:58 +08:00
@ihades 试了,没用。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/716747

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX