freeradius server和 client 部署(实战)
网上有很多的文章,但总是遇到各类问题,有的也没有明确的说明,在此总结了一下自己的实战记录,分享出来:(分享者:qin)
第一种freeradius-server安装方法:
1.安装依赖库
yum -y install libtalloc-devel
yum -y install openssl openssl-devel
yum -y install mysql-devel
2.获取源码
wget https://github.com/FreeRADIUS/freeradius-server/archive/freeradius-server-3.0.13.tar.gz
tar -zxvf freeradius-server-3.0.13.tar.gz
cd freeradius-server-3.0.13/
3.编译
./configure
make
sudo make install
也可参考官方安装指导文档:
https://wiki.freeradius.org/building/RHEL%20and%20Centos
第二种freeradius-server安装方法:
1. 安装依赖库:libtalloc
yum -y install libtalloc-devel
2.安装依赖库:openssl
yum -y install openssl openssl-devel
3.安装依赖库和radius-server:
yum install -y freeradius freeradius-utils freeradius-mysql
4.查看安装结果:rpm -qa |grep freeradius
freeradius-mysql-3.0.13-15.el7.x86_64
freeradius-3.0.13-15.el7.x86_64
freeradius-devel-3.0.13-15.el7.x86_64
freeradius-utils-3.0.13-15.el7.x86_64
有以上4项说明本次安装成功
5. 装完成后,去修改配置文件/etc/raddb/users
(修改文件前记得备份一下原文件),在此文件的最后添加下面一行内容:
test Cleartext-Password := “123456” -----》注意不要有任何中文字符存在
6. 如果启动了防火墙,需要修改防火墙配置,
允许freeradius所使用的端口1812,1813通过。命令如下:
iptables -A INPUT -p udp --dport 1812 -j ACCEPT
iptables -A INPUT -p udp --dport 1813 -j ACCEPT
7.启动debug验证模式
radiusd -X
重新开启一个终端输入命令
radtest test 123456 localhost 1812 testing123
能收到如下报文说明认证成功:
Received Access-Accept Id 32 from 127.0.0.1:1812 to 0.0.0.0:0 length 20
8.配置允许接入的客户端所在IP段:
/etc/raddb/clients.conf 中修改允许客户端接入的IP段:
例如添加一下允许访问的IP段:
client 10.2.18.8/16 {
secret = testing123
}
9. 申请RDS数据库
(1)创建库名:radius
(2)在radius库中创建各类数据表:
将机器上 /etc/raddb/mods-config/sql/main/mysql/schema.sql 数据表创建和结构倒入radius库中即可
共创建了7个表,分别是:
radcheck 用户检查信息表
radreply 用户回复信息表
radgroupcheck 用户组检查信息表
radgroupreply 用户组检查信息表
radusergroup 用户和组关系表
radacct 计费情况表
radpostauth 认证后处理信息,可以包括认证请求成功和拒绝的记录
10.建立组信息和用户信息
(1)连接数据库,进入radius库
(2)建立组信息:(在此新建组名称为user)
insert into radgroupreply (groupname,attribute,op,value) values ('user','Auth-Type',':=','Local');
insert into radgroupreply (groupname,attribute,op,value) values ('user','Service-Type',':=','Framed-User');
insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Address',':=','255.255.255.255');
insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask',':=','255.255.255.0');
(3)建立用户信息:(在此新建用户名为test,密码为testpwd)
insert into radcheck (username,attribute,op,value) values ('test','Cleartext-Password',':=','testpwd');
(4)将用户加入组中
insert into radusergroup (username,groupname) values ('test','user');
11.修改 FreeRADIUS中的mysql 认证配置
(1) 执行如下命令:
cd /etc/raddb/mods-enabled
ln -s ../mods-available/sql
(2) 修改 FreeRADIUS中的mysql 配置文件
该配置文件位于/etc/raddb/mods-available目录,名称为sql
将32行的内容修改为如下:
driver = "rlm_sql_mysql"
vim /etc/raddb/mods-available/sql (第98行)修改如下配置
dialect = "sqlite" -> dialect = "mysql"
//下列配置前的注释去掉
server = "localhost" #//mysql服务器地址
port = 3306 #//mysql 端口号
login = "radius" #//myqsl 登录用户名
password = "radpass" #//mysql 登录密码
read_clients = yes
(3)debug模式重启frreRADIUS (为了能在终端看到详细日志输出)
radiusd -X
(4)再次验证用户认证
重新开启一个终端输入命令
radtest test testpwd localhost 1812 testing123
能收到如下报文说明认证成功:
Received Access-Accept Id 32 from 127.0.0.1:1812 to 0.0.0.0:0 length 20
(5)正式操作radius-server时的
启动命令:service radiusd start
停止命令:service radiusd stop
安装radius客户端:
1.获取客户端源码:
wget -c ftp://ftp.freeradius.org/pub/freeradius/freeradius-client-1.1.7.tar.gz
tar zxvf freeradius-client-1.1.7.tar.gz
cd freeradius-client-1.1.7
2.编译安装:
./configure
make && make install
3.安装成功后的可执行文件放至路径:
/usr/local/sbin/
|-- sbin
|-- radacct 发送计费包
|-- radembedded 生成配置文件(未使用过)
|-- radexample 发送鉴权包
|-- radiusclient 发送鉴权包
|-- radlogin 发送鉴权包
`-- radstatus 查看服务器状态
4.客户端配置文件位置:
(1) /usr/local/etc/radiusclient/radiusclient.conf
注意一下配置内容即可:
auth_order radius
authserver localhost
(2) /usr/local/etc/radiusclient/servers
密钥字段要和服务器端配置的一样,否则认证不通过
localhost/localhost testing123
出现的问题和解决方法:
1.无法加载libfreeradius-client.so.2:
[root@server2618 ~]# radlogin
radlogin: error while loading shared libraries: libfreeradius-client.so.2: cannot open shared object file: No such file or directory
[root@server2618 ~]#
解决:
[root@server2618 ~]# cp /usr/local/lib/libfreeradius-client.so.2 /usr/lib64/
[root@server2618 ~]# radlogin
($Id: radlogin.c,v 1.9 2008/01/09 07:04:18 sobomax Exp $)
-----------------------------------------------------
Linux 3.10.0-1062.9.1.el7.x86_64 (server2618) (port 0)
-----------------------------------------------------
login: test
Password: