SQUID 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
На всякий случай обновите зависимости пакетов перед установкой:
|
Установим эти пакеты:
|
Установка squid
Далее устанавливаем squid и libpcre3:
|
Установим дополнительные пакеты, необходимые для компиляции sams (libpcre3-dev и libmysqlclient15-dev):
|
После компиляции sams эти пакеты можно удалить. (если tar.gz)
Скачиваем последнюю версию SAMS (На настоящий момент версия 1.0.5), для i386 архитектуры процессора выполним это:
|
Если у Вас 64bit система выполняем это:
|
Изменяем в открывшемся файле значение false на true в строке SAMS_ENABLE=false:
[...] SAMS_ENABLE=true [...]
|
Создание базы данных
Для работы SAMS нам необходимо создать пользователя sams в базу данных (БД) MySQL:
|
Где yourpassword – пароль root для MySQL. для завершения работы выполните команду \q.
Текущая версия SAMS умеет работать с PHP в режиме safe_mode=On. Но это требует дополнительной настроек. Для этого отредактируем файл /etc/php5/apache2/php.ini Включаем режим safe mode. Для этого выставляем параметр safe_mode:
|
[...] 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 правим имя пользователя в строке:
|
[...] MYSQLUSER=sams MYSQLPASSWORD=yourpasswd [...]
Sams - пользователь MySQL, от имени которого будет работать, а yourpasswd - пароль пользователя в MySQL:
Создание БД и MySQL пользователя SAMS
Переходим в каталог /usr/src/sams-1.0.5/mysql/:
|
Настройка SQUID
|
{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 интерфейсе будут проблемы с настройками. Необходимо сделать это.
|
/* function GetHostName() * { * if (!($value=getenv('SERVER_NAME'))) * { $value="N.A."; } * return($value); *} */
В файле /usr/share/sams/src/configtray.php закоментировать таким образом следующие строчки.
|
/* function GetHostName() * { * if (!($value=getenv('SERVER_NAME'))) * { $value="N.A."; } * return($value); *} */
По окончанию необходимо выполнить перезапуск сервера:
|
Настройка через WEB интерфейс
На компьюторе запускаем Web браузер, любой, какой душе угодно, я люблю Mozilla Firefox. Переходим по адресу http://IP/sams:
В системе уже зарегистрированны два пользователя:
Администратор | Аудитор/Статистика |
Логин: admin |
Логин: auditor |
Пароль: qwerty |
Пароль: audit |
Нажимаем в нижнем окне на иконку с двумя человечками, и входим под администратором.
Идем в секцию WEB interface settings (значек инструменты)
- Выставляем язык: russian utf-8
- Показывать графики в отчетах
- Создавать PDF отчеты с помощью fpdf
- Остальные фукции выставляете по вкусу, и по документации, благо она на русском, поэтому проблем не возникнет.
Идем в секцию Администрирование SAMS:
- Уровень детализации записей в журнале - 1
- Выбираем домен (по умолчанию WORKGROUP)
- В настройках авторизации выставляем – IP
- Обязательно ставим галочку – «Обрабатывать логи squid» и выставляем интересующий нас промежуток
- Не использовать редиректор
- Включаем ограничение скорости пользователей
- И выставляем промежуток времени для хранение отчетов о посещенных ресурсах по своему усмотрению
{xtypo_alert}(ВАЖНО!!! Вместо http://IP/sams/icon/classic/blank.gif писать в обоих строчках http://localhost/sams/icon/classic/blank.gif). Не забудьте поставить галочку "Обрабатывать логи SQUID", иначе статистика не будет собираться, сохраняемся.{/xtypo_alert}
Удалить все существующие группы пользователей и шаблоны пользователей:
Далее выберете пункт Пользователи воспользуйтесь иконкой справа снизу и создайте нового пользователя. Обязательно поставив галочку напротив Пользователь активен:
После чего выбирете меню SQUID внизу справа иконка Реконфигурировать Squid и подтвердите выбранное.
Вот и все далее вы можете уже пользуясь веб интерфейсом указать локальные домены (трафик на них учитываться небудет), ограничить посещаемые ресурсы через меню Запрет доступа по URL.
Только не забудьте потом присвоить ограничение вашему шаблону: Шаблоны пользователей - ВАШ_Шаблон - Изменить шаблон (иконкс с инструментами):
Огромная благодарность за проделаную работу пользователю istep проекта mini Server. Обсуждение темы на форуме Squid и Sams на Ubuntu 10.10, где Вы сможите не только задать свой вопрос, но и скачать готовый сервер на базе Ubuntu server 11.04.