当前位置:   article > 正文

Radius服务端搭建、运行及测试_开源radius服务器

开源radius服务器

1.FreeRadius

freeradius是GNU/GPL(通用公共许可证)的原则下,开发的高性能开源radius服务器。常见的radius服务器种类不多,比较强大的当属开源的freeradius,世界上大部分的radius服务器都是基于freeradius开发而来的。
freeradius可以对支持radius协议的网络设备进行账户认证、授权和记账管理,常见的开源路由器操作系统:如Openwrt,DD-wrt等,都支持radius协议,常见的电信运营商的宽带账户,上网账户管理,记账,也都是使用的radius服务器进行鉴权记账的。

2.FreeRadius离线安装(以Centos7为例)

在另一台可在线安装的相同环境下的主机下载freeradius离线安装包

ps:相同环境是指 操作系统内核相同,若安装不同环境的rpm包会导致底层错乱/系统崩溃

ps:不一定要在实体机中安装,可在docker容器中安装(开通服务端口1812和1813即可(UDP))

Centos7服务器1:

#安装yum-utils
$ yum -y install yum-utils

#下载 ansible 全量依赖包
$ repotrack freeradius
  • 1
  • 2
  • 3
  • 4
  • 5

Centos7服务器2:
#通过FTP等方式将下载的离线安装包上传到被安装主机上,并进入到目录内利用rpm安装。

$rpm -Uvh --force --nodeps *.rpm
  • 1

注意:若安装不成功,有可能是相对路径不对,请使用绝对路径安装(rpm安装需要使用绝对路径)

rpm -Uvh --force --nodeps /绝对路径/*.rpm

3.FreeRadius配置

3.1 配置FreeRadius的客户端

通过配置/etc/raddb/clients.conf,增加如下字段可以允许任意IP以正确的密钥连接FreeRadius。

client 0.0.0.0/0 {
secret=testing123 #连接密钥 }

3.2 配置用户信息

通过配置/etc/raddb/users可以增加、删除用户,以及配置当用户连接时,FreeRadius端回复的信息。

#第一行:为设置用户名和用户密码,也可设置限制用户的IP,例如增加Framed-IP-Address =173.16.3.55

#之后行:为FreeRedius回复给客户端的信息

#用户1:

admin Cleartext-Password := "admin123"
        Service-Type = Framed-User,
        Framed-Protocol = PPP,
        Framed-IP-Address = 172.16.3.33,
        Framed-IP-Netmask = 255.255.255.0,
        Framed-Routing = Broadcast-Listen,
        Framed-Filter-Id = "std.ppp",
        Framed-MTU = 1500,
        Framed-Compression = Van-Jacobsen-TCP-IP

#用户2:

aa Cleartext-Password := "admin"
        Service-Type = Framed-User,
        Framed-Protocol = PPP,
        Framed-IP-Address = 172.16.3.33,
        Framed-IP-Netmask = 255.255.255.0,
        Framed-Routing = Broadcast-Listen,
        Framed-Filter-Id = "std.ppp",
        Framed-MTU = 1500,
        Framed-Compression = Van-Jacobsen-TCP-IP
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

3.3 服务器端开启udp1812,udp1813端口,1812为认证端口,1813为计费端口,可根据具体需求开启端口。

#开放1812端口
systemctl start firewalld.service
firewall-cmd --zone=public --add-port=1812/udp --permanent
firewall-cmd --reload
systemctl stop firewalld.service
  • 1
  • 2
  • 3
  • 4
  • 5

4.开启Freeradius服务

4.1 调试模式

sudo radiusd -X

注意:可能会报证书错误,而无法开启,解决方法:① cd /etc/raddb/certs/ ② ./bootstrap即可。

若出现如下回显,则radius配置成功,有请求则直接在前台显示:
在这里插入图片描述

4.2后台运行

service radiusd start

ps:FreeRadius想要能够写log日志,就不能使用radiusd -X 启动;转为后台启动,日志查看需要配置,如下节:

5.Radius配置日志

5.1修改配置文件

/etc/raddb/radiusd.conf

在该文件的log字段中进行修改:

Log{

    auth = yes

    auth_badpass = yes

    auth_goodpass = yes

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

5.2查看日志

tailf /var/log/radius/radius.log

(这里仅是认证的日志,没有计费)

6.测试

对Radius认证的测试可使用radtest测试或RadTest工具进行测试:

6.1使用radtest测试

旧版的Freeradius安装后只有radius服务没有radtest工具,新版radtest会随Freeradius一同安装。

6.2RadTest工具进行测试

在这里插入图片描述

7.常见问题

7.1 访问被拒的问题

网络问题,查看客户端连接服务端的UDP端口是否连通:nc -vuz 10.48.93.106 1812、在服务端抓取UDP端口数据:tcpdump udp port 1812

7.2 命令行radtest无法使用问题

在config文件radius_client.py中配置好IP、port、共享秘钥、账户及密码,使用命令/opt/work/web/sensor/env/bin/python2.7 radius_client.py进行测试

7.3 若是运行测试文件radius_client.py报错,显示无文件

查看config中dictionary和dictionary.freeradius文件是否存在

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/546476
推荐阅读
相关标签
  

闽ICP备14008679号