Squid и Sams на Ubuntu 10.10

Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

UbuntuSQUID Account Management System(SAMS) - это программное обеспечение, позволяющее производить контроль и управление пользователями через прокси-сервер, а так же сбор статистики и ведение отчетности потребления трафика. За представленный материал большая благодарность Степану Исаеву. Обсуждение темы на форуме Squid и Sams на Ubuntu 10.10, где Вы сможите не только задать свой вопрос, но и скачать готовый сервер на базе Ubuntu server 11.04.

Оновные пакеты используемые в данном материале:

Компонент Программа Версия Пакеты для установки
Web-сервер Apache 2.2.3 apache2, apache2-mpm-prefork
PHP PHP 5.2 libapache2-mod-php5, php5-cgi, php5-common, php5-mysql, php5-gd php5
БД MySQL 5.0.30 mysql-server, mysql-client
Прокси-сервер Squid 2.6.5 squid
Библиотеки pcre 6.7 libpcre3

Подготовка Ubuntu 10.10

На всякий случай обновите зависимости пакетов перед установкой:

  • aptitude update

Установим эти пакеты:

  • aptitude install apache2 apache2-mpm-prefork
  • aptitude install libapache2-mod-php5 php5-cgi php5-common php5-mysql php5-gd php5
  • aptitude install mysql-server mysql-client

Установка squid

Далее устанавливаем squid и libpcre3:

  • aptitude install squid libpcre3

Установим дополнительные пакеты, необходимые для компиляции sams (libpcre3-dev и libmysqlclient15-dev):

  • aptitude install libpcre3-dev libmysqlclient15-dev

После компиляции sams эти пакеты можно удалить. (если tar.gz)

Скачиваем последнюю версию SAMS (На настоящий момент версия 1.0.5), для i386 архитектуры процессора выполним это:

  • cd /usr/src/
  • wget http://www.nixdev.net/release/sams/packages/xUbuntu_9.10/i386/sams_1.0.5_i386.deb
  • wget http://www.nixdev.net/release/sams/packages/xUbuntu_9.10/all/sams-doc_1.0.5_all.deb
  • wget http://www.nixdev.net/release/sams/packages/xUbuntu_9.10/all/sams-web_1.0.5_all.deb
  • dpkg -i sams_1.0.5_i386.deb
  • nano /etc/init.d/sams

Если у Вас 64bit система выполняем это:

  • cd /usr/src/
  • wget http://www.nixdev.net/release/sams/packages/xUbuntu_9.10/amd64/sams_1.0.5_amd64.deb
  • wget http://www.nixdev.net/release/sams/packages/xUbuntu_9.10/all/sams-doc_1.0.5_all.deb
  • wget http://www.nixdev.net/release/sams/packages/xUbuntu_9.10/all/sams-web_1.0.5_all.deb
  • dpkg -i sams_1.0.5_amd64.deb
  • nano /etc/init.d/sams

Изменяем в открывшемся файле значение false на true в строке SAMS_ENABLE=false:

[...]
SAMS_ENABLE=true
[...]
  • dpkg -i sams-doc_1.0.5_all.deb
  • dpkg -i sams-web_1.0.5_all.deb

Создание базы данных

Для работы SAMS нам необходимо создать пользователя sams в базу данных (БД) MySQL:

  • mysql -u root -p
  • GRANT ALL ON squidctrl.* TO sams@localhost IDENTIFIED BY "yourpassword";
  • GRANT ALL ON squidlog.* TO sams@localhost IDENTIFIED BY "yourpassword";

Где yourpassword – пароль root для MySQL. для завершения работы выполните команду \q.

Текущая версия SAMS умеет работать с PHP в режиме safe_mode=On. Но это требует дополнительной настроек. Для этого отредактируем файл /etc/php5/apache2/php.ini Включаем режим safe mode. Для этого выставляем параметр safe_mode:

  • nano /etc/php5/apache2/php.ini
[...]
safe_mode = On
[...]

SAMS для некоторых функций WEB интерфейса использует системные команды, например wbinfo. В режиме safe_mode php блокирует доступ к системным командам. PHP позволяет выполнять системные команды, расположенные в каталоге, заданном параметром safe_mode_exec_dir. Поэтому изменяем этот параметр:

[...]
safe_mode_exec_dir = “/usr/share/sams/bin”
[...]

Далее разрешаем исполнение системных скриптов из кода PHP. Ищем в файле конфигурации параметр и убираем из него запрет вызова функций phpinfo system shell_exec exec:

[...]
disable_functions = “chdir,dl,ini_get_all,popen,proc_open,passthru,pcntl_exec”
[...]

