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

推薦閱讀