搭建freeradius+daloradius作为认证服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建freeradius+daloradius作为认证服务器相关的知识,希望对你有一定的参考价值。

1.目的背景

为了满足设备进行3A认证,提高安全性,所以搭建一套radius服务器,并配合daloradius作为前端展示配置。

2.配置内容

2.1.所需系统及组件

操作系统:CentOS 7.0 x86_64 ,带gnome桌面,配置地址为172.31.101.1
数据库:mariadb v5.5.56
httpd:Server version: Apache/2.4.6 (CentOS)
php:?v2.4.0
FreeRADIUS 3.0
所需其他组件
php
php-mysql
php-gd
php-pear-DB
通过yum安装即可。

2.2.参考文档

freeradius安装
http://blog.csdn.net/cluniquecui/article/details/42490423
使用daloRADIUS Web程序管理FreeRADIUS服务
http://wzlinux.blog.51cto.com/8021085/1736744

3.freeredius安装

3.1.安装FreeRADIUS 3.0 服务器程序

yum install freeradius

3.2.安装FreeRADIUS工具包(freeradius-utils)

yum install freeradius-utils

3.3.FreeRADIUS 3.0的测试

3.3.1.修改用户管理配置文件

该文件是/etc/raddb/users,使用vi工具打开,命令如下:
vi /etc/raddb/users
打开文件后,查找 steve Cleartext-Password :="testing" (76-84行), 取消该段内容的注释。

3.3.2.关闭防火墙及selinux

Systemctl stop firewall
Systemctl disable firewall
setenforce 0

3.3.3.以调试方式启动freeradius

radiusd –X

3.3.4.使用测试工具测试

再打开一个新的终端,以root身份登录,执行如下命令:
radtest steve testing localhost 0 testing123
技术分享图片
正常开启radius服务器的如下图所示:
技术分享图片

3.4.MariaDB的安装

默认情况下,CengOS 7.0已经安装了mariadb,版本为5.5.35。如果想安装最新版的Mariadb,装方法与FreeRADIUS类似,执行如下命令,系统会升级到最新版本:
yum intsall mariadb

3.5.FreeRADIUS与MariaDB的对接

3.5.1.安装freeradius-mysql组件

yum install freeradius-mysql

3.5.2.激活和启动mariadb服务

默认情况下,mariadb并没有被激活,使用如下命令激活服务:
systemctl enable mariadb
然后,使用如下命令,启动mariadb:
systemctl start mariadb
使用如下命令,查询mariadb服务的状态:
systemctl status mariadb

3.5.3.创建数据库

命令如下:
mysql -u root –p
要求输入密码时,直接回车即可。

mysql>create database radius;
mysql>grant all on radius.* to [email protected] identified by "radpass"; 
mysql>exit;

3.5.4.导入表结构

命令如下:


mysql -u root radius < /etc/raddb/mods-config/sql/main/mysql/scheama.sql

上面的指令,共导入了7个表,分别是:
radcheck 用户检查信息表
radreply 用户回复信息表
radgroupcheck 用户组检查信息表
radgroupreply 用户组检查信息表
radusergroup 用户和组关系表
radacct 计费情况表
radpostauth 认证后处理信息,可以包括认证请求成功和拒绝的记录。

  1. 建立组信息:(在此新建组名称为user)
    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.255‘); 
    insert into radgroupreply (groupname,attribute,op,value) values (‘user‘,‘Framed-IP-Netmask‘,‘:=‘,‘255.255.255.0‘);
  2. 建立用户信息:(在此新建用户名为test,密码为testpwd)
    insert into radcheck (username,attribute,op,value) values (‘test‘,‘Cleartext-Password‘,‘:=‘,‘testpwd‘);

  3. 将用户加入组中:
    insert into radusergroup (username,groupname) values (‘test‘,‘user‘);

3.5.6.修改 FreeRADIUS中的mysql 认证配置

执行如下命令:

cd /etc/raddb/mods-enabled
ln -s ../mods-available/sql

