FreeRADIUS - 会话过期时从数据库中删除用户

问题描述 投票:0回答:2

我使用FreeRADIUS和MySQL来验证用户身份。

用户保存在radcheck表中。用户属性保存在radreply表中。

例如,我在radcheck表中有一个名为Bob的用户。

username | attribute           | op | value
------------------------------------------------
Bob      | Cleartext-Password  | := | password12

Bob在radreply表中的Session-Timeout值为60(1分钟)。

username | attribute       | op | value
------------------------------------------------
Bob      | Session-Timeout | := | 60
Bob      | Idle-Timeout    | := | 60

一切正常。我的问题是RADIUS只是立即重新验证Bob。我认为这是因为Bob仍然存在于radcheck表中。

在达到Session-Timeout时间后,有没有办法从radcheck和radreply表中删除Bob?

php mysql database radius freeradius
2个回答
1
投票

您可以使用Freeradius中的Perl / PHP模块在postacctsql中使用Perl / PHP脚本编写自定义登录。 postacctsql将为您提供会话超时的用户,然后您可以编写自定义脚本以从Mysql DB中删除记录。你可以在谷歌上找到很多这样的脚本的例子。


0
投票

这是半径的正确行为。如果bob是auth well,则会话在60秒内超时。如果<= session-timeout,则空闲超时不是必需的。您必须将某些内容计算到已设置的最大值,然后将访问权限从“接受”更改为“拒绝”。下次会话超时达到bob不能reauth

© www.soinside.com 2019 - 2024. All rights reserved.