
mysql -u root -p
CREATE DATABASE radius
GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY "radpass"
exit
上述命令创建了一个名为radius的数据库,并且创建了一个名为radius@localhost,密码为radpass的数据库用户,并赋予相应权限。
2. MySQL中表结构的定义
针对FreeRadius2,数据表的设计和结构定义在下面的文件中:
/etc/raddb/sql/mysql/schema.sql 主数据库定义,7个表,包括
radcheck 用户检查信息表
radreply 用户回复信息表
radgroupcheck 用户组检查信息表
radgroupreply 用户组检查信息表
radusergroup 用户和组关系表
radacct 计费情况表
radpostauth 认证后处理信息,可以包括认证请求成功和拒绝的记录。
/etc/raddb/sql/mysql/nas.sql 网络设备定义,只有一个表
nas 网络设备表
下面的表用于一些扩展功能,可以按需导入。
ippool.sql ip池
wimax.sql wimax设备支持
cui.sql cui 支持
详细的表定义参见: http://wiki.freeradius.org/MySQL_DDL_script
3. 导入和建立表结构
mysql -u root -p radius </etc/raddb/sql/mysql/schema.sql mysql -u root -p radius </etc/raddb/sql/mysql/nas.sql
上述命令执行schema.sql和nas.sql的sql语句,建立相应的数据库结构。
4.FreeRadius2配置,重要!!
- radius主配置文件包括sql部分: /etc/raddb/radiusd.conf$INCLUDE sql.conf
否则会出现错误:
Failed to load module "sql".
同时还会影响freeradius其他模块的安装,出现错误:
E: Sub-process /usr/bin/dpkg returned an error code (1)
- 数据库设置 /etc/raddb/sql.conf,和数据库定义相符(数据库服务器、用户密码、表名称等等):
database = "mysql"
login = "radius"
password = "radpass"
- 数据库功能性定义文件: /etc/raddb/sites-available/default
实现相关模块对数据库的支持
authorize(认证),accounting(审计),session(会话,用于监测同时连接),post_auth(记录) 子段加入sql关键字,如:authorize {
preprocess
chap
mschap
suffix
eap
sql
pap
}
--配置数据库记录所有(包括拒绝reject)认证请求默认情况下,SQL模块仅记录认证成功的请求(可能是基于防止数据库快速增加和ddos攻击的考虑),如果我们基于统计的考虑需要开启这个功能的话,非常简单,还是在 /etc/raddb/sites-available/default 中的 post_auth区段中,找到或增加Post_Auth_Type REJECT 子类型,增加sql 关键字就可以了,它的原理是,在认证后,如果失败,就进入Post-Auth-Type REJECT子类型,如果定义了sql,系统会调用 /sql/mysql/dialup.conf 文件中的 postauth_query= 定义的sql语句进行处理。 post-auth { .... sql .... Post-Auth-Type REJECT {
# Login failed: log to SQL database.
sql
}} 5. 测试添加测试用帐号:mysql -u root -puse radiusinsert into radcheck (username,attribute,value,op) values ('userdbtest','Cleartext-Password','password123',':=')使用测试帐号进行测试:启动服务器或者使用调试模式:service radiusd restart测试客户端:radtest userdb password123 localhost 10 testing123
在 /etc/freeradius/3.0/clients.conf 保存了客户端白名单,需要在其他电脑发起鉴权时,要先在这里添加授权。具体配置详情可以直接看文件注释,默认只允许本地访问,密码为 testing123 。
在 /etc/freeradius/3.0/mods-config/files/authorize 保存了帐号信息,可以在第一行添加 testing Cleartext-Password := "password" 作为测试。
修改完配置文件后记得重启radius,测试建议关闭服务( systemctl stop freeradius.service ),使用 freeradius -X 开启调试模式,获取详细信息。
在本地执行 radtest testing password 127.0.0.1 0 testing123 ,显示 Access-Accept 代表认证成功。
其中可以使用配置的方式来读取,配置文件格式如下: 文件格式详情
末尾需要添加空格,否则无效!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)