老谢博客

  • 首页
  • WordPress
  • 网络技术
  • 乱七八糟
  • 运维技术
  • 给我留言
  • 关于老谢

freeradius流量控制

分类:运维技术日期:2012-03-25 - 21:07:35作者:老谢

之前的CentOS PPTP配置FreeRADIUS+DaloRADIUS实现高级用户控制+流量控制的流量控制似乎没写清楚,在这里单独写一遍。

建立流量控制表格

INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Auth-Type',':=','Local');
INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Service-Type',':=','Framed-User');
INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Framed-IP-Address',':=','255.255.255.255');
INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Framed-IP-Netmask',':=','255.255.255.0');
INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Acct-Interim-Interval',':=','600');
INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Max-Monthly-Traffic',':=','5368709120');
INSERT INTO radgroupcheck (groupname,attribute,op,VALUE) VALUES ('user','Simultaneous-Use',':=','1');

INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Auth-Type',':=','Local'); INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Service-Type',':=','Framed-User'); INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Framed-IP-Address',':=','255.255.255.255'); INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Framed-IP-Netmask',':=','255.255.255.0'); INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Acct-Interim-Interval',':=','600'); INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Max-Monthly-Traffic',':=','5368709120'); INSERT INTO radgroupcheck (groupname,attribute,op,VALUE) VALUES ('user','Simultaneous-Use',':=','1');

acct-interim-interval是计算流量的间隔(600秒),意味着每隔10分钟记录当前流量。倒数第二行是每月最大流量,这里是5G(单位是字节)。最后一行是允许同时连接数目。

创建完表格,编辑/usr/local/etc/raddb/dictionary,到最后一行,添加ATTRIBUTE Max-Monthly-Traffic 3003 integer。

进入radius -X调试模式,看看是否正常,如果正常,继续看下面操作:

编辑/usr/local/etc/raddb/sites-enabled/default,找到authorize字节,添加下面内容:

update request {
Group-Name := "%{sql:SELECT groupname FROM radusergroup WHERE username='%{User-Name}' ORDER BY priority}"
}
if ("%{sql: SELECT SUM(acctinputoctets+acctoutputoctets) FROM radacct WHERE username='%{User-Name}' AND date_format(acctstarttime, '%Y-%m-%d') >= date_format(now(),'%Y-%m-01') AND date_format(acctstoptime, '%Y-%m-%d') <= last_day(now());}" >= "%{sql: SELECT value FROM radgroupreply WHERE groupname='%{Group-Name}' AND attribute='Max-Monthly-Traffic';}") {
reject
}

update request { Group-Name := "%{sql:SELECT groupname FROM radusergroup WHERE username='%{User-Name}' ORDER BY priority}" } if ("%{sql: SELECT SUM(acctinputoctets+acctoutputoctets) FROM radacct WHERE username='%{User-Name}' AND date_format(acctstarttime, '%Y-%m-%d') >= date_format(now(),'%Y-%m-01') AND date_format(acctstoptime, '%Y-%m-%d') <= last_day(now());}" >= "%{sql: SELECT value FROM radgroupreply WHERE groupname='%{Group-Name}' AND attribute='Max-Monthly-Traffic';}") { reject }

至此,完事,如果流量超限了,用户登录则无法通过验证,会提示691的错误。

原文地址 : https://www.xj123.info/2856.html

本站遵循 : 署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5)

版权声明 : 原创文章转载时,请务必以超链接形式标明文章原始出处

Tags: FreeRADIUS , VPN
  • 上一篇:抵达太原
  • 下一篇:进入linux后提示符显示-bash-3.2
