架设freeradius+mysql 的radius服务器

发表于:2007-07-04来源:作者:点击数: 标签:
架设freeradius+mysql的radius 服务器 本文献给广大 linux 的爱好者 有人居然说设置radius要卖钱,本人花了几天的功夫,看了些资料,终于成功设置radius服务器,现在贴出来和大家分享。 笔者用的平台是RedHat Linux 7.2 一、安装mysql 本人用的是光盘上的RPM

架设freeradius+mysql 的radius服务器

本文献给广大linux的爱好者
有人居然说设置radius要卖钱,本人花了几天的功夫,看了些资料,终于成功设置radius服务器,现在贴出来和大家分享。
笔者用的平台是RedHat Linux 7.2
一、安装mysql
本人用的是光盘上的RPM包
rpm –ivh mysql-3.23.41.1.i386.rpm
rpm –ivh mysql-devel-3.23.41.1.i386.rpm
rpm –ivh mysql-server-3.23.41.1.i386.rpm
rpm –ivh mysqlclient9-3.23.22-6.i386.rpm
启动mysql服务
service mysqld start
更改mysql的root密码(注意:mysql的root 和系统的root是2个不用的概念)
mysql –uroot –p
创建radius数据库
creat database radius;
use mysql;
update user set password=password(‘你的密码’) where user=’root’;
允许远程机器连接
update user set host=’%’ where user=’root’;
退出及重新启动mysql
quit
service mysqld restart
二、安装openSSL
本人也是用的光盘上的RPM包
rpm –ivh openssl095a-0.9.5a-11.i386.rpm
rpm –ivh openssl096-0.9.6-6.i386.rpm
三、安装freeradius
从www.freeradius.org上下载freeraidus,本文版本是0.8.1
编译和安装
tar xvfz freeradius.tar.gz
cd xvfz freeradius-0.8.1
./configure
make
make install
建立mysql的数据库raius的表
cd src/modules/rlm_sql/drivers/rlm_sql_mysql
mysql –uroot –p密码 radius < db_mysql.sql
更改freeradius的设置
cd /usr/local/etc/raddb
更改radiusd.conf,让其支持sql (如下面所说)
   authorize {
             preprocess
chap
mschap
suffix
sql
}
    aclearcase/" target="_blank" >ccouting {
….
sql

}
更改sql.conf
    server=”localhost”
