一、Radius是什么
- Radius认证是一种应用最广泛的AAA协议,即认证(Authentication)、授权(Authorization)和计费(Accounting),是网络安全中进行访问控制的一种安全管理机制。Radius是一种C/S结构的协议,该协议认证机制灵活,简单明确,可扩充,可以采用PAP、CHAP或者Unix登录认证等多种方式。
- 协议定义了基于UDP的RADIUS报文格式及其传输机制,并规定UDP端口1812、1813分别作为认证、计费端口。
二、linux搭建Radius服务器
1.使用yum进行安装
yum install -y freeradius freeradius-mysql freeradius-utils
2.安装完毕后查看进程运行状态
ps -ef|grep radius
如果未启动成功,自行手工启动
systemctl start radiusd.service
3.测试能否正常运行
- 启动Radius服务
radiusd -X
注:如果启动失败,大概率是1812端口被占用(如下图)
- 本机测试
radtest testing password localhost 0 testing123
注:radtest命令由5个参数组成,第一个参数为用户名(testing),第二个参数为密码(password),第三个参数为服务器IP地址(localhost),第四个参数为NAS端口(0),第五个参数为共享密钥(testing123)
如果出现下图则代表安装成功
4.配置freeradius
- 修改clients.conf文件
vim /etc/raddb/clients.conf
添加下图内容,192.168.13.0/24代表允许该网段访问,testing123为Radius的秘钥
- 添加用户
vim /etc/raddb/users
添加如下内容
DEFAULT Auth-Type := "Accept" 表示允许任意账号密码可以认证使用
test Cleartext-Password:= "123456" 表示指定账号密码可以认证使用
重启服务,让配置生效,Radius服务器最基础的功能已配置完毕。
三、Radius服务器验证原理
1.工作原理
2.RADIUS报文格式
RADIUS是一种可扩展的协议,所有的交互报文由多个不同长度的ALV(Attribute-Length-Value)三元组组成,新增加属性和属性值不会破坏到协议的原有实现。因此RADIUS协议也支持设备厂商扩充厂家专有属性。
下图为Radius服务器的一次验证过程
所有内容只为了记录搭建和学习过程,部分内容源于网络。
想要了解更详细的工作原理,推荐访问下方连接