Squid3+rejik+lightsquid - как ограничить трафик юзерам?

Обсуждение программы редиректора
Ответить
Leo2
Сообщения: 10
Зарегистрирован: Чт июн 28, 2012 12:09

Squid3+rejik+lightsquid - как ограничить трафик юзерам?

Сообщение Leo2 »

Работает связка, Squid3+rejik+lightsquid, проксирует, режет, считает

Можно ли как-нибудь установить суточный лимит трафика через 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


Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Re: Squid3+rejik+lightsquid - как ограничить трафик юзерам?

Сообщение Slava »

вместо:
acl bl_users proxy_auth_regex -i '/usr/local/squid/blocked_users'
http_access deny bl_users

сделайте секцию в режике и укажите work_id f:/usr/local/squid/blocked_users

Leo2
Сообщения: 10
Зарегистрирован: Чт июн 28, 2012 12:09

Re: Squid3+rejik+lightsquid - как ограничить трафик юзерам?

Сообщение Leo2 »

А что поменять или добавить, чтобы ограничение было по результатам суток, а не месяца?

И почему в acl сквида ничего не нужно прописывать?

Что за параметр f: в вашей строчке? У меня ubuntu

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Re: Squid3+rejik+lightsquid - как ограничить трафик юзерам?

Сообщение Slava »

Leo2 писал(а):А что поменять или добавить, чтобы ограничение было по результатам суток, а не месяца?

И почему в acl сквида ничего не нужно прописывать?

Что за параметр f: в вашей строчке? У меня ubuntu
Строчки для конфига сквида, которые Вы указали, блокируют пользователей.
Вы на форуме редиректора для сквида и я предположил, что именно для редиректора нужны правила блокировки.
Как именно работает это скрипт я не понимаю, задайте вопрос автору скрипта.
Смысл скрипта в том, что бы сгенерировать список пользователей для блокирования.

Код: Выделить всё

work_id <логин>
work_id <f:/path/file>
Производить замены только для указанного логина (для тех, у кого пользователи авторизуются в squid по логину). Если нужно указать несколько логинов, то необходимо прописать несколько строчек с work_id, указав в каждой по одному логину. Также можно указать все логины в текстовом файле, по одной записи в строке, и задать work_id f:/этот_файл (f: - не диск, а флаг, означающий, что дальше идет путь к файлу).
Также рекомендую прочесть http://rejik.ru/index_ru_10_1.html

Ответить