首页 > 其他分享 >【保姆教程】RuoYi-Radius搭建实现portal认证

【保姆教程】RuoYi-Radius搭建实现portal认证

时间:2022-10-30 21:00:07浏览次数:71  
标签:etc RuoYi rest urlquote raddb portal Acct Radius freeradius

【保姆教程】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安装

  1. 下载源码

gitee:https://gitee.com/panweilei/ruoyi-radius.git

  1. 初始化数据库

执行ruoyiradius-init.sql

http://150.158.153.233:9876/WX20221029-151201@2x.png

  1. 修改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}
  1. 创建/opt/server/ruoyiradius/logs

在主机上创建日志输出目录

  1. 启动ruoyi-radius

maven打包,修改ry.sh(Appname的修改,jar路径的修改)

启动项目 ./ry.sh start

4.调试&验证

  1. 调试模式启动freeradius
radiusd -X
  1. 启动(AC模拟器)ACUDP.jar

    jar包下载:http://150.158.153.233:9876/ACUDP.jar

    源码下载:私信我发你邮箱

./acudp.sh
  1. 打开管理后台:http://127.0.0.1:8090/
  2. 添加设备

3.添加用户

  1. 测试打断登录

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

标签:etc,RuoYi,rest,urlquote,raddb,portal,Acct,Radius,freeradius
From: https://www.cnblogs.com/javacat/p/16839445.html

相关文章

  • [AGC008F] Black Radius
    记\(S(u,d)\)表示与\(u\)的距离不大于\(d\)的点构成的点集。为了方便后面的讨论,先加入全集的贡献\(1\)。当所有点均可选时,考虑如何不重的计算点集,有些题解写的是......
  • Field *****Service in com.ruoyi.web.slweb.controller.SysApplicationMapper requir
      这个问题直接去service看一下@Service这个注解有没有漏写,我的原因是在git上面拉下来的代码impl里面的的serviceimpl没有上传......
  • mojoPortal在codeplex上的站点
    mojoPortal是一个开源的、用C#编写的站点框架和内容管理系统,可以运行在Windows中的ASP.NET和Linux/MacOSX中的Mono下。可替换的数据访问层......
  • React基础篇——九、Portals
    九、PortalsReact16的Portals特性让我们可以把组件渲染到当前组件树以外的DOM节点上。典型的应用场景是渲染全局的应用弹框,使用Portals后,任意组件都可以把弹框组件渲染到......
  • 最火后台管理系统 RuoYi 项目探秘,之一
    我们正在探秘各种比较火热的后台管理相关的开源项目,探秘结果将以系列文章的形式分享。希望你能在这些文章中学习别人的优点,也能看到别人的不足,进而可以提升自我的技术能力......
  • RuoYi-Vue切换达梦数据库(一)
    一、达梦数据库安装这里使用的达梦8开发版 ,安装过程没什么且包内有说明文档。要注意的点是创建数据库实例时,记得取消勾选字符串比较大小写敏感。二、达梦数据库用户设......
  • RuoYi-Vue切换达梦数据库(二)
    一、JDBC依赖代码部分适配 RuoYi-Vuev3.8.4前后端分离版1、修改admin模块下的pom.xml文件Maven仓库中存在,直接替换注意jdbc包的版本:Dm7JdbcDriver18中7是DM数据库的......
  • 关于Azure-portal-虚拟机界面通过Private IP address-无法搜索到虚拟机的解决方法
    因Azure管理的机器越来越多了,今天需要去查看一台虚拟机的信息及做一些操作于是笔者登录到Azure-portal,进入到Virtualmachines界面,通过要处理的机器的内网私有IP地址,尽然......
  • css3中的圆角border-radius
    css3的属性应该加上浏览器前缀不同的浏览器内核不同,因此css的前缀不同。常见的几种浏览器内核火狐浏览器Geoko内核前缀是-mox-谷歌浏览器,Webkit内核......
  • RuoYi导出部分和全部方法
    /***导出部分校历详细条目列表*@paramresponse*@paramids*/@PostMapping("/export/{ids}")publicvoidexport(HttpServletResponseresponse,@PathVariable("id......