CentOS7下FreeRADIUS v3启动失败,配置文件解析错误求助
FreeRADIUS v3在CentOS7启动失败的解决方法
问题分析
从调试命令/usr/sbin/radiusd -X的输出可知,启动失败的核心原因是缺失文件/etc/raddb/mods-config/sql/cui/sqlite/queries.conf——该文件是cui模块依赖的SQLite查询配置文件,因文件不存在导致radiusd解析主配置时出错。
解决方案
根据是否需要使用cui模块(用于Eduroam的Connected User Identifier功能),分两种场景处理:
场景1:不需要cui模块(新手默认场景)
若你不需要Eduroam相关功能,直接禁用cui及关联模块即可:
- 进入模块启用目录,删除相关软链接:
cd /etc/raddb/mods-enabled rm -f cui eduroam_cui_log - 重启radiusd服务:
systemctl start radiusd - 验证服务状态:
systemctl status radiusd
场景2:必须使用cui模块
若需启用CUI功能,需补全缺失的配置文件:
- 安装freeradius-sqlite依赖包(通常包含sqlite相关SQL配置):
yum install -y freeradius-sqlite - 若安装后文件仍缺失,手动创建
/etc/raddb/mods-config/sql/cui/sqlite/queries.conf,填入基础SQL查询配置:# CUI SQLite查询配置 insert_cui = "INSERT INTO cui (username, cui, creation_time, expiration_time, last_use) VALUES ('%{User-Name}', '%{CUI}', datetime('now'), datetime('now', '+%{Expiration} seconds'), datetime('now'))" update_cui_last_use = "UPDATE cui SET last_use = datetime('now') WHERE username = '%{User-Name}' AND cui = '%{CUI}'" select_cui = "SELECT cui, expiration_time FROM cui WHERE username = '%{User-Name}' ORDER BY creation_time DESC LIMIT 1" - 设置正确的文件权限,确保radiusd用户可读取:
chown radiusd:radiusd /etc/raddb/mods-config/sql/cui/sqlite/queries.conf chmod 640 /etc/raddb/mods-config/sql/cui/sqlite/queries.conf - 重启服务并验证:
systemctl start radiusd /usr/sbin/radiusd -X
内容的提问来源于stack exchange,提问作者raiya
相关产品推荐
相关产品推荐

