一、安装FreeRADIUS
1、先安装openssl、mysql
安装mysql过程中一般会提示输入mysql的root密码,若没有的话,则在终端运行mysql
-p,然后执行命令更改密码:
set password for
root@localhost=password('yourpassword');
2、安装freeradius server
前往http://freeradius.org/下载最新的freeradius,当前最新版本是2.2.0,地址:ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.2.0.tar.gz
下载后解压缩,进入解压缩后的目录:
./configure
make
make install
安装完后,可以使用命令
radiusd -X
进入radiusd服务器的调试模式,如果能进入则安装成功。
安装成功后freeradius的配置文件的路径是:/usr/local/etc/raddb/
日志文件的路径是:/usr/local/var/log
若是通过软件源使用RPM包安装,其配置文件路径也可能是:/etc/raddb/。
若为此路径,下文所涉及配置文件都改为此路径下的相应文件。
一般以上过程不会出问题,主要的问题在于配置。
3、配置过程
(1)建立数据库
进入mysql后,执行:
写道
create database radius;
来创建名为radius的数据库
exit退出数据库。
再进入/usr/local/etc/raddb/sql/mysql下导入和建立表结构
mysql -u root -p radius <
/usr/local/etc/raddb/sql/mysql/schema.sql
mysql -u root -p radius <
/usr/local/etc/raddb/sql/mysql/nas.sql
(注 意,2.1.12版本的数据库文件是scheme.sql ,这跟其他版本不同,1.1.7版本之前的数据库文件是mysql.sql
,或者rlm_mysql.sql,而且存放路径不同,2.x以上的版本是放在/usr/local/etc/raddb/sql/mysql里面)
导入完成后,可以在用命令
use radius;
show tables;
可以看到如下的表结构
+------------------+
|
Tables_in_radius |
+------------------+
|
radacct |
|
radcheck |
|
radgroupcheck |
|
radgroupreply |
|
radpostauth |
|
radreply |
|
radusergroup |
+------------------+
MySQL中表结构的定义
针对FreeRadius2,数据表的设计和结构定义在下面的文件中:
/etc/raddb/sql/mysql/schema.sql 主数据库定义,7个表,包括
radcheck 用户检查信息表
radreply 用户回复信息表
radgroupcheck 用户组检查信息表
radgroupreply 用户组检查信息表
radusergroup 用户和组关系表
radacct 计费情况表
radpostauth 认证后处理信息,可以包括认证请求成功和拒绝的记录。
/etc/raddb/sql/mysql/nas.sql 网络设备定义,只有一个表:
nas 网络设备表
下面的表用于一些扩展功能,可以按需导入。
ippool.sql ip池
wimax.sql wimax设备支持
cui.sql cui 支持
详细的表定义参见: http://wiki.freeradius.org/MySQL_DDL_script
(2)修改配置文件
修改usr/local/etc/raddb/site_enabled下的defoult文件(2.1.1与1.1.7不同,radius.conf被
分成了几个部分,authorize 被放在了defoult文件下,请注意),把authorize{} 、accounting
{}中的sql前面的#去掉,并把authorize{} 中的files前加#;文件部分如下:
authorize {
chap
mschap
suffix
eap
#files
sql
pap
}
accounting {
detail
unix
radutmp
sql
}
修改与mysql数据库连接的配置文件/usr/local/etc/raddb/sql.conf,
写道
server = "localhost"
login = "root"
password = "数据库root的登陆密码"
radius_db = "radius" //radius为数据库名
修改客户端信息配置文件:/usr/local/etc/raddb/clients.conf
写道
client 127.0.0.1 {
secret = testing123
shortname = localhost
nastype = other
}
client 192.168.1.5 {
secret = testing123
shortname = radiusclient
nastype = other
}
127.0.0.1是本机,可以测试用用,其默认配置文件中已存在localhost项,可直接修改,若新添加127.0.0.1项,必须将默认的localhost注释掉,否则服务器启动报错有重复NAS项;192.168.1.5是认证用的radius
client的ip,如无线AP等。
修改radius的配置文件,在目录/usr/local/etc/raddb/radiusd.conf中一定要取消这一行的注释:
$INCLUDE sql.conf
否则在radiusd -X总会报错加载模块
Failed to load module "sql".
同理,要是在debug时出现load
module的任何相关错误,都要取消radiusd.conf中的那一行module的注释,否则不会加载。
(3)在数据库中加入测试帐号
mysql> use radius;
建立组信息:(这些命令不用做任何修改,直接ctrl+c→ctrl+v就好了)
mysql> insert into radgroupreply
(groupname,attribute,op,value) values
('user','Auth-Type',':=','Local');
mysql> insert into radgroupreply
(groupname,attribute,op,value) values
('user','Service-Type',':=','Framed-User');
mysql> insert into radgroupreply
(groupname,attribute,op,value) values
('user','Framed-IP-Address',':=','255.255.255.255');
mysql> insert into radgroupreply
(groupname,attribute,op,value) values
('user','Framed-IP-Netmask',':=','255.255.255.0');
建立用户信息:
mysql> insert into radcheck (username,attribute,op,value)
values
('test','User-Password',':=','test');
将用户加入组中:
mysql> insert into radusergroup (username,groupname) values
('test','user');
mysql>exit;退出数据库
以上命令已添加了一个user组和一个用户,用户名密码都是“test”
若希望一个账号只允许一个用户登陆,需添加下行,不添加则一个账号可以多个用户同时登陆:
mysql> INSERT INTO radgroupcheck (groupname,attribute,op,VALUE)
VALUES
('user','Simultaneous-Use',':=','1');
4、 测试radius
终端运行radiusd -X,开启radius服务器
重新开一个shell终端来执行下面的命令
radtest test test localhost 0 testing123
若显示如下信息,则说明radius server安装与基本配置正常
Sending Access-Request of id 222 to 127.0.0.1 port 1812
User-Name = "test"
User-Password = "test"
NAS-IP-Address = 127.0.0.1
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812,
id=222, length=38
Service-Type = Framed-User
Framed-IP-Address = 255.255.255.255
Framed-IP-Netmask = 255.255.255.0
5、排错
如果接收到类似于这样的信息:rad_recv: Access-Reject packet from host 127.0.0.1
port 1812, id=222, length=38。
可以到/usr/local/var/log去查看freeradius的日志。
二、daloRadius的安装配置
前往http://sourceforge.net/projects/daloradius/下载最新的daloradius,当前最新版本是0.9.9。
下载后解压至web主目录下,按照INSTALL文件的说明信息安装配置。
要注意的是与freeradius配合安装,导入的是不同的数据包。
配置时修改数据库连接信息的文件是/library/daloradius.conf.php,填写正确的数据库名称、用户名和密码。当前版本的INSTALL文件所写配置文件为daloradius.conf,大概是由于没有及时更新,是不正确的。
访问index.php,出现登录页面。若登录后出错或者什么也不显示,则可能是PEAR及PEAR-DB没装。
若是权限错误提示Permession
Denied,则可能是由于SELINUX模块安全机制不允许apache访问其他用户目录,将相应目录所有者更改为apache运行时所使用的用户和组,一般为都是apache,命令:
chown apache:apache -R
出现错误及时查看/var/log/httpd/error_log。