1、系统已经安装mysql的环境了,没有mysql的先装好mysql(编译安装或yum安装均可)
2、yum安装freeradius软件
1 | $ yum install freeradius freeradius-mysql |
3、创建数据库、数据库用户、导入数据(freeradius的版本是2.1.12,不同的版本可能sql文件名和位置不一样)
1 | mysql> create database radius; |
主数据库各字段含义:
radcheck 用户检查信息表
radreply 用户回复信息表
radgroupcheck 用户组检查信息表
radgroupreply 用户组检查信息表
radusergroup 用户和组关系表
radacct 计费情况表
radpostauth 认证后处理信息,可以包括认证请求成功和拒绝的记录。
nas 网络设备表 扩展功能表,可以按需导入ippool.sql、wimax.sql wimax、cui.sql cui详细的表定义参见:
http://wiki.freeradius.org/MySQL_DDL_script。
4、配置、启动、验证
修改/etc/raddb/site_enabled下的defoult文件(2.1.1与1.1.7不同,radius.conf被 分成了几个部分,authorize 被放在了defoult文件下,请注意),把authorize{} 、accounting {}中的sql前面的#去掉,并把authorize{} 中的files前加#,更改后的authorize{} 、accounting {}如下:
1 | authorize { |
修改与mysql数据库连接的配置文件/etc/raddb/sql.conf,默认端口3306可以通过port参数更改,修改的部分如下:
1 | server = "localhost" #主机 |
修改客户端信息配置文件:/usr/local/etc/raddb/clients.conf,默认文件只需添加shorname = localhost项:
1 | client localhost { |
修改radius的配置文件,在目录/etc/raddb/radiusd.conf中一定要取消这一行的注释:$INCLUDE sql.conf。要是在debug时出现load module的任何相关错误,都要取消radiusd.conf中的关于那一行module的注释,否则不会加载。
启动radiusd,并将该服务加入开机启动项
1 | $ /etc/init.d/radiusd start |
向mysql的radius插入测试数据并测试
1 | mysql> insert into radcheck (username,attribute,op,value) values ('test','Cleartext-Password',':=','test'); |
用radtest测试test用户,密码是test(如果没有radtest命令,执行yum instll freeradius*)
1 | $ radtest test test localhost 0 testing123 |
服务器如果返回有“Access-Accept”的字样,代表认证成功了,如果有“Access-Reject”字样则认证失败,这时可以停用radiusd服务,用命令radiusd -X开启服务从全部的debug信息中找到问题并解决。
如果测试的时候发现没有找到主机的,如下:
1 | $ radtest test test localhost 0 testing123 |
更改/etc/hosts文件添加本地主机解析记录即可
1 | $ cat /etc/hosts 127.0.0.1 Zabbix-Server ... ... ... ... |