在CentOS系统上部署一套完整的Web认证系统,是许多中小型网络管理员或技术爱好者会接触到的实际需求,无论是用于企业内部网络准入、公共Wi-Fi认证,还是实验环境中的访问控制,基于CentOS的解决方案都具备稳定性高、资源占用少、自定义程度强的特点,下面将详细说明一种典型的实现方法。
整个流程主要依赖于FreeRADIUS作为认证授权记账服务器,配合Daloradius这一基于Web的管理界面,实现用户友好操作,我们会使用Apache作为Web服务器,MariaDB作为数据库后端。

确保系统是最新状态,通过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的数据库架构,使用如下命令导入预定义的表结构:

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的数据库架构:

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