老谢博客

  • 首页
  • 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 回复
发表评论 点击取消评论.

*必填

*必填

  • 文章归档
  • 子网计算
  • 我的共享
  • 锻炼计划
  • 给我留言
  • 关于老谢
2023年 4月
一 二 三 四 五 六 日
 12
3456789
10111213141516
17181920212223
24252627282930
« 10月    

最新文章

  • 2021好久没更新博客
  • Zabbix监控oxidized备份状态
  • Zabbix 5.0 LTS版本MySQL表分区及编译安装随记
  • centos7.9部署oxidized自动备份交换机配置
  • Surface Pro 4更换屏幕与电池
  • VCSA中删除horizon view链接克隆生成的replica-受保护副本
  • Esxi6.7U3安装SanDisk Fusion-io 1.3T ioscale Pci SSD加速卡驱动
  • 搭建ELK日志系统分析处理fortigate的syslog日志
  • 华为USG防火墙配置NAT映射回流解决内网通过公网映射访问内部服务器
  • 飞塔防火墙fortitoken配置

最新评论

  • 无敌风火轮:和索尼没啥关系,这是索尼电脑的...
  • zhudong:老大,有VMware Horizon 7.12相关资...
  • qx:所有连接失效了,求一份
  • RainH:大佬,这个111.111.111.111是什么鬼?...
  • 王叨叨:幸福的人都是相似的,不幸的人各有各...
  • 李海博客:李海博客前来学习!
  • 明月登楼:最近使用了ZeroSSL证书,感觉还不...
  • 鸟叔:尽管不知道干啥的,还是来顶一下
  • 鸟叔:鸟叔来贵博客参观学习,通过十年之约穿...
  • 周良粥凉:往前看。

日志存档

  • 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-2023 老谢博客 All rights reserved.
Gzipped 76.5% | Optimized loading 67 queries in 0.277 seconds | Memory 33.55 MB | 皖ICP备13010663号-1
Powered by WordPress. | Hosted By 腾讯云 | Theme by WordPress主题巴士 | 站点地图 | SiteMap | Uptime | 技术支持:苏州天剑计算机系统有限公司