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

【保姆教程】RuoYi-Radius搭建实现portal认证一、简介以若依后台管理框架V4.6.0做为基础框架,实现了ToughRADIUS大部分功能,支持标准RADIUS协议(RFC 2865, RFC 2866),提供完整的AAA实现 。可运用于酒店WIFI认证,公司局域网权限认证,商场WIFI认证,其它公共场所等等 。
二、主要功能

  • 套餐管理
  • 设备管理
  • 用户管理
  • 订单管理
  • 在线管理
  • 微信、支付宝H5支付
  • 实现用户上线请求认证、动态授权、限速、强制下线
  • 实现上网时间到期后自动下线
三、认证流程
【保姆教程】RuoYi-Radius搭建实现portal认证

文章插图
四、搭建步骤系统环境:JDK1.8  , centos8,mysql5.7
注意:centos7的yum源没有freeradius-rest安装包,安装过程中会带来不少麻烦,建议centos8安装,省不少事情 。
1.freeradius安装yum install freeradius -y
【保姆教程】RuoYi-Radius搭建实现portal认证

文章插图
yum install freeradius-rest -y
【保姆教程】RuoYi-Radius搭建实现portal认证

文章插图
yum install freeradius-utils -y
【保姆教程】RuoYi-Radius搭建实现portal认证

文章插图
至此,我们已安装完成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配置,如下图所示:
【保姆教程】RuoYi-Radius搭建实现portal认证

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

文章插图
  • 修改/etc/raddb/users
vim /etc/raddb/users把freeradius的默认认证方式改为rest(DEFAULT Auth-Type := rest)
【保姆教程】RuoYi-Radius搭建实现portal认证

文章插图
  • 修改/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.0authorize {uri = "${..connect_uri}/api/freeradius/authorize"method = 'post'body = 'post'data = "https://www.huyubaike.com/biancheng/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 = "https://www.huyubaike.com/biancheng/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 = "https://www.huyubaike.com/biancheng/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 = 0retry_delay = 30lifetime = 0idle_timeout = 60 }}
  • 修改/etc/raddb/clients.conf
vim /etc/raddb/clients.conf改成自己的ip
【保姆教程】RuoYi-Radius搭建实现portal认证

文章插图
cd /etc/raddb/certs/./bootstrap到这里我们对freeradius的配置也就完成了,下面我们安装nuoyi-radius 。
3.ruoyi-radius安装
  1. 下载源码
gitee:https://gitee.com/panweilei/ruoyi-radius.git
【保姆教程】RuoYi-Radius搭建实现portal认证

文章插图
  1. 初始化数据库
执行ruoyiradius-init.sql

推荐阅读