Aler |
|||
Программы |
|||
Squidlog3 [скачать] Программа для подсчёта трафика пользователей прокси-сервера Squid с функцией отключения при достижении определённого лимита (необходимо, что бы пользователи авторизировались по имени и паролю). Подобных программ куча, но моя кроме самого прокси и perl ничего не требует дополнительного, проста в установке. Минус - нет возможности "администрирования" через веб-интерфейс. Программа у меня работает под FreeBSD, проверялась под OpenBSD. Немного о том как это работает: Описание, установка 1) data - данные программы 2) logs - лог программы 3) prog - "главный" скрипт и файл конфигурации 4) utils - дополнительные утилиты 5) www - веб директория подробнее: =================================== 1)data 1.1)admins.txt - список "адмнистраторов", т.е. тех, кто может смотреть всю статистику (так же используется в веб-интерфейсе) формат: #список, через запятую, администраторов login1,login2,login3 1.2)limits.txt - файл с лимитами (так же используется в веб-интерфейсе) формат: #логин пользователя, лимит в МБайтах login 123 1.3)limitsp.txt - добавочный лимит (бывает ситуация, когда тому или иному пользователю необходимо добавить лимит, но только на один период, по его истечению добавочный лимит уберётся, останется только основной) (так же используется в веб-интерфейсе) 1.4)passwd-stats - файл с именем и паролем для просмотра статистики (этот файл может быть копией файла с паролями для squid-а) 1.5)traffik.txt - файл с трафиком пользователей (так же используется в веб-интерфейсе) формат: #логин, трафик в байтах 1.6)traffik.txt.bu - архив трафика 1.7)users.txt - файл с описаниями пользователей (для веб-интерфейса) =================================== 2)logs: 2.1)squidlog3.log - лог работы скрипта, т.е. когда кого включили/отключили (так же используется в веб-интерфейсе) 2.2)userlog.log - лог просмотра статистики пользователями (так же используется в веб-интерфейсе) =================================== 3)prog 3.1)_sl3.pl - основной скрипт. Запускается из планировщика. 3.2)squidlog3.conf - настройки переменных для скрипта, пути к файлам и т.п. =================================== 4)utils 4.1)bu_traffik.pl - скрипт, который выполняется по окончанию "периода". При этом обнуляется трафик и добавочный лимит. Запускается из планировщика. Пути к файлам нужно просать самому. 4.2)byte_in_mbyte.pl - скрипт для перевода байт и мегабайты (необязателен) =================================== 5)www - веб-интерфейс здесь подробно расписывать не буду, только про cgi-bin\stats #ls -rw-r--r-- 1 root wheel admin.inc -rw-r--r-- 1 root wheel begin.inc -rw-r--r-- 1 root wheel end.inc -rw-r--r-- 1 root wheel main.inc -rw-r--r-- 1 root wheel prov.inc -rwxr-xr-x 1 squid squid stats.pl -rw-r--r-- 1 root wheel 1803 5 дек 10:54 var.inc admin.inc - часть доступная только для пользователей из списка admins.txt begin.inc - end.inc - main.inc - prov.inc - проверка ip-адреса клиента, если нужно, то задайте шаблоны в переменных $sh='';$sh1=''; например $sh='192.168';$sh1='10.10.10' stats.pl - вызываемый скрипт var.inc - загрузка переменных, нужно указать путь к файлу конфигурации =================================== Добавьте или измените в squid.conf строки auth_param basic credentialsttl 1 minute что бы прокси проверял имя и пароль раз в минуту пропишем задание для планировщика (cron) #crontab -e */1 * * * * perl /usr/local/squidlog3/prog/_sl3.pl #каждую минуты запускать основной скрипт 1 0 1 * * perl /usr/local/squidlog3/utils/bu_traffik.pl # в начале каждого месяца завершить "период" если вам требуется другой период, во второй строке сделайте изменения =================================== P.S.: зачем нужен файл 1.4)passwd-stats он нужен, что бы даже отключенный пользователь мог посмотреть свою статистику через веб. У меня, почему-то, не получилось написать свою программу для авторизации на прокси сервере, чтобы избежать потребность в этом файле (когда я эксперементировал с базами данных, то такая программка у меня работала, а вот с текстовыми файла неполучается) там где стоит пометка (так же используется в веб-интерфейсе) - если вы будет настраивать веб, то обратите внимание что бы было право на чтение этого файла от имени веб сервера, у меня просто стоит право на чтение всем подробной расшифровки кто куда ходил нет |