27条评论
  1. davelv 说:

    灿灿当初遇到的是什么问题哦。

    POST:2012-03-27 10:17 回复
    • 老谢 说:

      @davelv 用户认证出了问题,连接sql认证总是失败

      POST:2012-03-27 10:29 回复
  2. 罗伊 说:

    貌似曾经折腾过,各种出错,我放弃了。。。老谢你玩转了?

    POST:2012-03-27 19:35 回复
    • 老谢 说:

      @罗伊 玩转谈不上,只能基本能用了

      POST:2012-03-27 19:47 回复
      • 彪哥 说:

        老师你的QQ多少啊可以交流下么,我的QQ1163896977愿意和你做个朋友

        POST:2017-01-26 19:10 回复
  3. 久久电影网 说:

    没玩过 怎么玩的

    POST:2012-03-28 18:09 回复
  4. J.wei 说:

    很好学习了

    POST:2012-03-29 08:33 回复
  5. 家纺十大品牌 说:

    强贴,留名,关注。

    POST:2012-03-29 09:51 回复
  6. zary 说:

    完全看不懂,看来不是同一领域的

    POST:2012-03-30 16:49 回复
  7. ixwebhosting 说:

    后台没有操作好吧

    POST:2012-04-01 16:57 回复
  8. 周良 说:

    这个没折腾过..

    POST:2012-04-03 18:09 回复
  9. us vpn 说:

    主可以可以配置VPN?如何可以随机显示密码?

    POST:2012-04-07 22:22 回复
  10. 阿福 说:

    准备折腾中。腾空了手中的一个VPS折腾这玩意了。。。

    POST:2012-06-03 10:50 回复
    • Iris 说:

      阿福有没有遇到过搭建好PPTP后,出现链接619 809错误?以排除mppe模块问题…

      POST:2014-01-21 18:29 回复
  11. lee 说:

    如果在用户登录使用过程中超了流量怎们办?

    POST:2013-07-02 01:18 回复
  12. Iris 说:

    博主,如果流量在连接后超限,会不会去断开PPTP的链接?还是只会禁止下一次的连接认证?另外acct表中的连接记录数据是每月自动更新么?问题有点多,见谅下。

    POST:2014-01-21 18:31 回复
    • 老谢 说:

      @Iris 只会在下一次验证中登录失败,因为检查是添加在验证字段中的,记录数据是每月更新的

      POST:2014-01-21 20:54 回复
  13. iam593 说:

    如果用户组没有设置 Max-Monthly-Traffic,会被当做零处理。然后这个组的成员就登不上来了,需要加上此判断:

    update request {
    Group-Name := “%{sql:SELECT groupname FROM radusergroup WHERE username=’%{User-Name}’ ORDER BY priority}”
    }
    if (“%{sql: SELECT count(*) FROM radgroupreply WHERE groupname=’%{Group-Name}’ AND attribute=’Max-Monthly-Traffic’;}” > 0) {
    if (“%{sql: SELECT SUM(acctinputoctets+acctoutputoctets) FROM radacct WHERE username=’%{User-Name}’ AND date_format(acctstarttime, ‘%Y-%m-%d’) >= date_format(now(),’%Y-%m-01′) AND date_format(acctstoptime, ‘%Y-%m-%d’) = “%{sql: SELECT value FROM radgroupreply WHERE groupname=’%{Group-Name}’ AND attribute=’Max-Monthly-Traffic’;}”) {
    reject
    }
    }

    POST:2014-08-02 22:34 回复
    • 老谢 说:

      优质评论!

      POST:2014-08-05 10:26 回复
  14. iam593 说:

    如果Max-Monthly-Traffic 设置的过大,可能存在数值越界的问题。实际应用中可能不会限制到byte,可以将 SUM(acctinputoctets+acctoutputoctets) 和 Max-Monthly-Traffic value 都除以 1024或1024 * 1024来以K或M作为计量单位,就可以降低数量级,从而保证计算正确。

    POST:2014-08-03 09:12 回复
    • Bob 说:

      最近出现这种问题了。设定20G流量,使用才几G就出现无法登录的情况,检查发现居然SQL计算的出来的结果是几G大于设定的20G为TRUE了,真奇怪了。回去试试

      POST:2014-08-13 20:59 回复
      • abbott 说:

        Hi 你好, “可以将 SUM(acctinputoctets+acctoutputoctets) 和 Max-Monthly-Traffic value 都除以 1024或1024 * 1024来以K或M作为计量单位” 这个是如何修改呢? 请不要发怒阿, 我真不会这个, 就是照着这个粘贴修改而已. 不清楚这个如何修改?

        POST:2014-09-16 10:43 回复
        • 矿物质水 说:

          query = “select sum(acctinputoctets + acctoutputoctets) div 1048576 from radacct where username=’%{%k}’ and unix_timestamp(acctstarttime) > ‘%b'”
          好像是这样子

          POST:2015-09-08 10:10 回复
          • abbott 说:

            多谢你.

            POST:2015-09-29 10:41 回复
    • Bob 说:

      发现一个问题,除以1024以后,会提示“Left field is not a number at:XXX”这样的,怎么能把左边的转化为数字呢?谢谢

      POST:2014-08-13 21:27 回复
  15. 柯长安 说:

    流量超50G后被reject,那下个月如何自动开通!谢谢了!

    POST:2015-11-22 21:43 回复
  16. xiaoshangmin 说:

    ios上一直鉴定用户失败 在vps上radtest是成功的

    POST:2016-02-23 23:24 回复
发表评论 点击取消评论.

*必填

*必填

  • 文章归档
  • 子网计算
  • 我的共享
  • 锻炼计划
  • 给我留言
  • 关于老谢
2025 年 6 月
一 二 三 四 五 六 日
 1
2345678
9101112131415
16171819202122
23242526272829
30  
« 5 月    

最新文章

  • 认知,是否是一座大山?当架构决策变成配置清单比价
  • 重装博客服务器环境
  • 特斯拉24款标续 Model Y 2万公里使用体验
  • 接盘的傻子
  • 小牛us电瓶指示灯闪三次不上电
  • 一次还不错的小米售后体验
  • 装台1600元办公主机
  • 2021好久没更新博客
  • Zabbix监控oxidized备份状态
  • Zabbix 5.0 LTS版本MySQL表分区及编译安装随记

最新评论

  • zwwooooo:类似以前做网站开发时,一开始有自...
  • 老陳网志:有点高端,像我们整点nas玩玩就够...
  • springwood:自从 CentOS 不维护之后,我换 U...
  • 大D:难都搞下来了,那就更得YM了
  • 大D:只能是YM了,谢总牛啊
  • 灰常记忆:经济不好 今年我也换了机器 一...
  • 大峰:这是海外服务器嘛?速度挺快的。
  • 大D:只能单走一个6了哈哈哈
  • zwwooooo:买特斯拉和买iPhone的人群其实相似...
  • 平安家属子痕:一直坚持油车,看你写的心里有...

日志存档

  • 2025 年 5 月
  • 2025 年 4 月
  • 2025 年 3 月
  • 2024 年 9 月
  • 2024 年 5 月
  • 2024 年 1 月
  • 2023 年 4 月
  • 2021 年 10 月
  • 2021 年 4 月
  • 2021 年 3 月
  • 2021 年 2 月
  • 2020 年 11 月
  • 2020 年 9 月
  • 2020 年 5 月
  • 2020 年 4 月
  • 2020 年 3 月
  • 2020 年 1 月
  • 2019 年 12 月
  • 2019 年 10 月
  • 2019 年 7 月
  • 2019 年 6 月
  • 2019 年 5 月
  • 2019 年 3 月
  • 2019 年 1 月
  • 2018 年 12 月
  • 2018 年 11 月
  • 2018 年 10 月
  • 2018 年 7 月
  • 2018 年 6 月
  • 2018 年 5 月
  • 2018 年 4 月
  • 2018 年 3 月
  • 2018 年 1 月
  • 2017 年 10 月
  • 2017 年 9 月
  • 2017 年 8 月
  • 2017 年 7 月
  • 2017 年 2 月
  • 2017 年 1 月
  • 2016 年 12 月
  • 2016 年 11 月
  • 2016 年 10 月
  • 2016 年 7 月
  • 2016 年 6 月
  • 2016 年 4 月
  • 2016 年 2 月
  • 2016 年 1 月
  • 2015 年 12 月
  • 2015 年 10 月
  • 2015 年 9 月
  • 2015 年 7 月
  • 2015 年 5 月
  • 2015 年 4 月
  • 2015 年 3 月
  • 2015 年 2 月
  • 2015 年 1 月
  • 2014 年 12 月
  • 2014 年 10 月
  • 2014 年 9 月
  • 2014 年 8 月
  • 2014 年 7 月
  • 2014 年 6 月
  • 2014 年 5 月
  • 2014 年 4 月
  • 2014 年 3 月
  • 2014 年 2 月
  • 2014 年 1 月
  • 2013 年 12 月
  • 2013 年 11 月
  • 2013 年 10 月
  • 2013 年 9 月
  • 2013 年 8 月
  • 2013 年 7 月
  • 2013 年 6 月
  • 2013 年 5 月
  • 2013 年 4 月
  • 2013 年 3 月
  • 2013 年 2 月
  • 2013 年 1 月
  • 2012 年 12 月
  • 2012 年 11 月
  • 2012 年 9 月
  • 2012 年 8 月
  • 2012 年 7 月
  • 2012 年 6 月
  • 2012 年 5 月
  • 2012 年 4 月
  • 2012 年 3 月
  • 2012 年 2 月
  • 2012 年 1 月
  • 2011 年 12 月
  • 2011 年 11 月
  • 2011 年 10 月
  • 2011 年 9 月
  • 2011 年 8 月
  • 2011 年 7 月
  • 2011 年 6 月
  • 2011 年 5 月
  • 2011 年 4 月
  • 2011 年 3 月
  • 2011 年 2 月
  • 2011 年 1 月
  • 2010 年 12 月
  • 2010 年 11 月
  • 2010 年 10 月
  • 2010 年 9 月
  • 2010 年 8 月
  • 2010 年 7 月

W3C

  • XHTML 1.0 Transitional
  • CSS level 3
  • Google+
Copyright © 2010-2025 老谢博客 All rights reserved.
Gzipped 76.5% | Optimized loading 55 queries in 1.552 seconds | Memory 38.91 MB | 尼玛的备案
Powered by WordPress. | Hosted By LAOXUEHOST | Theme by WordPress主题巴士 | 站点地图 | SiteMap | uptime查询