我正在使用FreeRADIUS和MySQL来验证用户身份。
用户保存在 radcheck 表中。用户属性保存在 radreply 表中。
例如,我在 radcheck 表中有一个名为Bob的用户。
username | attribute | op | value
------------------------------------------------
Bob | Cleartext-Password | := | password12
Bob在 radreply 表中的会话超时值为60(1分钟)。
username | attribute | op | value
------------------------------------------------
Bob | Session-Timeout | := | 60
Bob | Idle-Timeout | := | 60
一切正常。我的问题是RADIUS只是立即重新验证Bob。我认为这是因为Bob仍然存在于 radcheck 表中。
在达到会话超时时间之后,有没有办法从 radcheck 和 radreply 表中移除Bob?
答案 0 :(得分:1)
您可以使用Freeradius中的Perl / PHP模块在 postacctsql 中使用Perl / PHP脚本编写自定义登录。 postacctsql 将为您提供会话超时的用户,然后您可以编写自定义脚本以从Mysql DB中删除记录。你可以在谷歌上找到很多这样的脚本的例子。
答案 1 :(得分:0)
这是半径的正确行为。如果bob认证正确,则会话将在60秒后超时。如果<=会话超时,则不需要空闲超时。您必须对设置的最大数量进行计数,然后将访问权限从接受更改为拒绝。下次会话超时时间到达bob无法重新认证