Captive Portal 认证流程 - 基于 Iptables 转发

Captive Portal 认证流程 - 基于 Iptables 转发

全局说明

本认证流程部分参考 wifidog/nocat/nodogsplash 认证流程,并结合了实际项目需求。

本认证项目分两部分,分别为:

  1. self-wifidog 32571 认证、校验等
  2. self-wifidog-watch 32573 请求转发、与 self-wifidog 通信

以下,用户统称为 client,服务器统称 server,服务地址统称 IP。

认证流程

前置配置

server 配置 iptables 转发全部 80 端口请求至 self-wifidog-watch 32573 端口。

首次认证

  1. client 接入 wifi,并通过浏览器访问网站,如访问 baidu.com,
    若此时无网,则 client 设备将主动访问其自身配置的地址验证网络是否可用。
    部分设备验证网络地址见附录1。

  2. server 转发 client 请求至 self-wifidog-watch 32573,转发地址为 IP:32573

  3. self-wifidog-watch 转发 2 中的请求到 self-wifidog,请求地址格式为:
    IP:31571/wifidog/login?gw_address=1.1.1.1&gw_port=80&gw_id=xx&mac=xx&url=baidu.com

  4. self-wifidog /wifidog/login 校验该请求为未认证,则转发请求至指定认证地址。
    当前使用 self-wifidog 内置认证地址,具体扩展待讨论。

  5. client 通过认证页面提交信息,self-wifidog /wifidog/login?username=xx&password=xx

  6. self-wifidog 转发 client 认证结果到 self-wifidog-watch,转发地址格式为:
    IP:32573/wifidog/auth?token=xx

  7. self-wifidog-watch 请求 self-wifidog 校验登陆状态,请求地址格式为:
    IP:32571/wifidog/auth?stage=login&ip=1.1.1.1&mac=xx&token=xx&gw_id=xx

  8. self-wifidog 返回校验结果到 self-wifidog-watch。校验成功结果为 Auth:1,校验失败结果为 Auth:0 。
    若认证成功网关在Firewall添加该用户放行规则,并向用户返回重定向到服务器认证成功的地址;若认证失败,用户重新返回 login页面。

  9. self-wifidog-watch 转发 self-wifidog 结果到 client,请求地址格式为:
    IP:32571/wifidog/portal?gw_id=xx

  10. client 访问 9 返回地址页面到 self-wifidog,self-wifidog 转发请求到 baidu.com,
    client 完成请求目标地址

非首次认证

  1. 同首次认证1
  2. 同首次认证2
  3. 同首次认证3
  4. 检查认证记录,若已认证成功,则转发请求到 baidu.com,client 完成请求目标地址

附录

  1. 部分设备验证网络地址
http://connect.rom.miui.com/generate_204
https://connect.rom.miui.com/generate_204
http://connectivitycheck.platform.hicloud.com
http://edge.microsoft.com/captiveportal
http://captive.apple.com/hotspotdetect.html
http://connectivitycheck.android.com
https://captive.v2ex.co
http://clients3.google.com/generate_204
http://connectivitycheck.gstatic.com/generate_204
https://www.google.com/generate_204
  • 13
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

差点GDP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值