RADIUS:Remote Authentication Dial In User Service,远程用户拨号认证系统由RFC2865,RFC2866定义,是目前应用最广泛的AAA协议;
RADIUS是一种C/S结构的协议,它的客户端最初就是NAS(Net Access Server)服务器,任何运行RADIUS客户端软件的计算机都可以成为RADIUS的客户端。RADIUS协议认证机制灵活,可以采用PAP、CHAP或者Unix登录认证等多种方式。RADIUS是一种可扩展的协议,它进行的全部工作都是基于Attribute-Length-Value的向量进行的。RADIUS也支持厂商扩充厂家专有属性。
本文Centos6.0
安装lamp平台,个人习惯
1
|
yum install -y httpd mysql* php*
|
安装freeradius
1
|
yum install -y freeradius*
|
进行测试下是否可以接收到返回值;
1
|
radtest steve testing
127.0
.
0.1
1812
testing123
|
1、登录Mysql创建radius库;
1
2
|
mysql> create database radius;
mysql> grant all on radius.* to radius@localhost identified by
'radius123'
;
|
针对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 支持
2、导入sql文件
1
2
|
mysql -u root -p radius < /etc/raddb/sql/mysql/schema.sql
mysql -u root -p radius < /etc/raddb/sql/mysql/nas.sql
|
配置radius.conf
1
2
|
vim /etc/raddb/radiusd.conf
700
$INCLUDE sql.conf # 启用sql文件
|
配置数据库文件sql.conf
1
2
3
4
5
6
7
8
|
vim /etc/raddb/sql.conf
sql {
database =
"mysql"
driver =
"rlm_sql_${database}"
server =
"localhost"
login =
"radius"
password =
"radius123"
radius_db =
"radius"
|
配置radius数据库功能文件 /etc/raddb/sites-available/default
实现相关模块对数据库的支持
authorize(认证),accounting(审计),session(会话,用于监测同时连接),post_auth(记录) 子段加入sql关键字,如:
1
2
3
4
5
6
7
8
9
|
authorize {
preprocess
chap
mschap
suffix
eap
sql
pap
}
|
service radiusd start
3、进行测试;
1
|
mysql -u root -p
|
1
2
|
mysql>
use
radius;
mysql> insert into radcheck(username,attribute,value,op)values(
"lansgg"
,
"Cleartext-Password"
,
"password123"
,
"="
);
|
service radiusd restart
测试
1
|
radtest lansgg password123 localhost
10
testing123
|
测试结果如上,OK
本文转自 西索oO 51CTO博客,原文链接:http://blog.51cto.com/lansgg/1223176