Примеры установки SAMS на различные системы

Стандартная инсталляция 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

Проблемы, которые могут возникнуть при установке SAMS?