我成功设法部署了freeradius服务器,并创build了一个python脚本,对用户进行了额外的检查(传入请求)。 我检查了互联网(资源freeradius是非常可怕的),只发现了一个线程,解释了一些基本的关于添加一个python脚本的过程。
现在我已经在authorize部分下的/ etc / freeradius / sites-enabled / default里面:
update control { Auth-Type := `/usr/bin/python /etc/test.py '%{User-Name}' '%{User-Password}'` }
我的test.py文件吐出Reject或Accept 。 我也有freeradius sql身份validation设置和问题是,如果我的脚本返回Accept任何其他授权请求下被忽略; 响应仍然是一个Accept即使sql检查拒绝用户。
从我理解我应该通过一个noop而不是Accept以允许freeradius继续,只有通过Reject如果我需要拒绝用户,但如果我回应noop服务器抱怨。
有任何想法吗? 也许我需要将我的代码添加到Authentication. 部分? 怎么样?
…如果我的脚本返回接受任何其他授权请求被忽略
是。 这是devise。 您正在告诉FreeRADIUS接受该用户。 它不会打扰你的授权部分的其他任何东西。 我相信你是正确的,你希望你的脚本返回一个noop而不是一个Accept如果你想要与其他授权方法一起使用。
如果您还没有和rlm_python联机帮助页一样,则应该查看unlang联机帮助页。 还要阅读configuration文件中的所有注释。
你还没有指定你想让FreeRADIUS在概念级别做什么,所以我不确定如何进一步给你提供build议。 然而,我在FreeRADIUS-Users邮件列表中已经有了非常好的结果。 这是开发商和许多人对FreeRADIUS有深入的了解和能力的经常光顾。 我会在发布之前阅读他们的常见问题解答(不常被禁止的用户),在广泛的概念层面和实施层面描述您想要做的事情(如您在此处所做的),并确保您提交整个debugging输出。
我build议你去邮件列表的原因是我怀疑有一个更好的方法来实现你的目标,但我不熟悉rlm_pythonbuild议的方式。 无论如何,使用unlang规则调用python脚本似乎是不正确的…