yuanyonghuio 发表于 2006-4-6 19:17:23

架设freeradius服务器[原创]

架设freeradius服务器[原创]
                                                    作者:永恒之星
1.安装好linux red hat9,安装时,把apache和所有相关组件安装好如php模块,

什么gcc编译器之类的全都安装好,等下用得着。mysql服务器不要安装。等下再

装。
2安装Mysql
LinuxRedhat 9.0自带的安装包:
mysql-3.23.54a-11.i386.rpm         
mysql-server-3.23.54a-11.i386.rpm
mysql-devel-3.23.54a-11.i386.rpm
外加一个:mysqlclient9-3.23.22-6.i386.rpm
rpm ?ivh mysql*
启动:
# /etc/init.d/mysqld start
Starting MySQL:                                          
或者是:
# service mysqld start
Starting MySQL:                                          
pstree命令后就可以看见它的进程

|-rpc.statd
|-safe_mysqld---mysqld #节选

进入mysql:#能进入才算启动成功,若失败看下面的错误提示。
# mysql -uroot ?p   #也可以直接输入密码,但是

可见。
Enter password: #密码不可见,本机登陆密码。我试过mysql,密码空。但权限

不大。
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 3.23.54

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
错误提示:
ERROR 1045: Access denied for user: 'root@localhost' (Using password:

YES)
这是输入用户名和密码是格式的问题,注意就是,不行的话试试空密码。
还有就是这个郁闷了我一天的错误:
Can't connect to local MySQL server through socket

'/var/lib/mysql/mysql.sock' (2)
以为是东西没有装上,结果是服务启动的问题,记住一定要确定pstree底下有了

safe_mysqld---mysqld的进程(注意是mysqld),可以试着service mysqld

restart一次。
其他的错误基本上都是启动的顺序问题。其实那个mysql.sock会自己生成。

(建议学习基本的sql语句)
http://www.linuxforum.net/books/mysqlmanual/manual_toc.html(mysql中文

手册)
#创建radius数据库
mysql> create database radius;
mysql> use mysql;
mysql> update user set password=password(‘你的密码’) where user=’

root’;
#更改密码
#允许远程机器连接 ,本机可不做该语句,因为很有可能让自己也不能访问。
update user set host=’%’ where user=’root’;

3、安装openSSL
也是用的光盘上的RPM包 :#免得麻烦全部装上
openssl096-0.9.6-15.i386.rpm   openssl-devel-0.9.7a-2.i386.rpm
openssl096b-0.9.6b-3.i386.rpm    openssl-perl-0.9.7a-2.i386.rpm

4、安装freeradius
从www.freeradius.org上下载freeraidus,本文版本是1.1.0
编译和安装,采用默认路径,以防出错。时间较长差不多二小时左右吧。
tar xvfz freeradius.tar.gz
cd xvfz freeradius-1.1.0
./configure
make
make install

建立mysql的数据库raius的表
cd src/modules/rlm_sql/drivers/rlm_sql_mysql
//这个路径直接输,就是在解压的目录里面的一个sql文件。

mysql ?uroot ?p密码 radius < db_mysql.sql
//将db_mysql.sql文件导入到radius数据库中。

更改freeradius的设置
cd /usr/local/etc/raddb
更改radiusd.conf,让其支持sql (如下面所说)
authorize {
preprocess
chap
mschap
suffix
sql #只需要加填这一项,其它的都有
}
accouting {
….
sql #同上

}
更改sql.conf
server=”localhost”
login=”root”
password=”mysql的root的密码” #在应用时不能更改这个密码,不然mysql都进

不去
radius_db=”radius”
更改 client.conf支持所用的NAS具体可以看该文档,要注意的是secret是NAS和

radius服务器的共享密码

5.数据库加入测试账号
加入组
mysql ?uroot ?p密码 radius
insertintoradgroupreply(GroupName,Attribute,op,Value) values(‘user’,

‘Auth-Type’,’:=’,’Local’);
#注意第一个括号里面的是表中的内容,要对应才可以。可以在mysql下使用以下

命令查看
mysql> use radius;#使用radius数据库;
mysql> show tables;#查看radius数据库的表格;
mysql> describe radgroupreply;#查看该表格选项,即是与括号里对应的东西,

一定要相同
mysql> select * from radgroupreply;#查看该表格内容;
下面一样的操作:
insert into radgroupreply (GroupName,Attribute,op,Value) values (‘user

’,‘Service-Type’,’:=’,’Framed-User’);
insert into radgroupreply (GroupName,Attribute,op,Value) values (‘user

’,‘Framed-IP-Address’,’:=’,’255.255.255.254’);
insert into radgroupreply (GroupName,Attribute,op,Value) values (‘user

’,‘Framed-IP-Netmask’,’:=’,’255.255.255.0’);

//这里大家复制粘贴就行,这是radius数据库的数据表结构就是这样。
加入测试账号
insert into radcheck (UserName,Attribute,op,Value) values (‘test’,’

User-Password’,’:=’,’test’) ;
测试账号加入组
insert into usergroup (UserName,Groupname) values (‘test’,’user’);

//大家也可以用mysql_front数据库管理软件直接把这些数据输入上去,更加直观

,方便,效果是一样的。
四、启动radius服务、测试账号
启动到debug模式
radiusd ?X

调试一定要注意能不能连接上数据库,看到ok表示成功。

有时候会报找不到文件rlm_sql_mysql这个时候只要把库文件加入系统搜索的目录