login=”root”
password=”mysql的root的密码”
radius_db=”radius”
更改 client.conf支持所用的NAS具体可以看该文档,要注意的是secret是NAS和radius服务器的共享密码
数据库加入测试账号
加入组
mysql –uroot –p密码 radius
insert into radgroupreply (groupname,attribute,op,values) values (‘user’,‘Auth-Type’,’:=’,’Local’);
insert into radgroupreply (groupname,attribute,op,values) values (‘user’,‘Service-Type’,’:=’,’Framed-User’);
insert into radgroupreply (groupname,attribute,op,values) values (‘user’,‘Framed-IP-Address’,’:=’,’255.255.255.254’);
insert into radgroupreply (groupname,attribute,op,values) values (‘user’,‘Framed-IP-Netmask’,’:=’,’255.255.255.0’);
加入测试账号
insert into radcheck (username,attribute,op,value) values (‘test’,’User-Password’,’:=’,’test’)
测试账号加入组
insert into usergroup (username,groupname) values (‘test’,’user’);
四、启动radius服务、测试账号
启动到debug模式
radiusd –X
有时候会报找不到文件rlm_sql_mysql这个时候只要把库文件加入系统搜索的目录里
比如:
cp /usr/local/lib/* /usr/lib
测试账号
radtest test teset localhost 0 testing123
如果能看到radius的应答,恭喜服务器设置成功了。
本人才疏,如果本文有错误,请大家指正,并欢迎一起讨论。
本文作者:余旭东
Email: netwolf@163.com
如要转载,请注明作者和来源

 wind521 回复于:2003-02-27 12:42:49
不错
:)

 zorrozolo 回复于:2003-02-27 12:50:52
you are ok

 unix菜鸟 回复于:2003-02-27 20:20:17
谢谢!

 charlin 回复于:2003-03-01 16:08:50
GOOD!

 lcnyg 回复于:2003-03-27 14:42:44
[quote:372cac3fe2="anetwolf"]架设freeradius+mysql 的radius服务器

......
创建radius数据库 
creat database radius; 
use mysql;
update user set password=password(‘你的密码’) where user=’root’; 
..........[/quote:372cac3fe2]

use mysql;
这个是什么意思?是不是打开一个名为mysql的数据库?

 future00 回复于:2003-04-15 20:06:19
哪为能不能告诉我,在数据库里创建一个组时具体应该用哪里属性,Auth-Type这个属性的值有哪里,都表示哪些意思!
谢谢!

 nflx 回复于:2003-05-03 16:32:44
我也成功安装了,  freeradius+mysql ,
请问如何实现计费?

 coolme 回复于:2003-05-17 17:30:39
请教,小弟想看freeradius的源代码,无奈太麻烦。不知从何下手,请高手指点一二!! 还有,哪里有更多的关于freeradius的中文资料??

 coolme 回复于:2003-05-30 20:24:12
请问那里有对freeradius源代码分析的文章,比如模块结构,流程等。急用,谢谢!!

 lean 回复于:2003-07-04 11:47:34
哈哈说收钱的就是我,去我的网站看吧有很多资料.对了忘了说了我已经开发了正式版的RADIUS管理系统了哈哈.http://mkshop.yeah.net

 cswain 回复于:2003-09-19 11:28:59
use mysql就是打开mysql数据库


写的很好,如果再加上ppp+radius client就更好了,毕竟有点完整了!

 dragonzh 回复于:2004-09-20 19:44:03
如何使用radius客户端程序啊

 我爱臭豆腐 回复于:2004-09-20 21:38:05
什么算是radius 客户端啊? nas吗?

 水若寒 回复于:2005-01-18 22:05:58
很好,最近正在研究!

 coofir 回复于:2005-01-18 23:36:47
Perfect, and UP, UP....

 水若寒 回复于:2005-01-19 13:44:45
[code:1:f6d759f720][root@yf165 raddb]# radtest test test localhost 0 test
Sending Access-Request of id 68 to 127.0.0.1:1812
        User-Name = "test"
        User-Password = "test"
        NAS-IP-Address = yf165
        NAS-Port = 0
Re-sending Access-Request of id 68 to 127.0.0.1:1812
        User-Name = "test"
        User-Password = "<\355Tg'\371~\237\235OD\030\024|\200\377"
        NAS-IP-Address = yf165
        NAS-Port = 0
Re-sending Access-Request of id 68 to 127.0.0.1:1812
        User-Name = "test"
        User-Password = "<\355Tg'\371~\237\235OD\030\024|\200\377"
        NAS-IP-Address = yf165
        NAS-Port = 0
Re-sending Access-Request of id 68 to 127.0.0.1:1812
        User-Name = "test"
        User-Password = "<\355Tg'\371~\237\235OD\030\024|\200\377"
        NAS-IP-Address = yf165
        NAS-Port = 0
Re-sending Access-Request of id 68 to 127.0.0.1:1812
        User-Name = "test"
        User-Password = "<\355Tg'\371~\237\235OD\030\024|\200\377"
        NAS-IP-Address = yf165
        NAS-Port = 0
Re-sending Access-Request of id 68 to 127.0.0.1:1812
        User-Name = "test"
        User-Password = "<\355Tg'\371~\237\235OD\030\024|\200\377"
        NAS-IP-Address = yf165
        NAS-Port = 0
Re-sending Access-Request of id 68 to 127.0.0.1:1812
        User-Name = "test"
        User-Password = "<\355Tg'\371~\237\235OD\030\024|\200\377"
        NAS-IP-Address = yf165
        NAS-Port = 0
Re-sending Access-Request of id 68 to 127.0.0.1:1812
        User-Name = "test"
        User-Password = "<\355Tg'\371~\237\235OD\030\024|\200\377"
        NAS-IP-Address = yf165
        NAS-Port = 0
Re-sending Access-Request of id 68 to 127.0.0.1:1812
        User-Name = "test"
        User-Password = "<\355Tg'\371~\237\235OD\030\024|\200\377"
        NAS-IP-Address = yf165
        NAS-Port = 0
Re-sending Access-Request of id 68 to 127.0.0.1:1812
        User-Name = "test"
        User-Password = "<\355Tg'\371~\237\235OD\030\024|\200\377"
        NAS-IP-Address = yf165
        NAS-Port = 0
radclient: no response from server for ID 68
[root@yf165 raddb]#
[/code:1:f6d759f720]

[color=red:f6d759f720][b:f6d759f720]这样算成功吗?问题出在哪?![/b:f6d759f720][/color:f6d759f720]

 急不通 回复于:2005-02-03 12:02:01
[quote:6f037f2236="水若寒"][/quote:6f037f2236]
呵呵,不算成功。只有发往radius服务的请求包,没有radius服务器的回应。

 wxl9515 回复于:2005-02-18 12:04:53
在线用户表在哪里?

 yi35 回复于:2005-02-18 13:18:53
顶!!~!~!

 sqp1982 回复于:2005-02-18 15:01:41
顶顶顶

 bjldlee 回复于:2005-07-25 11:00:57
我看过一部分FREERADIUS代码,现在想把NAS甩掉,让用户直接与RADIUS SERVER通信,请各位联系我。

 Linuxcn.com 回复于:2005-08-11 15:23:30
[root@linuxcn raddb]# radtest test test localhost 0 testing123
Sending Access-Request of id 122 to 127.0.0.1:1812
        User-Name = "test"
        User-Password = "test"
        NAS-IP-Address = linuxcn
        NAS-Port = 0
Re-sending Access-Request of id 122 to 127.0.0.1:1812
        User-Name = "test"
        User-Password = "\326\021\036\272+P3\201%\024\251\2057\373}\025"
        NAS-IP-Address = linuxcn
        NAS-Port = 0
rad_recv: Access-Reject packet from host 127.0.0.1:1812, id=122, length=20
[root@linuxcn raddb]# 

这样是否算成功了呢?

原文转自:http://www.ltesting.net