IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    pptpd + freeradius 实现流量控制

    博客 - DannySite发表于 2016-03-10 15:49:22
    love 0
    在 Linux 上用软件实现 PPTP VPN 是比较容易的事情,不过有时可能需要利用到流量控制以免引起不必要的麻烦。因此有必要总结一下利用 radius 实现流量控制所需的步骤。也算是针对之前几篇关于 PPTP VPN 服务器搭建的补充。 这里首先架设 radius 的安装路径为 /etc/raddb/。   添加流量 counter 编辑/etc/raddb/sql/mysql/counter.conf,在其末尾添加: sqlcounter monthlytrafficcounter { counter-name = Monthly-Traffic check-name = Max-Monthly-Traffic reply-name = Monthly-Traffic-Limit sqlmod-inst = sql key = User-Name reset = monthly query = "SELECT SUM(acctinputoctets + acctoutputoctets) FROM radacct WHERE UserName='%{%k}' AND UNIX_TIMESTAMP(AcctStartTime) > '%b'" } 根据 reset 设定为 monthly 可以看出,这是“月统计”。   修改 radius 相关配置 打开 /etc/raddb/radiusd.conf,搜索内容“sql/mysql/counter.conf”: $INCLUDE sql/mysql/counter.conf 如该行有注释,将其取消。 打开 /etc/raddb/sites-enabled/default,在authorize区块的末尾添加“monthlytrafficcounter”: authorize { … monthlytrafficcounter } 打开 /etc/raddb/dictionary,在其中添加: ATTRIBUTE Max-Monthly-Traffic 3003 integer ATTRIBUTE Monthly-Traffic-Limit 3004 integer 然后进入 radius 数据库,增加流量限制的相关行: INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Acct-Interim-Interval',':=','300'); INSERT INTO radgroupcheck (groupname,attribute,op,VALUE) VALUES ('VIP1','Max-Monthly-Traffic',':=','10737418240'); 这里对 VIP1 组限制每月 10G 流量。 最后,重启 radius 服务即可。


沪ICP备19023445号-2号
友情链接