欢迎您访问我爱IT技术网,今天小编为你分享的电脑教程是网络协议方面的经验知识教程:通过FreeRADIUS来控制VPN流量,下面是详细的分享!
通过FreeRADIUS来控制VPN流量
自从折腾起vps开始,就不断有朋友开始向我索要vpn的账号。可自己的vps的流量毕竟是有限的,送朋友账号,可也要注意流量的使用状况,特别是各个用户与网站的各个使用量。这时候想到怎么去监控及限制vpn的流量,首先必须先安装配置好FreeRADIUS,方法见FreeRADIUS + MySQL 安装配置笔记,然后再进行下面操作。
一、启用 Rlm sqlcounter 模块
查找"counter.conf”(695行),去掉#号
1
vim /usr/local/etc/raddb/radiusd.conf
二、添加 Traffic Counter流量计数器
网上一些教程有拼写错误,折腾了大半天才在官方文档上找到原因。
1
vim /usr/local/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'"
}
上面代码意思是按月进行统计,从数据库的radacct表中,根据用户名(%k)将所有入站和出站流量累加。
时间也是可以自定义的(months、weeks、days、hours),也可以指定具体值,如三天重置一次 "reset=3 d"
三、启用Traffic Counter流量计数器
1
vim /usr/local/etc/raddb/sites-enabled/default
在authorize区块的末尾(205行)添加
1
monthlytrafficcounter
四、添加字典文件
1
vim /usr/local/etc/raddb/dictionary
在文件末尾添加下面两行
ATTRIBUTE Max-Monthly-Traffic 3003 integer
ATTRIBUTE Monthly-Traffic-Limit 3004 integer
五、数据库插入流量限制值
注意事项:
1)这里插入到radgroupreply表,是限制某个用户组的流量。也可以插入到radcheck表,以限制某个用户的流量。
2)流量值以 byte 为单位,1G=1073741824 bytes
3)VIP1是用户组,123456是数据库root密码
# 连接到MySQL数据库
mysql -uroot -p123456;
# 每月最大流量(1G)
INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('VIP1','Max-Monthly-Traffic',':=','1073741824');
# 流量统计时间的间隔(60秒)
INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('VIP1','Acct-Interim-Interval',':=','60');
引文地址:https://wangyan.org/blog/freeradius-traffic-limit.html
参考文章:http://wiki.freeradius.org/Rlm_sqlcounter
以上就是关于通过FreeRADIUS来控制VPN流量的网络协议知识分享,更多电脑教程请移步到>>电脑教程。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
