【保姆教程】RuoYi-Radius搭建实现portal认证
【保姆教程】RuoYi-Radius搭建实现portal认证
一、简介
以若依后台管理框架V4.6.0做为基础框架,实现了ToughRADIUS大部分功能,支持标准RADIUS协议(RFC 2865, RFC 2866),提供完整的AAA实现。可运用于酒店WIFI认证,公司局域网权限认证,商场WIFI认证,其它公共场所等等。
二、主要功能
- 套餐管理
- 设备管理
- 用户管理
- 订单管理
- 在线管理
- 微信、支付宝H5支付
- 实现用户上线请求认证、动态授权、限速、强制下线
- 实现上网时间到期后自动下线
三、认证流程

四、搭建步骤
系统环境:JDK1.8 ,centos8,mysql5.7
注意:centos7的yum源没有freeradius-rest安装包,安装过程中会带来不少麻烦,建议centos8安装,省不少事情。
1.freeradius安装
yum install freeradius -y

yum install freeradius-rest -y

yum install freeradius-utils -y

至此,我们已安装完成freeradius,下面我们要对freeradius进行配置,支持rest认证
2.freeradius配置
- 通过软连接方式启动rest模块
ln -s /etc/raddb/mods-available/rest /etc/raddb/mods-enabled/rest
- 修改/etc/raddb/sites-enabled/default
vim /etc/raddb/sites-enabled/default
分别在authorize,authenticate,accounting3个模块中插入rest配置,如下图所示:


- 修改/etc/raddb/users
vim /etc/raddb/users
把freeradius的默认认证方式改为rest(DEFAULT Auth-Type := rest)

修改/etc/raddb/mods-enabled/rest
文件内容如下:
rest {
tls {
# ca_file = ${certdir}/cacert.pem
# ca_path = ${certdir}
# certificate_file = /path/to/radius.crt
# private_key_file = /path/to/radius.key
# private_key_password = "supersecret"
# random_file = /dev/urandom
# check_cert = yes
# check_cert_cn = yes
}
connect_uri = "http://127.0.0.1:8090"
connect_timeout = 5.0
authorize {
uri = "${..connect_uri}/api/freeradius/authorize"
method = 'post'
body = 'post'
data = "username=%{urlquote:%{User-Name}}&nasip=%{urlquote:%{NAS-IP-Address}}&nasid=%{urlquote:%{NAS-Identifier}}"
}
authenticate {
uri = "${..connect_uri}/api/freeradius/authenticate"
method = 'post'
body = 'post'
data = "username=%{urlquote:%{User-Name}}&nasip=%{urlquote:%{NAS-IP-Address}}&nasid=%{urlquote:%{NAS-Identifier}}"
}
accounting {
uri = "${..connect_uri}/api/freeradius/accounting"
method = 'post'
body = 'post'
data = "username=%{urlquote:%{User-Name}}&nasip=%{urlquote:%{NAS-IP-Address}}&nasid=%{urlquote:%{NAS-Identifier}}\
&acctSessionId=%{urlquote:%{Acct-Session-Id}}&macAddr=%{urlquote:%{Calling-Station-Id}}&acctSessionTime=%{urlquote:%{Acct-Session-Time}}\
&acctInputOctets=%{urlquote:%{Acct-Input-Octets}}&acctOutputOctets=%{urlquote:%{Acct-Output-Octets}}\
&acctInputGigawords=%{urlquote:%{Acct-Input-Gigawords}}&acctOutputGigawords=%{urlquote:%{Acct-Output-Gigawords}}\
&acctInputPackets=%{urlquote:%{Acct-Input-Packets}}&acctOutputPackets=%{urlquote:%{Acct-Output-Packets}}\
&nasPortId=%{urlquote:%{NAS-Port-Id}}&framedIPAddress=%{urlquote:%{Framed-IP-Address}}\
&sessionTimeout=%{urlquote:%{Session-Timeout}}&framedIPNetmask=%{urlquote:%{Framed-IP-Netmask}}\
&acctStatusType=%{urlquote:%{Acct-Status-Type}}"
}
post-auth {
uri = "${..connect_uri}/api/freeradius/postauth"
method = 'post'
body = 'post'
}
pool {
start = ${thread[pool].start_servers}
min = ${thread[pool].min_spare_servers}
max = ${thread[pool].max_servers}
spare = ${thread[pool].max_spare_servers}
uses = 0
retry_delay = 30
lifetime = 0
idle_timeout = 60
}
}
- 修改/etc/raddb/clients.conf
vim /etc/raddb/clients.conf
改成自己的ip

cd /etc/raddb/certs/
./bootstrap
到这里我们对freeradius的配置也就完成了,下面我们安装nuoyi-radius。
3.ruoyi-radius安装
- 下载源码
gitee:https://gitee.com/panweilei/ruoyi-radius.git

- 初始化数据库
执行ruoyiradius-init.sql


- 修改radius-application.properties,避免和freeradius端口冲突
org.toughradius.authport=${RADIUSD_AUTH_PORT:2812}
org.toughradius.acctport=${RADIUSD_ACCT_PORT:2813}
修改为false
org.toughradius.portal.portalEnabled=${PORTAL_ENABLED:false}
- 创建
/opt/server/ruoyiradius/logs
在主机上创建日志输出目录
- 启动ruoyi-radius
maven打包,修改ry.sh(Appname的修改,jar路径的修改)
启动项目 ./ry.sh start

4.调试&验证
- 调试模式启动freeradius
radiusd -X

启动(AC模拟器)ACUDP.jar
jar包下载:http://150.158.153.233:9876/ACUDP.jar
源码下载:私信我发你邮箱
./acudp.sh

- 打开管理后台:http://127.0.0.1:8090/
- 添加设备

3.添加用户

测试打断登录
浏览器输入:http://127.0.0.1:8090/wlandemo,页面将出现以下内容,然后按部就班的操作就行,可以观察后台freeradius日志和ruoyi-radius日志的输出情况.





【保姆教程】RuoYi-Radius搭建实现portal认证的更多相关文章
- 渗透测试思路 | Linux下自动化搭建FakeAP,劫持用户在Portal认证下的所有流量
如何在linux下搭建一个fakeap,使得portal认证下的用户无法发现连接你的假AP,并且能够正常上网.先说一下portal认证.无线WIFI认证方式主要有wpa2 和 open两种,而port ...
- Windows Server 搭建企业无线认证(Radius认证方案)
认证协议介绍: 扩展认证协议EAP(Extensible Authentication Protocol) 是一个在无线网络或点对点连线中普遍使用的认证框架.它被定义在RFC 3748中,并且使RFC ...
- 保姆教程系列一、Linux搭建Nacos
前言: 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 简介: Nacos是阿里巴巴开源的一款支持服务注册与发现,配置管理以及微服务管理的组件.用来取代以前常用的注册中心(zookeeper ...
- OpenWRT下实现Portal认证(WEB认证)
首先简单介绍一下什么是Portal认证,Portal认证,通常也会叫Web认证,未认证用户上网时,设备强制用户登录到特定站点,用户可以免费访问其中的服务.当用户需要使用互联网中的其它信息时,必须在门户 ...
- 保姆教程系列二、Nacos实现注册中心
前言: 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 上篇我们介绍到 保姆教程系列一.Linux搭建Nacos 注册中心原理 一.环境准备 Java版本:1.8+ (Linux ce ...
- Owin中间件搭建OAuth2.0认证授权服务体会
继两篇转载的Owin搭建OAuth 2.0的文章,使用Owin中间件搭建OAuth2.0认证授权服务器和理解OAuth 2.0之后,我想把最近整理的资料做一下总结. 前两篇主要是介绍概念和一个基本的D ...
- 使用Owin中间件搭建OAuth2.0认证授权服务器
前言 这里主要总结下本人最近半个月关于搭建OAuth2.0服务器工作的经验.至于为何需要OAuth2.0.为何是Owin.什么是Owin等问题,不再赘述.我假定读者是使用Asp.Net,并需要搭建OA ...
- Radius 远程用户拨号认证系统
RADIUS 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . RADIUS:Remote Authentication Dial In User Service,远程用户拨号认证系 ...
- 拿nodejs快速搭建简单Oauth认证和restful API server攻略
拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...
随机推荐
- 人非圣贤孰能无过,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang错误处理机制EP11
人非圣贤,孰能无过,有则改之,无则加勉.在编程语言层面,错误处理方式大体上有两大流派,分别是以Python为代表的异常捕获机制(try....catch):以及以Go lang为代表的错误返回机制(r ...
- 054_末晨曦Vue技术_处理边界情况之组件之间的循环引用
组件之间的循环引用 点击打开视频讲解更详细 假设你需要构建一个文件目录树,像访达或资源管理器那样的.你可能有一个 <tree-folder> 组件,模板是这样的: <p> &l ...
- JavaScript基础回顾知识点记录3
js 中 垃圾回收 //将不在使用的对象设置为null , js就会自动进行垃圾回收机制 var obj = {}; obj = null; js 中 数组基本介绍 数组也是一个对象 与普通对象功能类 ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:4、微服务应用程序发布到Docker部署(上)。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
- awk5个使用场景
awk简介 首先要知道awk的使用场景,需了解awk有哪些优势与短板. 关于个人近期学习awk总结其优势: awk对文本的处理运算效率同比其他工具效率高很多(比shell的for循环高10倍以上,运算 ...
- Docker网络讲解 及实验redis集群部署
理解docker0 准备工作:清空所有的容器,清空所有的镜像 docker rm -f $(docker ps -a -q) # 删除所有容器 docker rmi -f $(docker image ...
- Homework4
书籍链接:https://www.ituring.com.cn/article/13466(why Software Development Methodologies Suck?) 问:读 why ...
- Thrift RPC改进—更加准确的超时管理
前言: 之前我们组内部使用Thrift搭建了一个小型的RPC框架,具体的实现细节可以参考我之前的一篇技术文章:https://www.cnblogs.com/kaiblog/p/9507642.htm ...
- DFS算法-求集合的所有子集
目录 1. 题目来源 2. 普通方法 1. 思路 2. 代码 3. 运行结果 3. DFS算法 1. 概念 2. 解题思路 3. 代码 4. 运行结果 4. 对比 1. 题目来源 牛客网,集合的所有子 ...
- 安装Win 8.1 跳过输入密钥步骤
安装Win 8.1 跳过输入密钥步骤 问题描述 因测试需要,要安装Win 8.1到实体机上,但是制作完U盘启动盘,开始安装时发现,必须输入产品密钥才能进行安装.所以,在这里介绍 ...