## О SAMS

### Состав SAMS

При инсталляции SAMS будут установлены следующие элементы:
- WEB интерфейс (путь по-умолчанию /usr/local/share/sams)
- samsdaemon (путь по-умолчанию /usr/local/bin)
- sams (путь по-умолчанию /usr/local/bin)
- samsf (путь по-умолчанию /usr/local/bin)
- samsredir (путь по-умолчанию /usr/local/bin)

  ### WEB интерфейс SAMS

  Предназначен для администрирования SAMS

  ### samsdaemon

  Демон, обеспечивающий совместное функционирование всех частей SAMS.
- запускает утилиты обработки логов sams или samsf
- вносит изменения в файл конфигурации SQUID squid.conf
- перезапускает SQUID
- очищает счетчики пользователей
  -d - включить вывод отладочной информации samsdaemon реконфигурирование прокси сервера SQUID.

  ### sams

  Утилита, читающая файл access.log, и заносящая данные о трафике пользователей в базу данных данных. При превышении объема трафика, полученного пользователем, выдается команда на его отключение.
  Запуск утилиты обеспечивает samsdaemon.
  Ключи:
  -c - очистить счетчики трафика пользователей
  -d - включить вывод отладочной информации
  По-умолчанию очистка счетчика трафика пользователей должна происходить первого числа каждого месяца. Если вы хотите очищать счетчики трафика чаще, настройте запуск утилиты sams с ключем -c при помощи cron.

  ### samsf

  Утилита, замещающая файл access.log fifo файлом (/var/log/squid/!access.log), и заносящая данные о трафике пользователей в базу данных данных. SQUID заносит данные непосредственно в fifo файл, на вход samsf. Данные обрабатываются непрерывно, и при превышении объема трафика, полученного пользователем, выдается команда на его отключение.
  Запуск утилиты обеспечивает samsdaemon.
  Ключи:
  -d - включить вывод отладочной информации. При данном ключе samsf не переходит в режим демона, и отладочная информация выводится в консоль.

  ### samsredir

  Редиректор SAMS. Запуск samsredir должен быть прописан в файле squid.conf.
  samsredir обеспечивает:
- запрет доступа пользователей к SQUID
- запрет доступа пользователей к запрещенным ресурсам
- перенаправление запросов пользователей к графичиским ресурсам (баннерам, счетчикам и т.п.)
- ограничение времени доступа пользователей к SQUID
  Если в настройках SAMS стоит использование samsredir, в ACL файлах SQUID доступ разрешен всем пользователям. Запрет доступа пользователей и ограничение времени доступа к SQUID осуществляется редиректором.

  ### Принцип работы SAMS

  Через web интерфейс происходит настройка всех параметров SAMS:
- принцип авторизации пользователей в SQUID
- регистрация пользователей SQUID и настройка их свойств (квота на трафик, запрет доступа и т.п.)
- настройка запрета доступа пользователей к нежелательным ресурсам интернет
- просмотр отчетов по посещенным пользователями ресурсам.
- просмотр журнала событий SAMS
- выдача команды на реконфигурирование SQUID
- настройка чтения данных из логов SQUID

  Обработка логов SQUID производится двумя утилитами:

- sams
- samsf

  программа sams регулярно вызывается демоном samsdaemon для чтения файла логов SQUID access.log и занесения данных в базу данных MySQL. При превышении пользователем квоты трафика происходит отключение пользователя и выдача команды на реконфигурирование SQUID.

  демон samsf запускается демоном samsdaemon и создает fifo файл access.log, в кторой SQUID пишет свои логи. Если уже существовал текстовый файл access.log, он переносится в файл access.log.{time stamp}. Демон samsf заносит данные о трафике в базу данных MySQL.
  Обработка данных демоном samsf происходит непрерывно, и реакция на превышение пользователем трафика более быстрая, чем утилиты sams. При превышении пользователем квоты трафика происходит отключение пользователя и выдача команды на реконфигурирование SQUID.

  демон samsdaemon постоянно ждет команду на реконфигурирование SQUID. При ее получении от WEB интерфейса sams или программ sams и samsf samsdaemon призводит:

- создает файлы ACL
- прописывает ACL в squid.conf
- реконфигурирует SQUID
  Samsdaemon изменяет squid.conf привязываясь к тегам начала разделов. По-этому все тэги должны быть на месте. При изменении squid.conf удаляются только настройки, внесенные для работы с sams (они содержат в себе строку "_sams_").

  Редиректор samsredir запускается при старте SQUID. На основе информации о пользователях, полученной из базы данных SAMS редиректор производит:

- разрешает допуск пользователей в интернет
- запрещает доступ пользователей к запрещенным ресурсам
- перенаправляет запросы пользователей к графическим файлам (баннерам и т.п.)