概述
之前说了Freeradius与AD结合进行802.1x认证方面的内容。本例则在之前实验配置的基础之上,将Freeradius与mysql、daloradius结合,实现可以通过web方式管理radius服务器,并通过数据库进行用户认证等信息的存储。本例只适合centos7环境下的freeradius3.0.x版本。
环境准备
1. FreeRadius服务器,之前已经配置好的。
2. 组件apache、mariadb(mysql)、daloradius等。
安装配置
1. 安装必要组件
yum install freeradius-mysql freeadius-client freeradius-devel php php-gd php-pear-DB php-mysql httpd mariadb
【在新版的daloradius中需要安装pear-DB后,前端web才能够与后台数据库连同,否则会打不开页面】
- 开启服务
Systemctl enable httpd
Systemctl enable mariadb
Systemctl start httpd
Systemctl start mariadb
2. 配置MySQL
- 初始化配置及建立radius数据库和用户
mysql_secure_installation #mysql初始安全配置
mysql -uroot –p
CREATE DATABASE radius;
GRANT ALL ON radius.* TO ra[email protected] IDENTIFIED BY "radpass"; exit
- 导入radius数据库架构
mysql -uroot –p radius < /etc/raddb/mods-config/sql/main/mysql/schema.sql
3. 配置radius服务器支持mysql
- 加入符号连接开启功能
cd /etc/raddb/mods-enabled/
ln –s ../mods-available/sql ./ #相当于在Freeradius开启sql功能模块
- 确认/etc/raddb/radiusd.conf中以下项目已经包含相应目录配置
modules {
$INCLUDE mods-enabled/
}
Policy {
$INCLUDE site-enabled/
}
l 在/etc/raddb/sites-available/default中的authroize{}、accounting{}、session{}、post-auth{}、Post-Auth-Type REJECT{}中开启sql如下,
l 在/etc/raddb/sites-available/inner-tunnel中的authroize{}、session{}、post-auth{}、中开启sql 如下:
Authorize {
…
sql #如有注释则去掉,如有-,也去掉
…
}
- 编辑/etc/raddb/mods-avaible/sql,更改数据库连接参数
sql {
driver = “rlm_sql_mysql”
server = “localhost”
port = 3306
login = “radius”
password = “radpass”
radius_db = “radius”
}
read_client = yes #允许radius读取数据库里面的nas信息
client_table = “nas” #指定存储nas信息的表
4. 安装配置daloradius
- 下载并解压daloradius
Wget http://downloads.sourceforge.net/project/daloradius/daloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz
Tar zxvf daloradius-0.9-9.tar.gz
mv daloradius-0.9-9 /var/www/html/radius
chown –R apache:apache /var/www/html/radius
- 导入数据库架构
mysql –uroot –p radius < /var/www/html/radius/contrib/db/mysql-daloradius.sql
mysql –uroot –p radius < /var/www/html/radius/contrib/db/fr2-mysql-daloradius-and-freeradius.sql
- 编辑 /var/www/html/radius/library/daloradius.conf.php,配置连接数据库信息
$configValues[‘CONFIG_DB_ENGINE‘] = ‘mysql‘;
$configValues[‘CONFIG_DB_HOST‘] = ‘localhost‘;
$configValues[‘CONFIG_DB_PORT‘] = ‘3306‘;
$configValues[‘CONFIG_DB_USER‘] = ‘radius‘;
$configValues[‘CONFIG_DB_PASS‘] = ‘radpass‘;
$configValues[‘CONFIG_DB_NAME‘] = ‘radius‘;
$configValues[‘CONFIG_FILE_RADIUS_PROXY‘] = ‘/etc/raddb/proxy.conf‘;
$configValues[‘CONFIG_PATH_RADIUS_DICT‘] = ‘‘;
$configValues[‘CONFIG_PATH_DALO_VARIABLE_DATA‘] = ‘/var/www/html/radius/var‘;
5. 测试daloradius
l 登录http://10.10.10.100/radius看是否能正常开发页面。默认的用户为administraor ,密码:radius。正常情况下,登录后能看到home页面
l 测试NAS管理
将/etc/raddb/clients.conf中之前定义的 交换机的项目去掉,在web页面中重新添加一下这个交换机nas,验证windows客户端是否可以正常进行认证。
l 查看验证登录信息
如果有验证结果,则会在数据库中的radpostauth表中显示
mysql –uroot –p radius
>select * from radpostauth;
总结:
本例只是简单的说明了安装过程,实现简单的验证信息查看,daloradius结合radius可以完成很多其他的功能,比如防火墙vpn的认证等,随着本人对dalor的不断理解,会继续给出具体功能的使用方式。