http://liujianjie688.blog.163.com/blog/static/1683434312011
41635951666/
Linux+FreeRadius+MySql 安装过程
2011-05-16 15:59:51| 分类: 默认分类 |字号大中小 订阅
一、 基本环境
所用平台 RedHat5.0
安装时需要把下面的软件装上,
C devel
C++ devel 扩展包:
OpenSSL
mysql
mysql-server
mysql-devel
mysql-client
如果想用到 web 界面管理,还需要安装
Apache
php
php-mysql
mod-auth-mysql
如果安装系统的时候没有安装则需要安装,我用的是光盘上
的 RPM 包
rpm -ivh mysql-3.23.54a-11.i386.rpm
rpm -ivh mysql-devel-3.23.54a-11.i386.rpm
rpm -ivh mysql-server-3.23.54a-11.i386.rpm
需要说明的是 mysql-devel 这个包是必须得装的,很多由 rp
m 包安装的 mysql 默认是没有这个包的,如果没有这个包最
后 Radius 是启动不了的。
FreeRadius 需要 openssl 支持,安装 openssl
rpm -ivh openssl096b-0.9.6b-3.i386.rpm
rpm -ivh openssl096-0.9.6-15.i386.rpm
二、安装 FreeRadius
下面安装 freeradius
我用的版本是 freeradius-1.1.8
下载或者拷贝 freeradius-1.1.8.tar.gz 软件包到 /root 目录
cd /root
tar zxvf freeradius-1.1.8.tar.gz
cd freeradius-1.1.8.
./configure
make
注意事项:可能会出现错误,故需安装:
Yum –y install
libtool-ltdl-devel
make install
更改 freeradius 的设置
cd /usr/local/etc/raddb
更改 radiusd.conf,让其支持 sql (如下,主要是将 autho
rize {}和 accouting {}里面的 sql 前面的#号去掉)
authorize {
preprocess
chap
mschap
suffix
sql
}
accounting {
….
sql
…
}
更改 sql.conf
server="localhost"
login="root"
password="123456 "
// mysql 的 root 的密码
radius_db="radius"
将 users 中的下面两行注释掉:
DEFAULT Auth-Type = System
Fall-Through = 1
三、MySQL 配置
启动 mysql 服务
service mysqld start
更改 mysql 的 root 密码
mysqladmin –uroot –p password 123456 (123456是修改后
的密码)
创建 radius 数据库
mysqladmin –uroot –p123456 create radius
建立 mysql 的数据库 raius 的表
mysql -uroot –p123456 radius < /root/freeradius-1.1.2/doc/e
xamples/mysql.sql
在数据库中加入组和测试账号:
加入组
cd /usr/local/mysql
bin/mysql –uroot –p 密码 radius
insert into radgroupreply (groupname,attribute,op,value) val
ues ('user','Auth-Type',':=','Local');
insert into radgroupreply (groupname,attribute,op,value) val
ues ('user','Service-Type',':=','Framed-User');
insert into radgroupreply (groupname,attribute,op,value) val
ues ('user','Framed-IP-Address',':=','255.255.255.254');
insert into radgroupreply (groupname,attribute,op,value) val
ues ('user','Framed-IP-Netmask',':=','255.255.255.0');
加入测试账号
insert into radcheck (username,attribute,op,value) values ('t
est','User-Password',':=','test');
测试账号加入组
insert into usergroup (username,groupname) values ('test','
user');
四、启动 radius 服务、测试账号
启动到 debug 模式
radiusd –X
有时候会报找不到文件 rlm_sql_mysql 这个时候只要把库文件
加入系统搜索的目录里 命令: cp /usr/local/lib/*
/usr/lib
如果这样还不行,则检查下 mysql-devel-包是否安装,如果没
有安装则需要重新安装并重新编译 freeradius,一般如果
mysql-devel-包安装了而且把库文件加入到了系统搜索的目录
是可以成功的。
测试账号
radtest test test localhost 0 testing123
如果能看到 radius 的应答,恭喜服务器设置成功了。
五、WEB 管理的安装与配置
服务器搭建成功后如果需要 web 管理,freeradius 自带了一个
web 管理程序 dialup_admin。
首先测试 Apache 与 PHP 安装的正确性。Apache 的 WEB 目录在
/var/www/html 下首先测试 Apache,在浏览器输入
Http://127.0.0.1下看到 Apache 界面表示正常。
编辑一个 PHP 测试文件,内容为 ,保存为 phpinfo.php。在浏
览器输入 Http://127.0.0.1/phpinfo.php 看到 php 相关信息页
面,表示 php 运作正常。
直接将/usr/local/src/freeradius-1.1.0/dialup_admin/文件
夹全部拷贝到 Apache 网页目录下/var/www/html 下。
修改 dialup_admin/conf/下的 admin.conf 文件中的如下参数:
sql_type:mysql
sql_server:localhost
//sql 地址
sql_port:3306
//默认端口
sql_username:root
sql_password:123456
sql_database:radius
//密码
//数据库名
general_charset: UTF-8
//避免浏览器乱码
general_base_dir: /var/www/html/dialup_admin
//dialup_admin 主目录
general_domain: company.com
//这个可改也可不改,没什
么影响,改了还看点而已
general_radius_server_auth_proto: chap
//将 pap 改成
chap
general_encryption_method: clear
//将 crypt 改成
clear
说 明一下,general_encryption_method: clear 是必须得改的,
否则用 web 管理界面添加用户后会出现密码被加密后无法识别
导致认证失败,clear 方式是以明文存储密 码,freeradius 默
认是用明文存储密码,两者要对应,所以这里要用 clear 方式。
修改 dialup_admin/conf/下的 naslist.conf 文件如下
nas1_name: nas1.%{general_domain}
nas1_model: Computer
//NAS 服务器的类型
nas1_ip: 192.168.1.1
//NAS 服务器的 IP 地
址
nas1_port_num: 15
nas1_community: public
其他的通通删掉或用#号注释掉,这样修改的目的是方便在 web
管理界面中直观的看到每个 NAS 服务器连接用户的情况。
导入相关数据库表
cd /var/www/html/dialup_admin/sql
mysql -uroot –p123456 radius < userinfo.sql
mysql -uroot –p123456 radius < totacct.sql
mysql -uroot –p123456 radius < mtotacct.sql
mysql -uroot –p123456 radius < badusers.sql
dialup_admin 用的是 php3格式的文件,需要 web 服务器支持这
种格式,
修改/etc/httpd/conf/httpd.conf 文件,在此文件最后添加
AddType application/x-httpd-php .php .html .htm .php3
保存后重启 httpd 服务
service httpd restart
访问:http://localhost/dialup_admin/htdocs/index.html
能正常打开各页面就 ok 了。默认是打开的 sql 调试模式。可以
在 admin.conf 中找到 sql_debug.把 true 改为 false 即可关闭。