在CentOS 8/RHEL 8上安装FreeRADIUS和Daloradius

时间:2020-02-23 14:31:10  来源:igfitidea点击:

我想在CentOS 8/RHEL 8上安装FreeRADIUS和Daloradius吗?
RADIUS代表"远程身份验证拨入用户服务",是一种用于远程用户身份验证和记帐的网络协议。
提供AAA服务;即授权,认证和计费。

FreeRADIUS是一款开源,高性能,可扩展,模块化且功能丰富的RADIUS服务器。
FreeRADIUS支持请求代理,故障转移和负载平衡,以及对各种数据库后端的访问。

FreeRADIUS的主要功能

通过多种选择用户配置的方法进行灵活配置完全支持RFC 2865和RFC 2866属性带有EAP-MD5,EAP-SIM,EAP-TLS,EAP-TTLS,EAP-PEAP和Cisco LEAP EAP子协议的EAP -typesVendor特定于几乎一百个供应商的属性,包括BinTec,Foundry,Cisco,Juniper,Lucent/Ascend,HP ProCurve,Microsoft,USR/3Com,Acc/Newbridge等。

将daloRADIUS纳入混合

daloRADIUS是用PHP和JavaScript编写的高级RADIUS Web管理平台。
它主要用于管理由FreeRADIUS服务器支持的热点和通用ISP部署。
以下是daloRADIUS的主要功能:

数据库抽象层,支持许多数据库系统-MySQL,SQLite,PostgreSQL,MsSQL和Oracle高级用户管理强大的图形报告和记帐功能与GoogleMaps集成以实现地理位置具有计费引擎遵循讨论的后续步骤在CentOS 8/RHEL 8 Linux上安装FreeRADIUS和daloRADIUS系统。

步骤1:更新服务器

永远不要相信未更新的系统。
通过在终端中执行以下命令,可以更新所有已安装的软件包。

sudo dnf -y update

步骤2:安装Apache Web Server和PHP

我们将使用Apache httpd服务器在CentOS 8/RHEL 8系统上托管daloRADIUS。
使用以下命令安装httpd和PHP软件包。

sudo dnf -y install @httpd @php
sudo dnf -y install php-{cli,curl,mysqlnd,devel,gd,pear,mbstring,xml,pear}
sudo pear install MDB2

检查已安装的PHP版本,以确认安装成功。

$php -v
PHP 7.2.11 (cli) (built: Oct  9 2016 15:09:36) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2016 Zend Technologies

启动并启用php-fpm和httpd服务。

sudo systemctl enable --now httpd php-fpm

让我们通过检查两项服务的状态来验证开始时间。

systemctl status httpd php-fpm

请参阅下面的示例输出。

在防火墙上允许http和https端口。

sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload

参考:在RHEL/CentOS 8上安装Apache httpd服务器

步骤3:安装和配置MariaDB数据库服务器

我们在RHEL/CentOS 8上有单独的MariaDB数据库服务器安装指南。
请在下面的链接中进行参考。
在CentOS/RHEL 8上安装MariaDB数据库服务器。
安装后,以root用户访问mysql控制台并为FreeRADIUS创建数据库/用户。
/daloRADIUS。

$ mysql -u root -p
CREATE DATABASE radius;
GRANT ALL ON radius.* TO Hyman@theitroad IDENTIFIED BY "StrongradIusPass";
FLUSH PRIVILEGES;
\q

步骤4:在CentOS 8/RHEL 8上安装FreeRADIUS

FreeRADIUS软件包在模块化系统信息库中可用。

$sudo dnf module list freeradius
Last metadata expiration check: 0:04:00 ago on Thu 10 Oct 2019 05:08:54 PM EAT.
CentOS-8 - AppStream
Name                      Stream                 Profiles                 Summary                                                                  
freeradius                3.0 [d]                server [d]               High-performance and highly configurable free RADIUS server              
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

要安装,只需运行命令。

sudo dnf install -y @freeradius freeradius-utils freeradius-mysql

安装后启动服务。

sudo systemctl enable --now radiusd.service

现在我们可以检查状态:

