TODO: 定制FreeRadius的详细设置,修改一些sql脚本
TODO: 解决这个问题:
Sun Jun 25 17:59:07 2017 : Warning: rlm_sql (sql): You probably need to lower "min"
Sun Jun 25 17:59:08 2017 : Info: rlm_sql (sql): 0 of 3 connections in use. Need more spares
Sun Jun 25 17:59:08 2017 : Info: rlm_sql (sql): Opening additional connection (2554)
使用SQL语句FreeRadius删除僵尸用户:
仅仅删除这些僵尸记录是没有用的,因为radius服务器会再次自动生成这些数据。要使用SQL语句将AccStopTime更新才能制止住这些无效数据。
UPDATE radacct SET AcctStopTime = FROM_UNIXTIME(unix_timestamp(AcctStartTime) + AcctSessionTime),AcctTerminateCause = 'NoStopRecv', AcctSessionTime = AcctSessionTime + 300 WHERE AcctStopTime is null AND (unix_timestamp(now()) - (unix_timestamp(AcctStartTime) + AcctSessionTime)) > 400 AND AcctSessiontime > 0 ;
UPDATE radacct SET AcctStopTime = AcctStartTime, AcctTerminateCause = 'NoStop-AliveRecv' WHERE AcctStopTime is null AND AcctSessionTime = 0 AND (unix_timestamp(now()) - unix_timestamp(AcctStartTime)) > 400 ;
删除无效的连接记录(比较耗时,估计会造成一段时间的锁表,慎用!)
DELETE FROM radacct WHERE AcctStopTime > 0 AND AcctSessionTime = 0 AND AcctStopTime <= DATE_SUB(CURDATE(),INTERVAL 7 DAY);
将这些SQL放到脚本中,然后每隔3分钟执行一次。
参考:
- 启发:http://lists.freeradius.org/pipermail/freeradius-users/2005-October/003967.html
- http://www.vpncms.com/news/63.html
- http://www.vpncms.com/news/67.html
为VPN服务配置FreeRadius
在文件/etc/raddb/dictionary
最后增加一些属性:
ATTRIBUTE PPPD-Upstream-Speed-Limit 230 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit 231 integer
ATTRIBUTE Max-Monthly-Traffic 3003 integer
ATTRIBUTE Monthly-Traffic-Limit 3004 integer
ATTRIBUTE Monthly-Traffic 3005 integer
ATTRIBUTE Suspend-Use 3006 string
ATTRIBUTE Max-Daily-Traffic 3007 integer
ATTRIBUTE Daily-Traffic-Limit 3008 integer
ATTRIBUTE Daily-Traffic 3009 integer