1 安装freeradius和mysql
yum -y install freeradius freeradius-mysql freeradius-utils mysql-server
2 启动mysql
service mysqld start
3 创建数据库并授权
mysql -uroot -p
mysql-> CREATE DATABASE radius;
mysql-> GRANT ALL PRIVILEGES ON radius.* TO [email protected] IDENTIFIED BY "radpass";
mysql-> flush privileges;
4 导入数据表
mysql> use radius;
mysql> SOURCE /etc/raddb/sql/mysql/schema.sql;
mysql> exit;
5 配置freeradius
5.1 数据库连接文件
修改配置文件/etc/raddb/sql.conf
# Connection info:
server = "localhost"
#port = 3306
login = "root" #mysql登录用户名
password = "" #上述登录用户名的密码
# Database table configuration for everything except Oracle
radius_db = "radius"
5.2 基本配置文件
修改配置文件/etc/raddb/radiusd.conf
$INCLUDE sql.conf #去掉前面的注释
5.3 默认配置文件
修改配置文件/etc/raddb/sites-available/default
authorize{} 字段中去掉里面sql前面的注释
accounting {} 字段中去掉里面sql前面的注释
session {} 字段中去掉里面sql前面的注释
如下图所示:
5.4 inner-tunnel配置文件
修改配置文件/etc/raddb/sites-available/inner-tunnel
authorize {} 字段中去掉里面sql前面的注释
session {} 字段中去掉里面sql前面的注释
5.5 访问权限配置文件
修改配置文件/etc/raddb/clients.conf
添加freeradius client的ip地址和secret
(例如在clients.conf末尾添加下面语句)
client 10.18.0.0/24 {
secret = 1234567890
}
6启动freeradius服务
service radiusd restart
7添加用户和密码
mysql -uroot -p
mysql> use radius;
mysql> insert into radcheck (username,attribute,op,value) values ('test','User-Password',':=','test');
mysql> exit;
8添加用户带宽设置
必须增加这些字段,否则用户获取不到带宽,tm将不转发该用户的包。
这里以添加zte厂商的带宽设置为例,不同的用户将test改成对应的用户名即可。
mysql -uroot -p
mysql> use radius;
mysql> insert radreply values("","test","ZTE-Rate-Ctrl-Scr-Down","=", "512000");
mysql> insert radreply values("","test","ZTE-Rate-Ctrl-Scr-Up","=", "512000");
9测试
9.1 服务器本地测试
radtest test test 127.0.0.1 0 testing123
测试工具: radtest (freeradius后自带的工具)
用户名: test
密码: test
服务器地址: 127.0.0.1
端口数量: 0(默认)
秘钥: testing(系统默认)
看到“rad_recv: Access-Accept” 表示认证成功认证成功。
9.2 客户端远程测试
radtest test test 10.18.0.42 0 1234567890
测试工具: radtest (freeradius后自带的工具)
用户名: test
密码: test
服务器地址: 10.18.0.42
端口数量: 0(默认)
秘钥: 1234567890(第5.5步设置)
[[email protected] home]# radtest test test 10.18.0.42 0 1234567890
Sending Access-Request of id 125 to 10.18.0.42 port 1812
User-Name = "test"
User-Password = "test"
NAS-IP-Address = 127.0.0.1
NAS-Port = 0
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 10.18.0.42 port 1812, id=125, length=44
ZTE-Rate-Ctrl-SCR-Down = 512000
ZTE-Rate-Ctrl-SCR-