Лично я этой проргаммой пользуюсь давно и очень ей доволен
SQUID Account Management System(SAMS) -
программное средство для администрирования доступа пользователей к прокси-серверу SQUID, сбора статистики и генерации отчетов о потреблении трафика.
SAMS - это система для управления доступа пользователей через прокси сервер к ресурсам интернет. Она идеально подходит для использования как в частных фирмах так и в госудаственных учереждениях. Всю работу по проксированию, перенаправлению запросов, кэшированию и авторизации берет на себя proxy-сервер Squid а SAMS занимается учетом трафика и управлением пользователями.
Возможности SAMSАдминистрирование системы через web интерфейс
Ограничение объема трафика пользователей
Автоматическое отключение пользователей, превысивших лимит.
Ведение списков запрещенных для доступа пользователей ресурсов интернет.
Настройка доступа пользователей через механизм шаблонов. Шаблоны позволяют:
назначить списки запрещенных сайтов для пользователей данного шаблона
определить объем трафика пользователя шаблона по умолчанию
назначить период ограничения объема трафика для пользователей этого шаблона
назначить способ авторизации (ip, ntlm, ncsa) для пользователей этого шаблона
назначить скорость доступа к интернет для пользователей шаблона (delay_pools)
ограничение доступа пользователей по времени и дням недели
Разбиение пользователей на группы для удобства администрирования системы
Формирование отчетов по трафику пользователей за любой отрезок времени:
Полученный пользователями трафик
Посещенные пользователями сайты
Полученные пользователями файлы
Поддержка видов авторизации SQUID:
NTLM авторизация в домене Windows
NCSA авторизация
доступ по ip адресу
Поддержка использования редиректоров SQUID:
Rejik
SquidGuard?
Категории пользователей SAMS:
пользователи с правами администрирования SAMS
пользователь
Аудитор, для контроля трафика пользователей, без возможности администрирования системы
пользователи сети с расширенными правами, получают расширенный доступ к web интерфейсу, для контроля трафика пользователей своей группы
пользователи сети получают доступ к web интерфейсу для контроля своего трафика
Посылку сообщений администратору при отключении пользователей при превышении трафика
Для хранения данных используется СУБД MySQL
Восстановление файлов из кэша SQUID fil
Саму прогу качаем здесь https://freespace.by/download/26479eb19cПримеры установки SAMS на различные системы Установка SAMS на Alt Linux Master 2.4
Установка SAMS на RedHat Enterprise Linux 4
Установка SAMS на Debian GNU/Linux Etch 4.0
Основные пакеты:aptitude install apache2 apache2-mpm-prefork
aptitude install libapache2-mod-php5 php5-cgi php5-common php5-mysql php5-gd
aptitude install mysql-server mysql-client libmysqlclient15off
aptitude install squid
aptitude install libpcre3
Дополнительные пакеты, необходимые для компиляции sams:libpcre3-dev - Perl 5 Compatible Regular Expression Library
libmysqlclient15-dev - mysql database development files
aptitude install libpcre3-dev libmysqlclient15-dev
После компиляции sams эти пакеты можно удалить.
Дополнительные пакеты для работы SAMS:squidguard - Для использования редиректора squidguard
php5-ldap - Для авторизации пользователей в Active Directory | LDAP
php-fpdf - Для генерации pdf отчетов
Стандартная инсталляция SAMS1. Разархивируйте полученный архив:tar zxf sams-xxxxxx.tar.gz
будет создан каталог, в котором размещено содержимое архива.
2. Переместитесь в него
сd sams-xxxxxx
3. Собрать и установить SAMS можно используя скрипт установки setup.sh или традиционным способом:
./configure
make
make install
Для настройки конфигурации воспользуйтесь командой
./configure
По-умолчанию SAMS ставится в /usr/local.
Если вы можете изменить путь:
к расположению программ и путь к расположению библиотек и файлов заголовков MySQL
к каталогу расположения root директории https сервера (если путь к нему отличается от /var/www/html или /var/www/htdocs)
к каталогу расположения php
для получения списка опций настройки наберите:
./configure --help
По завершении работы команды configure откомпилируйте дистрибутив и инсталлируйте егоLinux:
make
make install
FreeBSD:
gmake
gmake install
Обновление уже установленной версииВ папке с собранной новой версией (после "configure" && "make") вместо "make install":
Linux
make update
./update/upgrade_mysql_table.php
Расположение файлов SAMSПо окончании инсталляции файлы SAMS будут проинсталлированы:
/etc:
sams.conf - файл конфигурации SAMS
/usr/local/bin:
файлы:
sams - анализатор логов squid
samsf - демон, создающий fifo файл, в который squid записывает логи.
samsdaemon - демон, отвечающий за переконфигурацию squid и автоматический запуск sams и samsf
/usr/local/share/sams:
файлы WEB-интерфейса sams
Создаем пользователя MySQLSAMS хранит настройки и данные о доступе пользователей в интернет в базе данных MySQL. Создайте базу данных и пользователя SAMS в MySQL. По умолчанию это пользователь sams. Измените пользователя и пароль доступа к базе в файле /etc/sams.conf
например:
MYSQLHOSTNAME=localhost
MYSQLUSER=sams
MYSQLPASSWORD=sams_password
Измените в файле конфигурации путь к файлу access.log squid.
например:
SQUIDLOGDIR=/var/log/squid
SQUIDCACHEFILE=access.log
Создание каталога SAMS https сервераВ результате инсталляции должен быть создан симлинк из root каталога https сервера на каталог web-интерфейса SAMS. Если он не создан, создайте симлинк из каталога вашего web-сервера на каталог /usr/local/share/sams
ln -s /usr/local/share/sams /our/path/www/htdocd/sams
Измените владельца каталога /usr/local/share/sams на пользователя, от имени которого работает ваш web сервер.
например:
chown -R apache:apache /usr/local/share/sams
Смените права доступа на католог /usr/local/share/sams/data на 777
Настройка php для работы с SAMS в режиме safe modeРедактируем файл конфигурации php, например /etc/php/4.4.4/apache-mod_php/php.ini
SAMS для некоторых функций WEB интерфейса использует системные команды, например wbinfo. В режиме safe_mode php блокирует доступ к системным командам. Php позволяет выполнять системные команды, расположенные в каталоге, заданном параметром safe_mode_exec_dir. Изменяем параметр:
safe_mode_exec_dir = "/usr/local/share/sams/bin"
Далее разрешаем исполнение системных скриптов из кода php. ищем в файле конфигурации параметр
disable_functions =
"chdir,dl,ini_get_all,phpinfo,system,shell_exec,popen,proc_open,exec,passthru,pcntl_exec"
и убираем из него запрет вызова функций phpinfo system shell_exec exec
также убираем их запрет в параметре
hphp.executor.func.blacklist = chdir,dl,ini_get_all,popen,proc_open,passthru,pcntl_exec
убираем из него запрет вызова функций phpinfo system shell_exec exec
После данных манипуляций WEB интерфейс SAMS работает в режиме safe_mode
Чтение логов SQUID и занесение данных в базу данных SAMS может производиться двумя способами:
Запуском обработчика логов через некоторый промежуток времени
Запуск обработчика логов sams может быть произведено samdaemon автоматически (см. настройку) или из cron
Обработчик логов /usr/local/bin/sams - запускается периодически и считывает информацию из файла access.log. Необходимо осуществлять запуск этой программы с периодичностью 1 раз в минуту.
Для запуска из cron создайте демону cron задание в файле /etc/crontab:
*/1 * * * * /usr/local/bin/sams
/usr/local/bin/samsf - после запуска остается в памяти демоном, устанавливает fifo файл access.log и squid заносит логи напрямую в sams. samsf может быть произведен samdaemon автоматически (см. настройку) или из скрипта при загрузке ОС.
Какой способ чтения логов выбрать? Оба способа имеют свои достоинства и недостатки:
sams:
+ При крахе базы данных они могут быть восстановлены из файлов логов squid (access.log)
- Пересчет трафика и отключение пользователей происходит с запозданием.
samsf (еще не доработан, работает нестабильно):
+ Пересчет трафика и отключение пользователей происходит сразу, как данные об этом поступят от SQUID
- Так как SQUID пишет логи непосредственно в samsf, при крахе базы данных данные о трафике пользователей могут быть потеряны. Не забывайте делать backup базам sams
Настройка очистки счетчиков трафика пользователей
SAMS ведет учет объема информации, полученной пользователями. По превышении объема информации, пользователь отключается от доступа к прокси-серверу
Очистка счетчиков пользователей может производиться через любой период времени (кратно суткам). Период очистки счетчиков установливается в свойствах шаблонов пользователей. Очистка производится демоном samsdaemon.
Также возможно производить очитску счетчиков ВСЕХ пользователей, вызывая утилиту sams с ключем -c из cron.
Пример настройки crontab на очистку счетчиков пользователей 00:00 1 числа каждого месяца:
0 0 1 * * /usr/local/sams/bin/sams -c
Настройка автоматического запуска samsdaemon
Настройте систему на автоматический запуск демона
/usr/local/bin/samsdaemon, необходимого для работы SAMS.
Для RedHat?-based дистрибутивов:
Установите автоматический запуск /etc/init.d/samsd
Настройка php для функционирпования SAMS
Раскомментируйте в php.ini вызов библиотеки mysql.so
установите параметр
safe_mode=Off
удалите из
disable_functions shell_exec
Создайте каталог /tmp/sams. В него SAMS будет складывать временные файлы и смените права доступа на католог /tmp/sams на 777. mkdir /tmp/sams chmod 777 /tmp/sams