You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FreeRADIUS 3.0 LDAP不可用时的故障转移配置咨询

解决FreeRADIUS启动时LDAP不可用的 fallback 配置

当然有办法搞定这个问题!我之前帮不少用户处理过类似的FreeRADIUS多数据源容错场景,核心思路就是让服务在LDAP不可用时自动跳过它,只依赖本地users文件完成认证,而不是直接启动失败。下面分几个关键步骤来配置:

1. 调整LDAP模块的容错设置

首先打开LDAP模块的配置文件 /etc/raddb/mods-available/ldap,找到核心配置块,添加或修改以下参数:

ldap {
    server = "你的LDAP服务器地址"
    port = 389
    timeout = 2  # 给LDAP连接设个短超时,避免卡太久
    retries = 1  # 重试1次就放弃
    fail = no    # 关键!连接失败时不终止整个认证流程,直接跳过
    # 保留你原来的其他LDAP配置(比如绑定DN、搜索基这些)
}

这个fail = no是核心,它告诉FreeRADIUS:就算LDAP连不上,也别把整个请求判为失败,继续往下试其他数据源。

2. 修改认证流程的优先级(default和inner-tunnel)

接下来要调整 /etc/raddb/sites-enabled/default 和 /etc/raddb/sites-enabled/inner-tunnel 这两个文件里的认证流程,确保本地users文件(对应files模块)是优先选项,同时把LDAP标记为可选。

以authorize块为例:

把原来的LDAP调用包裹在optional块里,并且让files模块放在前面:

authorize {
    # 先查本地users文件
    files
    # 标记LDAP为可选,失败就跳过
    optional {
        ldap
    }
    # 保留你原来的其他模块(比如pap、mschapv2这些)
}

再修改authenticate块:

如果你的认证流程里用到了LDAP,同样给它加上optional标记:

authenticate {
    # 先尝试本地PAP认证(对应users文件里的账号)
    Auth-Type PAP {
        pap
    }
    # LDAP认证可选,失败不影响服务启动和本地认证
    optional {
        ldap
    }
    # 其他原有配置...
}

3. 测试配置效果

改完之后先别急着重启正式服务,用调试模式验证一下:

radiusd -X

故意让LDAP服务器处于不可用状态,看看FreeRADIUS能不能正常启动,然后用users文件里的账号测试认证,确认能正常通过。如果调试没问题,再重启正式服务:

systemctl restart radiusd

这样配置后,开机时如果LDAP不可用,FreeRADIUS会自动跳过LDAP模块,只用本地users文件提供认证;等LDAP服务器恢复后,服务又会自动回到双数据源的模式,完全不用手动调整。

内容的提问来源于stack exchange,提问作者user436849

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:27:23