FreeRADIUS包含用户文件在某一点后无法正确读取

时间:2017-12-07 17:03:52

标签: freeradius radius

我有一个奇怪的情况。在包含文件中提供用户时,该文件中特定点的所有密码似乎都被“忽略”。

设置:
- 默认配置,最小变化(仅限clients.conf和用户)
- 用户配置文件包括第三个文件($ INCLUDE / etc / raddb / users-pppoe)
- 第三个文件包含所有用户信息

这是我发现自己/事实:
- 用户文件由bash脚本生成 - 配置检查说一切都很好 - 前17个用户工作正常(或:约190行,或:约6800字节/字符)
- 在这些新用户上,radius守护程序给出错误:FAILED:No NT / LM-Password - 这些新用户确实拥有所需的Cleartext-Password选项 - 当我将新用户移动到文件顶部时,它工作正常 - (我的临时解决方案)我将文件分成四个,分别包括它们。 现在一切正常!
- 这个拆分是由生成文件本身的相同bash脚本完成的,所以如果出现任何问题(例如错误的隐藏字符),它也应该在这些新文件中。

当然,我想知道造成这种情况的原因,但主要是,当用户数量增长时,我会遇到麻烦。最后我会有约。 200个用户不会有太大变化,所以运行SQL服务器是相当矫枉过正的。 基本上,这是一个可接受的解决方法,但必须解决这个问题。如果有人有想法,请告诉我。

提前谢谢大家!

/ etc / raddb / users-pppoe(示例条目):

void doWho(void)
{
        char entry[10] = {0};
        int ret, i;

        for(; ;) {
        /** who command will be executed when ever condition is true **/
                ret = read(0, entry, 10);
                __fpurge(stdin);//to clear stdin buffer everytime 
                if (*entry == 'u') {

                        if(fork()==0)//only this newly created process will be replaces by execl not one was in main()
                                execl("/usr/bin/who","who",NULL);
                        else
                                ;// this parents does nothing   
                }
        }
}

radiusd -X

user-00000005   Cleartext-Password := "oHs0sECre7"
                Service-Type = Framed-User,
                Framed-Protocol = PPP,
                Framed-IP-Address = 10.0.0.5,
                Framed-Route = 172.14.5.0/24,
                Framed-Routing = Broadcast-Listen,
                Framed-Filter-Id = "std.ppp",
                Framed-MTU = 1500,
                Rate-Limit = "20M",
                Framed-Compression = Van-Jacobsen-TCP-IP

1 个答案:

答案 0 :(得分:0)

我有类似的问题,经过一些测试,看起来包含的配置文件被“同时”解析为包含的配置文件。

我在包含的文件中有这样的内容:

ONT_TEST Cleartext-Password := "...", Service-Type := Framed-User
    Framed-IP-Address := ...,
    MS-Primary-DNS-Server := 8.8.4.4,
    MS-Secondary-DNS-Server := 8.8.8.8,
    Fall-Through = Yes

在mods-config / files /行240附近授权类似这样的内容:

DEFAULT Framed-Protocol == PPP
    Framed-Protocol = PPP,
    Framed-Compression = Van-Jacobson-TCP-IP

现在奇怪的是: -如果“ ONT_TEST”行(包含文件中的行)在行号240以上,则表示正常, -如果“ ONT_TEST”行在行号240以下(它甚至可能在我之前也可以输入“ Enters”),则FreeRadius会匹配“授权”文件中的“ DEFAULT” -如果将“默认”行下移,则包含的文件可能会更长。

freeradius-3.0.13-9.el7_5.x86_64

我稍后将填写错误报告,现在我有解决方法(不需要“ DEFAULT”行,因此我已将其注释掉了)。