如何在达到月度配额后使用sqlcounter断开用户连接?

时间:2017-12-29 21:36:13

标签: freeradius

我是Freeradius的新手。我的NAS是StrongSwan,似乎是supporting CoA。 我也启用了sql accounting mod,这允许我计算八位字节。

有许多教程介绍如何计算用户的会话时间,并在时间结束后执行会话超时操作。但几乎没有什么我能找到解释如何计算用户的数据使用情况并在说出100 KB的每月使用量后断开他的连接。

vim / etc / freeradius / mods-enabled / sqlcounter

sqlcounter totaldatacounter {
        sql_module_instance = sql
        dialect = ${modules.sql.dialect}

        counter_name = Max-Capacity
        check_name = Acct-Output-Octets
        reply_name = Session-Timeout

        key = User-Name
        reset = monthly
        query = "SELECT ((SUM(`acctinputoctets`)+SUM(`acctoutputoctets`))) FROM radacct WHERE `username`='%{${key}}' AND Month(acctstoptime)=(Month(NOW())) AND Year(acctstoptime)=Year(NOW())"
}

当我为给定用户运行上面的查询时,我得到以下数据用法:76827648

这超出了我在100000表中设置radcheck的限制:

INSERT INTO `radcheck` (`id`, `username`, `attribute`, `op`, `value`)
VALUES
    (3, '0799a559-1426-478a-b46a-a33f1198cd24', 'Acct-Output-Octets', ':=', '100000');

那为什么还能连接?

我在freeradius -X日志文件中有pastebin

0 个答案:

没有答案