wifidog认证流程(图文版)

article/2025/9/27 11:26:41

学习使用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://chatgpt.dhexx.cn/article/dLibjRO7.shtml

相关文章

wifidog 认证

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

Wifidog入门教程

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

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

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

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

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

WiFidog简介

WiFidog简介 WIFIdog是一种新的认证方式,这种认证方式的优势在于安全性高,不容易被破解验证。 客户端发出初始化请求,比如访问www.baidu.com网关的防火墙规则将这个请求重定向到本地网关的端口上。这个端口是Wifidog监听的端口。Wfidog提供一…

安装sysbench

一 安装依赖包 yum install gcc gcc-c autoconf automake libtool mysql-devel vim -y #验证是否安装 rpm -q --qf %{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n gcc \ gcc-c \ autoconf \ automake \ libtool \ mysql-devel \ vim 二 安装 cd /opt && git clon…

sysbench mysql_通过sysbench工具实现MySQL数据库的性能测试

1.背景 sysbench是一款压力测试工具,可以测试系统的硬件性能,也可以用来对数据库进行基准测试。sysbench 支持的测试有CPU运算性能测试、内存分配及传输速度测试、磁盘IO性能测试、POSIX线程性能测试、互斥性测试测试、数据库性能测试(OLTP基准测试)。目…

sysbench 压测 mysql_sysbench压测

一:sysbench的安装遇到的几个问题: 解决办法: yum install automake 解决办法:yum install libtool sysbench 的一些常用参数低版本和高版本是有点区别的大家在测试的时候稍微注意一下: 以下这个版本是0.5版本的但是我…

Sysbench常用命令

1 Sysbench 安装 requirements yum -y install make automake libtool pkgconfig libaio-devel# For MySQL support, replace with mysql-devel on RHEL/CentOS 5yum -y install mariadb-devel openssl-devel mysql-devel# For PostgreSQL supportyum -y install postgresql-…

sysbench性能测试

sysbench的官网地址是:http://sysbench.sourceforge.net Step 1: 下载安装: sysbench-0.5.tar.gz 解压后展开目录如下 [rootlocalhost mnt]# cd sysbench-0.5 [rootlocalhost sysbench-0.5]# ls aclocal.m4 autom4te.cache c…

mysql sysbench_MySQL sysbench基准测试

一、基准测试 参考《高性能 MySQL》第二章。 二、Sysbench sysbench 是开源的跨平台多线程基准测试工具,主要用于测试各种不同系统参数下的 CPU/内存/线程/IO/数据库等方面的性能,数据库目前支持 MySQL/Oracle/PostgreSQL。具体的参数设置,应…

sysbench mysql图表_sysbench_mysql

ref 测试 当执行下面这个sysbench测试mysql的时候,你不知道的可能可能是: 这到底是在测试读写?还是 读? 答: 只读 --num-threads12 啥意思? 答:就是说有12个线程在同时链接 你可以看到&#xff…

性能测试之sysbench

本期是写的测试mysql的性能测试,本人也是第一次接触mysql的性能,拿到这个任务时也是多方1查询资料, sysbench压力测试工具简介: sysbench是一个开源的、模块化的、跨平台的多线程性能测试工具,可以用来进行CPU、内存…

sysbench数据库压测工具详解与实战

sysbench是一个基于LuaJIT脚本的多线程基准测试工具。2004年由Peter Zaitsev(Percona公司创始人)开发,在其0.5版本中可以使用Lua脚本实现OLTP测试。2016年重构了sysbench代码,并在2017年2月针对新的硬件环境发布了1.0版本&#xf…

sysbench 介绍

sysbench介绍 参考博客: sysbench - 老僧观天下 - 博客园 sysbench 压测 详解_俗人linux_51CTO博客 sysbench工具使用 - ZhenXing_Yu - 博客园 |QQ:327488733qq.com sysbench使用指南 - AhaoMu - 博客园 MySql性能测试工具-sysbench_oahz4699092zhao的专栏-CS…

Linux性能优化(二)——sysbench压力测试工具

一、sysbench简介 1、sysbench简介 sysBench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。sysbench提供如下测试: (1)CPU性能 (2)磁盘IO性能 &…

CScope for programmer

http://bbs.sjtu.edu.cn/bbs0an,path,%2Fgroups%2FGROUP_3%2FGNULinux%2FSoftware%2FD95E89182%2FD5277E56B.html8、Cscope 的使用这下更厉害了, 用Cscope自己的话说 - "你可以把它当做是超过频的ctags", 其功能和强大程度可见一斑吧, 关于它的介绍我就不详细说了, …

CSP安全策略

介绍 内容安全策略 (CSP) 是一个附加的安全层&#xff0c;用于帮助检测和缓解某些类型的攻击&#xff0c;包括跨站脚本 (XSS) 和数据注入等攻击。 这些攻击可用于实现从数据窃取到网站破坏或作为恶意软件分发版本等用途。 启动方式 1. 浏览器客户端启动 <meta http-equi…

seccompptcl(pwn出题)

详细细节看这篇 https://www.anquanke.com/post/id/208364#h2-2 沙箱可以禁用一些系统调用&#xff0c;还是比较常见的感觉。 seccomp 下面这段代码用seccomp沙箱来禁用 安装相应库 sudo apt-get install libseccomp-dev具体参数啥的就不多讲了。。。看大佬的博客就行。 …

CSplitterWnd

MFC支持两种类型的拆分窗口&#xff1a;静态的和动态的。 静态拆分窗口的行列数在拆分窗口被创建时就设置好了&#xff0c;用户不能更改。但是用户可以缩放各行各列。一个静态拆分窗口最多可以包含16行16列。 要找一个使用了静态拆分窗口的应用程序&#xff0c;只要看一下windo…