自由半径 filter_username

FreeRadius filter_username

我需要将过滤器调整到一个半径,以便只允许与包含单词 "test" 的用户名建立连接。

设置区块:

filter_private  {
            if (User-Name =~ /^(?!test).*$/) {
                    update reply {
                            Reply-Message += "Rejected: Username rejected, because not test"
                    }
                    reject
            }
    }

但它绝对允许任何用户名。

基于documentation,我认为你需要否定逻辑:

if (User-Name !~ /^(?!test).*$/) {
    # etc.
}

此外,上面的正则表达式可能(取决于您当地的正则表达式引擎)允许用户名 starting with test(由于 ^)而不是任何用户名包含test。对于后者,您需要将逻辑更改为:

if (User-Name !~ /.*test.*/) {
    # etc.
}