Ограничение трафика  в месяц


    Скажу сразу, что ниже описанный способ, не самый красивый по классическим меркам, но зато один из самых быстрых и простых. :)

    Для реализации этого метода необходимо наличие собственно Squid и Sarg

Установка оных рассмотренна выше, поэтому остановлюсь только на настройке.

Вобщем открываем файл конфигурации sarg.conf и меняем следующую строку:

per_user_limit /usr/local/sarg/over_lim 100

Число может быть любым - оно отражает количество трафика в мегабайтах, которым мы хотим ограничить пользователей в месяц

 /usr/local/sarg/over_lim   это путь с именем конечного файла, в который будут заносится ипы рабочих станций, которые превысили лимит в 100 Мб

А этот файлик скармливаем сквиду в разделе запрет/разрешение

acl quote src "/usr/local/sarg/over_lim" - описывает source 

http_access deny quote - собственно запрет

Теперь  - эту строку (с запретом) мы прописываем перед всеми разрешениями:

http_access deny quote

http_access allow comp2

http_access allow comp1

http_access allow comp3

http_access allow comp4

Т.е. пока файлик пустой, ничего не запрещается;

Соответственно, как только ип компьютера к примеру Comp2 - попадает в этот файл происходит следующее

http_access deny quote (192.168.0.5  #Comp2)

http_access allow comp2

http_access allow comp1

http_access allow comp3

http_access allow comp4

У всех рабочих станций, разрешение остается, а у Comp2 - соответственно нет, так как squid свои конфы читает сверху - вниз

Но это еще не все...

Squid не может "на ходу" перечитывать свои конфы, поэтому его необходимо периодически перезапускать

В общем ситуация выглядит так:

По крону мы запускаем Sarg - генерить отчеты , каждые 10 мин

*/10 * * * * /usr/bin/sarg

Это позволяет через каждые 10 мин. иметь свежие отчеты, а также проверку на превышение лимита

Теперь, так же по крону перезапускаем squid через каждые 12 мин

*/12 * * * * killall -HUP squid

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

5 0 1 0 0 rm  /usr/local/sarg/over_lim

Но заодно, надо отротировать логи squid чтобы обнулить его отчеты

1 0 1 * *  /usr/local/squid/sbin/squid -k rotate

Ну вод собственно имеем:

В первую минуту нового месяца, сквида складыват отчеты за месяц в архив, и создает новый - пустой лог.

На пятой минуте стирается файл с ипами рабочих станций, превысивших лимит.

Собственно - это все, одно неудобство: количество огранниченного трафика - для всех одинаковое!

 


оглавление

Hosted by uCoz