Linux+FreeRadius+MySql安装过程
一、基本环境
所用平台 RedHat9.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这个包是必须得装的,很多由rpm包安装的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.0
下载或者拷贝freeradius-1.1.0.tar.gz软件包到 /root目录
cd /root
tar zxvf freeradius-1.1.0.tar.gz
cd freeradius-1.1.0.
./configure
make
make install
更改freeradius的设置
cd /usr/local/etc/raddb
更改radiusd.conf,让其支持sql (如下,主要是将authorize {} 和accouting {}里面的sql前面的#号去掉)
authorize {
preprocess
chap
mschap
suffix
sql
}
accouting {
….
sql
…
}
更改sql.conf
server=”localhost”
login=”root”
password=”123456 “ // mysql的root的密码
radius_db=”radius”
三、MySQL配置
启动mysql服务
service mysqld start
更改mysql的root密码
mysqladmin –uroot –p password 123456 (123456是修改后的密码)
创建radius数据库
mysqladmin –uroot –p123456 create radiusd
建立mysql的数据库raius的表
cd /root/freeradius-1.1.0/src/modules/rlm_sql/drivers/rlm_sql_mysql
mysql -uroot –p123456 radius < db_mysql.sql(123456是root密码,下同)
数据库加入测试账号
加入组
mysql -uroot –p123456 radius
insert into radgroupreply (groupname,attribute,op,value) values (‘user’,'Auth-Type’,':=’,'Local’);
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′);
加入测试账号
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
如果这样还不行,则检查下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_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即可关闭。
至此,整个Radius服务器搭建完成。
如果要对其他NAS服务器提供验证服务,只需修改/usr/local/etc/raddb下的clients.conf文件,在后面加上
client 192.168.1.1 { //IP地址修改为NAS服务器的地址
secret = testing123 //NAS服务器与Radius服务器通信的密码
shortname = NAS //这个无所谓,随便填
nastype = other
}
更改 client.conf支持所用的NAS具体可以看该文档,注意的是secret是NAS和radius服务器的共享密码。