Radius业务场景集成

最后更新:2022-05-06

1. 场景介绍

在实际对接中经常遇到IDaaS接管交换机、路由器中的账户认证信息,通常我们使用 Radius 进行认证。

2. 单机部署

2.1. 部署前提条件

  1. IDaaS已经部署好,正在运行。

2.2. 环境说明

jdk1.8及以上

注意,里面采用了AES256算法,需要替换jre的jce_policy,不然无法使用,认证不成功 jce_policy下载地址: 点击下载

2.3. Radius 安装包准备

用IDaaS的管理员登录系统,RADIUS—>点击这里,下载IDaaS-Radius-latest.zip安装包。
resources/radius-1.png

2.4. Radius配置

用IDP4的管理员登录系统,RADIUS—>新建Radius
resources/radius-2.png
resources/radius-3.png

2.5. Radius启动

  1. 下载配置Radius的配置文件idaas-radius.config
    resources/radius-4.png

  2. 将IDaaS-Radius-latest.zip安装包放置到/data/applications/idp4/中并解压,得到IDaaS-Radius-2.0.2目录。

  3. 更改配置文件:将在IDP4上下载的idaas-radius.config替换IDaaS-Radius-2.0.2/conf中的文件。

  4. 启动Radius

cd /data/applications/idp4/IDaaS-Radius-2.0.2
nohup ./run.sh &

  1. 检查radius的进程和日志

ps -ef |grep radius

resources/radius-5.png
对应的监听的端口是:1812 (UDP)

cat /data/applications/idp4/IDaaS-Radius-2.0.2/logs/ idaas-radius-debug.log

resources/radius-6.png

2.6. Radius测试

  1. 测试工具:NTRadPing (自行下载)

  2. 测试配置
    resources/radius-8.png
    查看日志也能得到消息。cat /data/applications/idp4/IDaaS-Radius-2.0.2/logs/ idaas-radius-debug.log
    resources/radius-9.png

3. 集群部署

当前的jzytradius是单实例运行,不能满足高可用的需求。 采用nginx反向代理radius udp服务,搭配可用的集群环境。

3.1. 部署指南

这里以两台radius节点示例,
节点:192.168.1.2 ,192.168.1.3
nginx:192.168.1.1

3.2. radius部署

分别在两台节点上部署radius实例,参考单机部署

3.3. nginx部署

前提:nginx版本需要大于**1.9.13,**需要开启with-stream模块
查询是否开启
输入-V 指令查看,如下面示例,有--with-stream部分表示已经开启

[root@ sbin]# ./nginx -V nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: –prefix=/data/public/nginx –with-http_stub_status_module –with-http_ssl_module –with-stream

开启方法:
重新编译安装nginx,加入–with-stream指令编译

tar -zxf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure –prefix=/data/public/nginx –with-http_stub_status_module –with-http_ssl_module –with-stream make
make install

配置nginx.conf:
nginx.conf中填入以下内容:

stream {
    upstream auth {
        server 192.168.1.2:1812;
        server 192.168.1.3:1812;
    }
    upstream accounting {
        server 192.168.1.2:1813;
        server 192.168.1.3:1813;
    }
    server {
        listen 1812 udp;
        proxy_responses 1;
        proxy_timeout 5s;
        proxy_pass auth;
    }
    server {
        listen 1813 udp;
        proxy_responses 1;
        proxy_timeout 5s;
        proxy_pass accounting;
    }
}

启动或重新加载 nginx :

#启动
./nginx
#重新加载
./nginx -s reload

3.4. 测试

参考单机部署-Radius测试 连接IP为nginx节点IP

4. 其他

4.1. 策略管理(属性下发)

IDaaS-Radius支持Radius属性下发功能, 支持标准RADIUS属性或者其他厂商(自定义)的属性下发。并支持nasId匹配

4.1.1. 如何使用

使用前提,已经部署好IDaaS-Radius实例,参考单机部署-Radius测试 使用流程: 添加策略 -> 绑定策略(Radius,组)-> 使用

4.1.2. 添加策略

用IDP4的管理员登录系统,RADIUS —> Radius策略(右上角)-> 新建策略
resources/radius-10.png
resources/radius-11.png
resources/radius-12.png

  • 策略名称:策略的名称,唯一

  • Vendor ID:服务提供商ID。用来匹配策略下发。如果设置了该值,则会和Radius的Vendor进行匹配(两者一致才会下发)。

  • 策略属性 :策略下的属性列表,可以添加多个

  • NAS-ID标识 :NAS设备标识。用来匹配策略下发。通过radius认证时如果传递该参数,只会下发匹配的策略。

  • 状态 :是否开启策略

当Vendor ID 为-1 (UNKNOWN) 时,表示该策略为radius标准属性,不进行Vendor的匹配,会全部下发。(还是会匹配NAS-ID) 策略属性需要符合radius标准属性规范,不能自我随意定义,IDaaS-Radius内置部分策略,如果未在内置范围内,添加完毕属性后,需要再次前往IDaaS-Radius部署环境中,修改conf\default_dictionary,添加自定义属性重启服务生效。

4.1.3. 绑定策略(radius)

返回Radius管理界面,点击绑定策略,选择需要绑定的策略即可。
resources/radius-13.png

4.1.4. 绑定策略(group)

返回Radius管理界面,点击授权,进入授权管理页面。 关闭授权公司所有账户开关,点击右侧更新授权,添加需要授权的组。 在选择的组右侧点击绑定策略,提交即可。
resources/radius-13.png

4.1.5. 策略下发规则

下发前提:

  • 当策略设置了Vendor:-1 (UNKNOWN),则表示为标准Radius属性,则通过,进行下面规则判断,判断通过后下发 ;

  • 当策略设置了Vendor:非-1,则表示厂商的Radius属性,则只会匹配Radius的vendor,两者一致则通过,进行下面规则判断,判断通过后下发 ;

下发规则满足以下规则,优先级从高到低。

  1. radius授权组绑定了策略,认证时传递了NAS-ID参数,且和策略的NAS-ID一致;

  2. radius授权组绑定了策略,认证时传递了NAS-ID参数,策略未设置NAS-ID;

  3. radius绑定了策略,认证时传递了NAS-ID参数,且和策略的NAS-ID一致;

  4. radius绑定了策略,认证时传递了NAS-ID参数,策略未设置NAS-ID;

  5. radius绑定了策略,认证时未传递NAS-ID参数;