环境说明:阿里云ECS服务器Centos7系统,里面的docker容器又创建了一个Centos7系统,在docker创建的Centos系统中搭建的FreeRadius3
没有集成mysql,没有集成ldap等,最下面有踩坑记录
版本FreeRadius3
一、安装FreeRadius3
yum install freeradius
- freeradius会被安装到如下目录:/etc/raddb/
二、测试安装是否成功
radiusd -X
- 当最底下输出:出现 Ready to process requests 则表示服务器正确安装和配置
- 如果是ctrl+c推出,就不用杀死进程。如果再次启动 radiusd -X 是出现红字报错,可以看下是不是启动了进程,杀死再启动即可,下面是查询命令
ps -ef | grep radius
三、初步测试认证
(1) 、freeradius3官方描述修改users,users修改地址/etc/raddb/mods-config/files/authorize。但是翻看别的帖子时候发现修改的是/etc/raddb/users。后来查看了一下发现是同一个文件,应该是3向下做的兼容,所以这两个文件改哪一都是一样的,会看到users添加什么authorize也会添加同样的信息
vi /etc/raddb/mods-config/files/authorize
或(两个是同一个文件)
vi /etc/raddb/users
- 在文档最上面,添加如下内容:
testing Cleartext-Password := "password"
- 下面是添加完成的
testing Cleartext-Password := "password"
# Configuration file for the rlm_files module.
# Please see rlm_files(5) manpage for more information.
#
# This file contains authentication security and configuration
# information for each user. Accounting requests are NOT processed
# through this file. Instead, see 'accounting', in this directory.
#
(2)、开一个新窗口
- 安装,freeradius-utils工具包。
yum install -y freeradius-utils
- 运行如下命令(上面不安装工具,这个会提示command not found )
radtest testing password 127.0.0.1 0 testing123
- 运行成功会看到Access-Accept。
Sent Access-Request Id 29 from 0.0.0.0:56796 to 127.0.0.1:1812 length 77
User-Name = "testing"
User-Password = "password"
NAS-IP-Address = 这里是ip地址
NAS-Port = 0
Message-Authenticator = 0x00
Cleartext-Password = "password"
Received Access-Accept Id 29 from 127.0.0.1:1812 to 0.0.0.0:0 length 20
踩坑:
一、 freeradius是UDP协议默认端口1812,1813,在创建Docker容器的时候映射端口记得要加/udp,举例如下:
docker run -tid --name test -p 8091:1812/udp centos:7 /bin/bash
还有一点是,阿里云服务器要设置开放映射的udp端口。。
二、upd测试端口是否可以连通时不是用 ping 而是用nc命令,这个命令我在dos上不好使,linux没问题。
nc -vuz ip地址 端口
三、测试软件。
1、windows环境测试指定端口是否开放软件,可以测试tpc/udp。在使用这个测试freeradius是否收到消息时,1、打开软件点击客户端,2、点击udp通道,连接成功后会在记录里提示opened,3、在下面图片所示输入框里,随便填写点内容。4、发送,在搭建的freeradius服务端会看到一条红色信息,表示当前端口是通的。(注意:在测试模式radiusd -X模式下才可以看到)
2、windows端的freeradius客户端软件,可以测试用户名是否正确。使用教程和下载地址