- Подробности
-
Категория: Сервер доступа
-
Обновлено 16.09.2014 08:33
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
На всякий случай обновите зависимости пакетов перед установкой:
Установим эти пакеты:
- 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 правим имя пользователя в строке:
[...] 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
Указываем порт который будет слушать/обслуживать наш прокси:
[...] 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); *} */
По окончанию необходимо выполнить перезапуск сервера:
Настройка через 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.