首页 > 解决方案 > FreeRadius filter_username

问题描述

我需要将过滤器调整为半径,以便仅允许使用包含“test”一词的用户名进行连接。

设置块:

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

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

标签: freeradiusradius

解决方案


根据文档,我认为您需要否定逻辑:

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

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

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

推荐阅读