В файле /etc/sams.conf правим имя пользователя в строке:

  • nano /etc/sams.conf
[...]
MYSQLUSER=sams
MYSQLPASSWORD=yourpasswd
[...]

Sams - пользователь MySQL, от имени которого будет работать, а yourpasswd - пароль пользователя в MySQL:

Создание БД и MySQL пользователя SAMS

Переходим в каталог /usr/src/sams-1.0.5/mysql/:

  • cd /usr/share/sams/mysql
  • mysql -u root -p < sams_db.sql
  • mysql -u root -p < squid_db.sql

Настройка SQUID

  • nano /etc/squid/squid.conf

{xtypo_warning}Ни в коем случае не менять структуру файла и не удалять комментарии.{/xtypo_warning}

Указываем порт который будет слушать/обслуживать наш прокси:

[...]
http_port 3128
[...]

Раскоментируем и редактируем по своему вкусу:

[...]
cache_dir ufs /var/spool/squid 100 16 256
[...]

А также, раскоментировать другие опции работы с кэшем:

[...]
access_log /var/log/squid/access.log
[...]
pid_filename /var/run/squid.pid
[...]

Подводные камни

Для установленной версии php5 и сервера MySQL-5.1 в WEB интерфейсе будут проблемы с настройками. Необходимо сделать это.

  • nano /usr/share/sams/src/webconfigtray.php
/* function GetHostName()
* {
* if (!($value=getenv('SERVER_NAME')))
* {   $value="N.A.";  }
* return($value);
*}
*/

В файле /usr/share/sams/src/configtray.php закоментировать таким образом следующие строчки.

  • nano /usr/share/sams/src/configtray.php
/* function GetHostName()
* {
* if (!($value=getenv('SERVER_NAME')))
* {   $value="N.A.";  }
* return($value);
*}
*/

По окончанию необходимо выполнить перезапуск сервера:

  • reboot

Настройка через WEB интерфейс

На компьюторе запускаем Web браузер, любой, какой душе угодно, я люблю Mozilla Firefox. Переходим по адресу http://IP/sams:

Запуск sams

В системе уже зарегистрированны два пользователя:

Администратор Аудитор/Статистика
Логин: admin
Логин: auditor
Пароль: qwerty
Пароль: audit

Нажимаем в нижнем окне на иконку с двумя человечками, и входим под администратором.

Авторизация sams

Авторизация sams

Идем в секцию WEB interface settings (значек инструменты)

  • Выставляем язык: russian utf-8
  • Показывать графики в отчетах
  • Создавать PDF отчеты с помощью fpdf
  • Остальные фукции выставляете по вкусу, и по документации, благо она на русском, поэтому проблем не возникнет.

Настройки WEB-интерфейса SAMS

Идем в секцию Администрирование SAMS:

  • Уровень детализации записей в журнале - 1
  • Выбираем домен (по умолчанию WORKGROUP)
  • В настройках авторизации выставляем – IP
  • Обязательно ставим галочку – «Обрабатывать логи squid» и выставляем интересующий нас промежуток
  • Не использовать редиректор
  • Включаем ограничение скорости пользователей
  • И выставляем промежуток времени для хранение отчетов о посещенных ресурсах по своему усмотрению

Настройка SAMS

{xtypo_alert}(ВАЖНО!!! Вместо http://IP/sams/icon/classic/blank.gif писать в обоих строчках http://localhost/sams/icon/classic/blank.gif). Не забудьте поставить галочку "Обрабатывать логи SQUID", иначе статистика не будет собираться, сохраняемся.{/xtypo_alert}

Удалить все существующие группы пользователей и шаблоны пользователей:

Шаблоны пользователей SAMS

Далее выберете пункт Пользователи воспользуйтесь иконкой справа снизу и создайте нового пользователя. Обязательно поставив галочку напротив Пользователь активен:

Добавление пользователя в SAMS

После чего выбирете меню SQUID внизу справа иконка Реконфигурировать Squid и подтвердите выбранное.

Вот и все далее вы можете уже пользуясь веб интерфейсом указать локальные домены (трафик на них учитываться небудет), ограничить посещаемые ресурсы через меню Запрет доступа по URL.

Запрет доступа к сайту в SAMS

Только не забудьте потом присвоить ограничение вашему шаблону: Шаблоны пользователей - ВАШ_Шаблон - Изменить шаблон (иконкс с инструментами):

Редактирование шаблона пользователя в SAMS

Огромная благодарность за проделаную работу пользователю istep проекта mini Server. Обсуждение темы на форуме Squid и Sams на Ubuntu 10.10, где Вы сможите не только задать свой вопрос, но и скачать готовый сервер на базе Ubuntu server 11.04.