Примеры установки SAMS на различные системы
- Установка SAMS на Alt Linux Master 2.4
- Установка SAMS на RedHat Enterprise Linux 4
- Установка SAMS на Debian GNU/Linux Etch 4.0
Стандартная инсталляция SAMS
1. Разархивируйте полученный архив:
tar zxf sams-xxxxxx.tar.gz
будет создан каталог, в котором размещено содержимое архива.
2. Переместитесь в него
сd sams-xxxxxx
3. Собрать и установить SAMS можно используя скрипт установки setup.sh или традиционным способом:
./configure make make install
Для настройки конфигурации воспользуйтесь командой
./configure
По-умолчанию SAMS ставится в /usr/local.
Если вы можете изменить путь:
- к расположению программ и путь к расположению библиотек и файлов заголовков MySQL
- к каталогу расположения root директории http сервера (если путь к нему отличается от /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
Создайте пользователя MySQL
SAMS хранит настройки и данные о доступе пользователей в интернет в базе данных 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 http сервера
В результате инсталляции должен быть создан симлинк из root каталога http сервера на каталог 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
Настройка NTLM авторизации
Если планируется использовать NTLM авторизацию в домене Windows NT 4.0, настройте winbind , а также squid на работу с winbind-авторизацией.
Если планируется использовать NTLM авторизацию в домене Windows 2000/2003, настройте winbind , а также squid на работу с winbind-авторизацией.
Если планируется использовать авторизацию в Active Directory, настройте squid на работу с авторизацией в AD.
Настройка обработки логов SQUID
Чтение логов 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
Для работы в режиме "safe_mode=On" смотрите раздел "Настройка php для работы с SAMS в режиме safe mode" данного документа.
Создайте каталог /tmp/sams. В него SAMS будет складывать временные файлы и смените права доступа на католог /tmp/sams на 777. mkdir /tmp/sams chmod 777 /tmp/sams
