Squid3+rejik+lightsquid - как ограничить трафик юзерам?
Добавлено: Вт дек 10, 2013 19:20
Работает связка, Squid3+rejik+lightsquid, проксирует, режет, считает
Можно ли как-нибудь установить суточный лимит трафика через squid по IP в данной связке? Что-то нигде не могу найти готового решения.
squid в режиме прозрачного прокси.
Нашел вот это http://lists.altlinux.org/pipermail/sis ... 94373.html
Но там блокировка на месяц, а мне нужна на сутки. может там что и можно подправить, но я не программист, для меня это темный лес.
Можно ли как-нибудь установить суточный лимит трафика через squid по IP в данной связке? Что-то нигде не могу найти готового решения.
squid в режиме прозрачного прокси.
Нашел вот это http://lists.altlinux.org/pipermail/sis ... 94373.html
Но там блокировка на месяц, а мне нужна на сутки. может там что и можно подправить, но я не программист, для меня это темный лес.
Код: Выделить всё
Скрипт блокирования за месяц:
-------------------------------------------
#!/usr/bin/perl
#
use File::Basename;
push (@INC,(fileparse($0))[1]);
require "lightsquid.cfg";
require "common.pl";
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime;
$year=sprintf("%02d",$year+1900);
$month=sprintf("%02d",$mon+1);
$filter="$year$month";
@daylist=glob("$reportpath/$filter*");
foreach $daypath (sort @daylist) {
open FF,"<$daypath/.total";
# GetRealName($daypath,"?"); # init realname for day
while (<FF>) {
($user,$size,$hit)=split;
$h{$user}{size}+=$size;
$h{$user}{hit}+=$hit;
}
close FF;
}
open FF,"</usr/local/squid/limit";
while (<FF>) {
($user,$limit)=split;
$tt{$user}{limit}=$limit;
}
close FF;
open FF,">","/usr/local/squid/blocked_users";
foreach $user (sort {$h{$b}{size}<=>$h{$a}{size}} keys %h) {
print FF ("$user\n") if ($h{$user}{size} > $tt{$user}{limit});
}
close FF;
exec '/usr/local/squid/sbin/squid -k reconfigure'
--------------------------------------------------------------------
Запускается каждые 20 минут.
/usr/local/squid/limit
файл с именем и лимитом трафика
В сквиде есть ACL
acl bl_users proxy_auth_regex -i '/usr/local/squid/blocked_users'
http_access deny bl_users