3.5.7.修改 FreeRADIUS中的mysql 配置文件

该配置文件位于/etc/raddb/mods-available目录,名称为sql
可以通过vi来修改,命令如下:
vi /etc/raddb/mods-available/sql
找到driver = “rlm_sql_null”这一行,修改为driver = “rlm_sql_mysql”。保持并退出。

3.5.8.测试通过数据库做用户认证

  1. 重新以调试方式运行freeradius:
    radiusd -X
  2. 再打开一个新的终端,运行测试工具命令:
    radtest test testpwd localhost 1812 testing123
    完毕。

    4.daloRADIUS部署

    4.1.软件下载

    Wget http://nchc.dl.sourceforge.net/project/daloradius/daloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz
    #解压
    tar xf daloradius-0.9-9.tar.gz 
    cd daloradius-0.9-9
    #查看安装说明
    more INSTALL

    4.2.解决依赖

    在INSTALL中我们可以看到程序的需求,需要满足这些需求,否则不能正常运行。
    Apache 1/2
    PHP 4/5
    PHP GD
    PHP DB Abstraction Layer (may require PHP Pear)
    PHP Mail
    MySQL 4/5
    #安装httpd
    yum install httpd -y
    #安装php及组件
    yum install php php-mysql php-gd -y
    #安装
    yum install php-pear-DB -y
    #转移php文件
    cp -a daloradius-0.9-9 /var/www/html/daloradius

    4.3.导入数据库

    cd /var/www/html/daloradius/contrib/db
    mysql -uradius -pradpass radius < ./mysql-daloradius.sql

    4.4.设置数据库连接

    具体操作我们也是查看INSTALL文档。

    cd /var/www/html/daloradius/library
    vim daloradius.conf.php

    #具体根据自己的参数设定

    $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_PATH_DALO_VARIABLE_DATA‘] = ‘/var/www/html/daloradius/var‘;

4.5. 使用daloRADIUS

具体的主机配置我这里不再介绍,启动Web服务,找一个浏览器输入:http://yourip/daloradius
从INSTALL文档中可以看到,第一次登录的用户是administrator,密码是radius。如果生产环境使用的话一定要修改以下密码,这个用户的信息在表operators里面。
技术分享图片

5.安装中出现的问题及解决方法

在安装freeradius和mariaDB的时候基本上没有问题,但是在安装daloradius的时候,出现了很多问题,问题主要集中在httpd服务器和php配置上。

5.1.登录daloRADIUS提示没有url

首页业务空白,是由于文件存放路径问题造成,一定要放在/var/www/html/下才可。

5.2.登录daloRADIUS出现403 forbbien

提示:“you have no pessmion to access.......”
是由于没有关闭selinux

5.3.登录成功后出现空白页

安装pear和pear db即可解决问题

yum install php-pear
 pear install db

注意,在安装db的时候会提示某个包的安装版本不够,需要使用pear install PEAR更新后可以继续安装DB

5.4.无法读取日志

在日志或其他配置界面,提示没有权限读写文件
/var/www/html/daloradius/library/daloradius.conf.php
需要赋予较高权限,使用如下命令解决
chmod 777 /var/www/html/daloradius/library/daloradius.conf.

5.5.daloradius安装

在daloradius-0.9-9的文件夹中有个”INSTALL”文件,使用文本打开后可以看到大部分安装提示和操作指引。

以上是关于搭建freeradius+daloradius作为认证服务器的主要内容,如果未能解决你的问题,请参考以下文章

Strongswan+freeradius+daloradius+ad认证实现ikev2接入服务二

freeradius+daloradius不显示在线用户,不能查询登陆历史

CentOS 7 FreeRadius + DaloRadius 安装与配置

CentOS PPTP配置LNMP+PPTP+FreeRADIUS+DaloRADIUS+流量控制

Strongswan+freeradius+daloradius+ad认证实现ikev2接入服务一

在Ubuntu 16.04 LTS服务器上安装FreeRADIUS和Daloradius的方法