比如:
方法1cp /usr/local/lib/* /usr/lib
方法2echo /usr/local/freeradius/lib >> /etc/ld.so.conf
//将freeradius/lib库放到/etc/ld.so.conf文件中
方法3直接修改/etc/ld.so.conf
/usr/kerberos/lib
/usr/X11R6/lib
/usr/lib/qt-3.1/lib
/usr/lib/sane
/usr/lib
/usr/local/lib
/usr/local/mysql/lib

debug -x有时会报找不到/tmp/mysql.sock
解决办法:重新启动mysql。


测试账号
radtest test test localhost 0 testing123

看到 Access-Accept 之类的字样就表示OK了。 这时可以正式启动radiusd
这时可以用vpn pppoe测试用户名:test 密码:test 会发现是可以成功的

6.配置diaup_admin

shell> tar xfvz dialup_admin-X.XX.tar.gz
shell> mv dialup_admin /usr/local
shell> ln -s /usr/local/dialup_admin/htdocs /var/www/dialup
配置 httpd.conf文件,使他支持php
LoadModule php4_module libexec/libphp4.so
AddModule mod_php4.c
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
配置dialup_admin/conf/admin.conf
sql_server: localhost
sql_port: 3306
sql_username: radius
sql_password: XXXXX

7.启动www服务器。
然后,输入网址http://127.0.0.1/dialup打开管理页面.
好了,现在基本上差不多了.界面是英文的.
更多的资料大家可以参考http://www.freeradius.org/
谢谢大家的支持.

zhang6196 发表于 2006-4-6 23:06:25

很好,很详细!
想问一下,如果在FREERADIUS下,要对帐号分别限速,该怎么设

xgamebmx 发表于 2006-4-7 11:07:41

好深的学问。。。还没学到这里。

younger 发表于 2006-4-7 17:04:04

好贴。回头试试。

wendyzh 发表于 2006-4-8 09:10:41

不知道楼主是原创还是查询的资料。我第一次想配freeradius的时候就是这样的资料。

还有各位如果想了解限速等问题,最好多看看ros的手册,有radius dict,各种属性,自己可以在数据库中添加。

当然还是应该了解radius server的原理,了解各表的意义

yuanyonghuio 发表于 2006-4-8 17:28:04

我花了整整三天时间研究出来的碰到很多问题自己解决。
向配置diaup_admin管理页面我就参考了freeradius的说明文档去www.freeradius.org查找资料怎么安装的
当然有一部分上网查了资料但并不合适
这个是我自己的心得
大家按照这样做,
就一定可以成功
可以少走很多弯路
向那些变量都都是按默认的设置好了
跟网上的不同
如果按照网上的来做
嘿嘿
不信试了就知道。
希望大家一起交流
开发出一个好用有freeradius

wendyzh ,兄弟我很想用一下你的那个程序
可些现在还没有出来
说实话当初想搞freeradius,还是看到你的贴子还去搞的
哪知道没有那么容易吃了不少苦头
天天看着显示器
天天想着怎么解决问题。
人也瘦了一大圈了。
没办法为了学习
努力吧

[ 本帖最后由 yuanyonghuio 于 2006-4-8 17:31 编辑 ]

younger 发表于 2006-4-9 16:01:44

回复 #1 yuanyonghuio 的帖子

# ./configure
loading cache ./config.cache
checking for gcc... no
checking for cc... no
configure: error: no acceptable cc found in $PATH
我安装时出现上面的错误,是什么意思?

yuanyonghuio 发表于 2006-4-9 16:29:17

checking for gcc... no
看到我第一章写的吗
检查gcc编译器没有
就是说你没有安装gcc编译器所以安装不了
把光盘上所有gcc开头的rpm文件全部装上就ok了

zbhdpx 发表于 2006-4-9 20:41:47

回复 #8 yuanyonghuio 的帖子

是的,安装freeradius是吃了不少苦头,到现在都还同有搞过去,楼上的,你的QQ号是多,想请教几个问题!!!

zbhdpx 发表于 2006-4-10 13:02:19

楼主,我在装mysql的时候,提示没有libmysqlclient.so.10,但是,装的是mysqlclient9,只有名为:libmysqlclient.so.9的文件,你是怎么解决了啊?

younger 发表于 2006-4-10 13:27:40

回复 #8 yuanyonghuio 的帖子

谢谢楼主,我是第一次接触LINUX的,所以不知道什么CC、GCC之类的。我回去试试。

xfyg 发表于 2006-4-10 15:51:44

楼主,我安装好MYSQL后按照你的说明创建了数据库.
mysql> create database radius;
mysql> use mysql;
mysql> update user set password=password(‘你的密码’) where user='root';
安装完freeradius后运行
mysql ?uroot ?p密码 radius < db_mysql.sql
出现:bash: db_mysql.sql: No such file or directory
是怎么回事?
直接\运行mysql ?uroot ?p密码 radius
显示:ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
可我的密码是对的啊,请你帮帮忙!

xfyg 发表于 2006-4-10 15:53:48

还有如果是我建立的数据库错了要怎么删除?

yuanyonghuio 发表于 2006-4-10 16:26:11

最好用mysql front这个软件来做超简单
还不会错点两下鼠标搞定
看图

xfyg 发表于 2006-4-10 16:32:49

你这是winduws下的,我问得是liunx下的.
页: [1] 2 3
查看完整版本: 架设freeradius服务器[原创]