HCRM博客

CentOS搭建Web认证系统指南

在CentOS系统上部署一套完整的Web认证系统,是许多中小型网络管理员或技术爱好者会接触到的实际需求,无论是用于企业内部网络准入、公共Wi-Fi认证,还是实验环境中的访问控制,基于CentOS的解决方案都具备稳定性高、资源占用少、自定义程度强的特点,下面将详细说明一种典型的实现方法。

整个流程主要依赖于FreeRADIUS作为认证授权记账服务器,配合Daloradius这一基于Web的管理界面,实现用户友好操作,我们会使用Apache作为Web服务器,MariaDB作为数据库后端。

CentOS搭建Web认证系统指南-图1

确保系统是最新状态,通过SSH连接到CentOS服务器,执行以下命令更新系统:

yum update -y

接下来安装必要的软件包,包括Apache、PHP、MariaDB服务器及客户端,以及FreeRADIUS和相关模块:

yum install -y httpd php php-mysqlnd php-gd php-curl mariadb-server mariadb freeradius freeradius-utils freeradius-mysql

安装完成后,启动数据库服务和Web服务,并设置为开机自启:

systemctl start mariadb
systemctl enable mariadb
systemctl start httpd
systemctl enable httpd

接着运行MySQL安全安装脚本,设置root密码并移除匿名用户等不安全设置:

mysql_secure_installation

根据提示完成安全配置后,登录MySQL数据库,创建专门用于RADIUS服务的数据库和用户:

mysql -u root -p
CREATE DATABASE radius;
GRANT ALL ON radius.* TO 'radius'@'localhost' IDENTIFIED BY '设置一个强密码';
FLUSH PRIVILEGES;
EXIT;

现在需要导入FreeRADIUS的数据库架构,使用如下命令导入预定义的表结构:

CentOS搭建Web认证系统指南-图2
mysql -u root -p radius < /etc/raddb/mods-config/sql/main/mysql/schema.sql

随后修改FreeRADIUS的SQL模块配置,使其能够连接MySQL数据库,编辑文件 /etc/raddb/mods-available/sql,确保连接信息正确:

sql {
    driver = "rlm_sql_mysql"
    dialect = "mysql"
    server = "localhost"
    port = 3306
    login = "radius"
    password = "刚才设置的密码"
    radius_db = "radius"
}

创建符号链接启用SQL模块:

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

还需编辑 /etc/raddb/sites-available/default/etc/raddb/sites-available/inner-tunnel,在authorize、authenticate、accounting等部分取消sql相关行的注释。

现在处理Daloradius的部署,下载最新版本的Daloradius并解压到Web目录:

wget https://github.com/lirantal/daloradius/archive/refs/heads/master.zip
unzip master.zip -d /var/www/html/
mv /var/www/html/daloradius-master /var/www/html/daloradius

调整目录权限,确保Apache有读写权限:

chown -R apache:apache /var/www/html/daloradius

接着导入Daloradius的数据库架构:

CentOS搭建Web认证系统指南-图3
mysql -u root -p radius < /var/www/html/daloradius/contrib/db/fr2-mysql-daloradius-and-freeradius.sql

编辑Daloradius的配置文件,配置数据库连接信息,文件位于 /var/www/html/daloradius/library/daloradius.conf.php,修改以下变量:

$configValues['CONFIG_DB_HOST'] = 'localhost'; $configValues['CONFIG_DB_USER'] = 'radius'; $configValues['CONFIG_DB_PASS'] = '密码'; $configValues['CONFIG_DB_NAME'] = 'radius';

重启相关服务以使配置生效:

systemctl restart radiusd
systemctl restart httpd

需确保防火墙允许HTTP和RADIUS所需端口,RADIUS通常使用UDP端口1812、1813:

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-port=1812/udp
firewall-cmd --permanent --add-port=1813/udp
firewall-cmd --reload

至此,基本搭建已完成,通过浏览器访问 http://服务器IP/daloradius,使用默认用户名administrator、密码radius登录管理界面,在这里可以添加用户、管理NAS设备、查看在线用户及记账记录。

实际部署中,可能还需根据网络拓扑调整NAS配置,并在网络设备上设置RADIUS服务器指向此CentOS主机,对于生产环境,强烈建议配置SSL加密Web界面,并定期备份数据库。

从实践角度来看,这一方案的优势在于全部采用开源组件,成本可控且灵活性高,但维护时需注意软件更新与安全策略配置,避免因配置疏忽导致的安全风险,技术决策应始终以实际需求为导向,平衡功能性与复杂性。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/40046.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~