$systemctl status radiusd.service
● radiusd.service - FreeRADIUS high performance RADIUS server.
   Loaded: loaded (/usr/lib/systemd/system/radiusd.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2019-10-10 18:07:47 EAT; 1min 8s ago
  Process: 10607 ExecStart=/usr/sbin/radiusd -d /etc/raddb (code=exited, status=0/SUCCESS)
  Process: 10603 ExecStartPre=/usr/sbin/radiusd -C (code=exited, status=0/SUCCESS)
  Process: 10602 ExecStartPre=/bin/chown -R radiusd.radiusd /var/run/radiusd (code=exited, status=0/SUCCESS)
 Main PID: 10609 (radiusd)
    Tasks: 6 (limit: 11512)
   Memory: 9.3M
   CGroup: /system.slice/radiusd.service
           └─10609 /usr/sbin/radiusd -d /etc/raddb
Oct 10 18:07:47 centos8.novalocal systemd[1]: Starting FreeRADIUS high performance RADIUS server....
Oct 10 18:07:47 centos8.novalocal systemd[1]: Started FreeRADIUS high performance RADIUS server..

如果我们正在运行防火墙服务,请允许半径和HTTP流量进出。
Radius服务器使用udp端口1812和1813.

sudo firewall-cmd --add-service=radius --permanent
sudo firewall-cmd --reload

步骤5:在CentOS 8/RHEL 8上配置FreeRADIUS

要将FreeRADIUS配置为使用MariaDB,请执行以下步骤。
1–导入Radius数据库方案以填充半径数据库

sudo su 
mysql -u root -p radius < /etc/raddb/mods-config/sql/main/mysql/schema.sql

2 –配置RadiusFirst,我们必须在/etc/raddb/mods-enabled下为SQL创建一个软链接

sudo ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/

配置SQL模块/raddb/mods-available/sql并更改数据库连接参数以适合环境:

sudo vi /etc/raddb/mods-available/sql

sql部分应类似于以下内容。

sql {
driver = "rlm_sql_mysql"
dialect = "mysql"
# Connection info:
server = "localhost"
port = 3306
login = "radius"
password = "StrongradIusPass"
# Database table configuration for everything except Oracle
radius_db = "radius"
}
# Set to ‘yes’ to read radius clients from the database (‘nas’ table)
# Clients will ONLY be read on server startup.
read_clients = yes
# Table to keep radius client info
client_table = "nas"

然后将/etc/raddb/mods-enabled/sql的组权限更改为radiusd:

sudo chgrp -h radiusd /etc/raddb/mods-enabled/sql

重新启动半径服务

sudo systemctl restart radiusd

步骤6:在CentOS 8上安装和配置Daloradius(可选)

我们可以使用Daloradius从Web界面管理Radius服务器。
这是一个可选配置,我们可以根据用例进行选择。
从Github下载daloradius发布档案。

sudo dnf -y install wget
wget https://github.com/lirantal/daloradius/archive/master.zip
unzip master.zip
mv daloradius-master/daloradius

更改目录进行配置

cd daloradius

导入Daloradius mysql表

mysql -u root -p radius < contrib/db/fr2-mysql-daloradius-and-freeradius.sql 
mysql -u root -p radius < contrib/db/mysql-daloradius.sql

将daloradius文件夹移至/var/www/html中的路径

cd ..
sudo mv daloradius /var/www/html/

然后更改http文件夹的权限,并为daloradius配置文件设置正确的权限。

sudo chown -R apache:apache /var/www/html/daloradius/
sudo chmod 664 /var/www/html/daloradius/library/daloradius.conf.php

现在,我们应该修改daloradius.conf.php文件以调整MySQL数据库信息。

sudo vi /var/www/html/daloradius/library/daloradius.conf.php

设置用于连接的数据库名称,用户和密码。

$configValues['CONFIG_DB_HOST'] = 'localhost';
$configValues['CONFIG_DB_PORT'] = '3306';
$configValues['CONFIG_DB_USER'] = 'radius';
$configValues['CONFIG_DB_PASS'] = 'StrongradIusPass';
$configValues['CONFIG_DB_NAME'] = 'radius';

为确保一切正常,请重新启动radius和httpd服务。

sudo systemctl restart radiusd.service httpd
systemctl status radiusd.service httpd

服务状态输出应该没有错误:

配置SELinux –重新标记目录以允许apache用户访问。

sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/daloradius(/.*)?"
sudo restorecon -Rv /var/www/html/daloradius

步骤7:访问daloRADIUS Web界面

可在http://server_ip_or_hostname/daloradius上访问daloRADIUS管理Web界面。

默认的登录详细信息是:

Username: administrator
Password: radius

这就是daloRADIUS接口的外观。