wifidog认证流程(图文版)

news/2024/11/24 7:23:26/

学习使用wifidog一段时间了,觉得这玩意真的不错,虽然有些代码写的不够严谨,运行效率不够高,但是少量人数情况下实现portal是很好的方案。

下面是我摘自一个博客的内容和apfree写的文档中的一部分发上来的,希望能对研究wifidog的新人给予帮助!


一. 用户上线

1. 用户访问网络,通过iptables将未认证的用户dnat到wifidog进程wifidog通过307报文将用户重定向到认证服务器

2. 用户打开认证服务器登录页面,输入用户名密码,发送认证请求

3. 认证成功的话服务器会发送302报文,携带token信息重定向到wifidog页面。认证失败的话会返回失败页面

4. 用户携带token信息向wifidog发起认证请求,wifidog再向认证服务器发起请求,认证成功后授权,并将用户重定向到成功页面


二. 保活和下线

1. wifidog会定时向认证服务器发送保活消息

2. 当用户主动请求下线后,wifidog此时并没有下线

3. 当wifidog再次发起保活请求时,认证服务器会告诉它用户已下线,此时wifidog会将用户下线


认证流程描述(摘自apfree wifidogV2协议文档

i.Wifidog运行之后建立一系列的防火墙规则,主要规则起到如下作用:1.阻断所有内网到外网的访问。2.开通内网到外网的dns访问。3.开通内网到认证服务器以及域名白名单的访问。4.对内网到外网80端口的访问转向到wifidog自己的http服务(2060端口)

ii. 手机、pc连接上来后,app或者系统(安卓、ios会自己连接到各自的服务器上来验证网络的连通性)会发起对外网的访问请求,dns请求会被放过,然后对应的80端口的访问会被指向2060的http服务,其他的请求都会被拦截

iii. Wifidog的http接到web请求后,基本上都会被指向404页面,404页面会给客户端一个重定向返回(302),要求客户端重定向访问认证服务器的login页面,附加参数gw_idgw_addressgw_porturl

iv. 手机、pc客户端加载、显示认证服务器的login页面,用户根据页面内容做相关的认证操作(qq登录、微博登录、用户名密码登录、手机短信登录等多种登录方式),原则只有一个认证不成功就仍然让用户停留在认证服务器继续认证操作,认证成功给客户端一个302重定向返回,根据login接口提交上来的参数gw_addressgw_port跳转套wifidogweb服务的/wifidog/auth页面上,附带tokenurl参数

v.Wifidog的web服务收到手机、pc客户端的/wifidog/auth请求后,会主动对认证服务器的auth接口发起一个验证请求,附带参数ipmactokenstage=login

vi. 认证服务器的auth接口收到wifidog的请求,要根据内部逻辑返回是否允许通过的应答Auth: 0拒绝Auth: 1 允许

vii. Wifidog接收到验证结果后,如果拒绝访问,就会返回302给客户端,重定向到认证服务器的gw_message接口,附带message=denied参数,客户端的上网访问仍然会回到第二步骤;如果允许访问,则改动防火墙规则,开通改客户端的上网(至此客户端已经能够正常上网),然后返回302重点向给客户端,重定向到认证服务器的portal接口,附带参数gw_id

viii. 认证服务器的的portal接口根据业务流成显示广告业或者做其他的跳转

ix. 整个认证流程完成



http://www.ppmy.cn/news/675974.html

相关文章

分享wifidog的增强版: wifidogx

j同学前阵子有段时间在维护wifidog,然后就重复发明了个轮子:wifidogx。当然也不能算完全重复,j同学认为以下几方面wifidog做的不是很好: 多线程的架构欠佳,性能不强,健壮性也不好,坑还多。(LOC…

wifidog 认证

首先简单介绍一下什么是Portal认证,Portal认证,通常也会叫Web认证,未认证用户上网时,设备强制用户登录到特定站点,用户可以免费访问其中的服务。当用户需要使用互联网中的其它信息时,必须在门户网站进行认证…

wifidog安装以及自写wifidog认证服务器

前言 最近在做关于路由器认证相关的工作,由于需求,认证的过程同往常的网页认证有稍许不同,因此,自己开始尝试编写wifidog的认证服务器,查阅了中外的一些资料,现将经验总结一下。 Wifidog的原理 下图是在…

Wifidog入门教程

曾经撸了两台K2路由器,刷成了华硕固件。以前就比较好奇什么肯德基,星巴克那种连上wifi就弹出一个页面进行验证什么的,是怎么弄的,昨天发现这个华硕固件里有这个功能,就是wifidog。 首先来看截图: 这里打开w…

利用Wifidog实现微信wifi连接

前言 大家如果有用公共场合wifi的习惯,想必都有过如下的体验。 这就是利用微信身份来进行wifi连接认证,主要目的是商家为了吸引顾客,推广其公众号。别的也不多说,下面就来讲一讲怎么实现这样的wifi认证方式。 本篇文章要讲的是por…

wifidog浏览器弹窗认证 — 基于OpenWRT路由器

一、移植 wifidog功能 1、功能介绍 wifidog是一种能够实现让路由器局域网设备(包括wifi连接和网线连接设备)在上网前先进行 portal认证的工具,主要应用于手机端上网认证,手机在连接wifi后会自动打开浏览器并跳转出 login界面,用户在该页面上…

Wifidog扫盲篇

何谓wifidog?wifidog即利用iptables规则结合认证服务器可以管理上网客户端的东东。 当然管理客户端一定是需要认证服务器吗?有个仿wifidog的nodogsplash地址如下 https://github.com/nodogsplash/nodogsplash官网的wifidog代码比较少,复杂度也一般功能部分无非有以…

无线热点认证解决方案 WifiDog

WifiDog 是一款开源的用来实现无线认证的软件,可以集成到路由器或者网关中,对于连接到路由器或者网关的设备,使其先登录云端认证服务器,然后通过认证才能上网。比如在星巴克上网,浏览器会先弹出一个广告页面&#xff0…