Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
SAMS — веб-интерфейс для управления Squ > - Автор: Уваров А.С.
- 26.01.2012
По многочисленным просьбам наших читателей сегодняшняя статья посвящена SAMS — веб-интерфейсу для Squid, который позволяет в графическом режиме производить все основные настройки прокси-сервера, а также реализует дополнительный функционал, позволяющий использовать его в качестве простейшего биллинга.
К сожалению, придется начать наш материал с печальной новости. На данный момент проект SAMS закрыт и его будущее под большим вопросом. Из этого следует, что использовать данный продукт вам придется на свой страх и риск, полагаясь исключительно на свои силы.
Мы также предупреждаем, что данный материал актуален только на текущий момент и мы не можем гарантировать, что все нижеизложенное будет работать на следующих версиях Ubuntu Server, при обновлении ПО и при любых иных условиях, отличных от изложенных в статье.
Итак, если вы отдаете себе отчет и осознаете ответственность, то продолжим. В нашем распоряжении имеется роутер, настроенный согласно данной статьи, работающий под управлением Ubuntu Server 10.04.3 LTS на котором мы будем производить все действия. В первую очередь нам необходимо настроить веб-сервер, для этого можно воспользоваться данным руководством, в качестве имени сайта укажем router.local, а в dnsmasq пропишем строку с адресом 10.0.0.1 (внутренний адрес нашего роутера). Не забудьте в /etc/lighttpd/lighttpd.conf раскомментировать и привести к следующему виду опцию:
Это ограничит доступность веб-сервера внутренним интерфейсом. Теперь установим необходимые пакеты:
Затем в /etc/php5/cgi/php.ini найдем и раскомментируем следующую строку, установив ее значение как:
Мы настроили сервер, можно приступать к установке SAMS. На официальном сайте доступны две версии: стабильная 1.5 и бета 2.0, по причине заморозки проекта и некоторой нестабильности последней версии мы рекомендуем использовать 1.5. С данной страницы качаем пакеты для Debian Lenny, а также пакет libmysqlclient15off с нашего сервера (i386 / amd64). Переносим их на сервер, например при помощи флешки, ее можно смонтировать командой:
где sdb имя съемного диска, его можно увидеть на экране сервера после подключения флешки:
Перейдем в каталог /media и установим пакеты:
Теперь откроем /etc/sams.conf и укажем параметры подключения к MySQL серверу:
где password — пароль суперпользователя MySQL который вы задали на этапе его установки.
Создадим линк на папку SAMS в каталоге веб-сервера:
Скопируем дампы БД в каталог для установки:
Установим необходимые права и владельцев на папки и файлы:
В данном релизе SAMS есть один неприятный баг, сервис samsdaemon отказывается стартовать автоматически, для его устранения нужно заменить скрипт /etc/init.d/sams следующим файлом (скачать). Будем считать что он распакован и находится на флешке, которая смонтирована в /media:
Перейдем к установке веб-интерфейса. Для этого в браузере наберем http://router.local/sams, на экране появится сообщение о невозможности подключится к БД и будет предложено запустить скрипт установки:
На следующем экране нужно указать параметры подключения к MySQL и задать пароль пользователю БД sams.
Если все сделано правильно вы увидите следующую страницу:
Можно смело жать кнопку и переходить в веб-интерфейс. Для авторизации используйте логин: admin и пароль: qwerty.
Осталось проверить, что сервис samsdaemon запущен и работает. Для этого перейдите в SAMS — SQUID и нажмите левую нижнюю иконку Squid reconfiguration, затем нажмите кнопку Reconfigurate, вы должны увидеть следующее сообщение:
На этом установку можно считать законченной. Настройка Squid при помощи SAMS выходит за пределы данной статьи и при наличии необходимых знаний не представляет каких-либо затруднений.
Установка и настройка SAMS2 на CentOS 7
В данной статье будет рассмотрен вопрос развертывания только системы SAMS для управления прокси-сервером SQUID. Для установки последнего читайте Установка и настройка Squid на CentOS.
Установка веб-сервера
SAMS является веб-приложением и для своей работы требует сам веб-сервер, интерпретатор PHP и СУБД. Мы установим связку Apache + PHP + MariaDB.
Apache
По умолчанию, в CentOS уже установлен данный веб-сервер. Если нет, то вводим команду:
* необходимо убедиться, что в системе не запущены другие веб-серверы. Проверить это можно командой ss -tunlp, которая покажет, заняты ли порты 80 и 443.
После установки веб-сервера, разрешаем порты в брандмауэре:
firewall-cmd —permanent —add-port=<80/tcp,443/tcp>
Открываем веб-браузер и переходим по адресу http:// / — должна открыться тестовая страница Apache:
Устанавливаем php и необходимые для работы sams компоненты:
yum install php php-mysql php-mbstring php-devel php-xml php-gd php-mcrypt
Открываем конфигурационный файл apache:
Находим модуль dir_module и приводим его к виду:
DirectoryIndex index.php index.html
* мы добавляем index.php перед index.html
Открываем веб-браузер и переходим по адресу http:// / — должна открыться страница с подробной информацией о PHP:
MariaDB
Установку сервера mariadb выполняем командой:
yum install mariadb-server
Задаем пароль пользователя root mysql:
mysqladmin -u root password
Установка SAMS
Установку панели управления выполняем в два этапа — сборка из исходников и веб-установка.
Сборка из исходников
Устанавливаем пакеты, которые нужны для сборки sams:
yum install wget unzip autoconf automake libtool pcre-devel libstdc++-devel gcc-c++ mariadb-devel
Переходим в распакованный каталог:
Открываем исходный файл proxy.h:
И добавляем : long ко всем значения параметров, которые начинаются на enum — получится:
.
enum TrafficType: long
.
enum usrAuthType: long
.
enum RedirType: long
.
enum ParserType: long
.
enum CharCase: long
.
Мы получим что-то на подобие:
Use MySQL API: yes
Use PostgreSQL API: no
Use unixODBC API: no
Use LDAP API: no
Using pcre: pcre
Use dynamic plugin: yes
* где для нас важна строка Use MySQL API, обозначающая поддержку MySQL — она должна иметь значение yes.
Создаем каталог для копирования данных:
Собираем исходник и инсталлируем sams:
Настройка веб-сервера
Создаем конфигурационный файл в apache:
Alias /sams /usr/local/share/sams2
AddDefaultCharset UTF-8
Require ip 192.168.0.0/16
* в данном примере мы создаем алиас — при обращении к странице /sams веб-сервер будет искать скрипты в каталоге /usr/local/share/sams2. Доступ к порталу будет разрешен из подсети 192.168.0.0/16.
Создаем базу данных и предоставляем к ней доступ новому пользователю:
> CREATE DATABASE sams2db DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
> GRANT ALL PRIVILEGES ON sams2db.* TO sams2user@localhost IDENTIFIED BY ‘sams2password’;
Веб-установка
Открываем конфигурационный файл sams:
Редактируем следующие строки:
* где DB_USER — имя mysql-пользователя; DB_PASSWORD — пароль mysql-пользователя.
Открываем веб-браузер и переходим по адресу http:// /sams/ — откроется страница установки SAMS2:
. кликаем по Run setup program >>.
В следующем окне выбираем язык и кодировку:
. нажимаем Next >>.
Система проведет начальную проверку:
Директиву safe_mode можно проигнорировать — кликаем по Далее >>.
Заполняем поля пользователя mysql, снимаем галочку Создать пользователя SAMS для доступа к базе данных:
* пользователь и пароль — те, которые мы создали в оболочке mysql.
На последней странице завершаем установку:
После завершения установки авторизовываемся в системе. Логин и пароль по умолчанию — admin / qwerty.
Настройка CentOS
Установка на этом не завершена. Для корректной работы консоли управления необходимо внести настройки в систему и Squid.
Настройка демона
Для работы службы sams2 копируем файл ее запуска:
cp redhat/init.d /etc/init.d/sams2
* подразумевается, что мы все еще находимся в каталоге sams2-master, распакованного исходника.
Открываем на редактирование данный файл:
[ -f __CONFDIR/sams2.conf ] || exit 0.
DAEMON=__PREFIX/sams2daemon [ -f /usr/local/etc/sams2.conf ] || exit 0
.
DAEMON=/usr/local/bin/sams2daemon
* в данном случае мы заменили __CONFDIR на /usr/local/etc и __PREFIX на /usr/local/bin.
Разрешаем автозапуск демона sams2 и запускаем его:
Настройка Squid
При попытке внести какие либо изменения в консоли управления SAMS мы не увидим никаких изменений в конфигурационном файле SQUID. Проблема в том, что sams ориентируется по специальным комментариям, которых нет в конфиге последнего под CentOS.
Устанавливаем прокси сервер Squid c веб интерфейсом SAMS в Debian Wheezy
Сегодня мы с Вами установим и настроим прокси сервер SQUID с веб интерфейсом SAMS версии 1.5 для управления прокси сервером на Debian Wheezy. Данное руководство это одна из статей инструкции по установке и настройке интернет сервера.
]]> SAMS ]]> — это система для управления доступа пользователей через прокси сервер к ресурсам интернет. Она идеально подходит для использования как в частных фирмах так и в госудаственных учреждениях. Всю работу по проксированию, перенаправлению запросов, кэшированию и авторизации берет на себя proxy-сервер Squid, а SAMS занимается учетом трафика и управлением пользователями.
После того как настроили сервер по указанной выше инструкции приступаем к установке прокси сервера squid, а также настройке веб интерфейса SAMS для управления прокси сервером SQUID, а также мы установим редиректор для блокирования доступа к сайтам.
Добавляем репозиторий от Debian Squeeze для установки зависимостей во время установки веб интерфейса SAMS выполнив команду:
Обновляем репозиторий выполнив команду:
Редакторы конфигурационных файлов:
vi – требует прочтения инструкции пользователем. Для того чтоб пройти экспресс курс запустить команду vimtutor и пройдите основные команды для удобного пользования программой.
mcedit — более легкий в работе для начинающего линуксоида, можете зменить vi на mcedit и редактировать конфигурационные файлы. После открытия файла в редакторе mcedit нажимаем F7 появится окно поиска, вводим в него то, что необходимо найти нажимаем Enter. Если нашло не то что нужно, снова повторяем поиск, и так пока не найдем нужную строку. После того как Вы внесли необходимые изменения и хотите сохранить файл нажимаем кнопку F2 и соглашаемся с изменением. После сохранения для закрытия сохраненного файла нажимаем кнопку F10
Устанавливаем прокси сервер SQUID выполнив команду:
делаем бекап конфига squid который будем изменять выполнив команду:
Открываем удобным для Вас редактором (vi, mcedit, nano) конфигурационный файл /etc/squid/squid.conf
Далее я буду писать что ищем и как должно выглядеть после изменения (первый как должно выглядеть, остальные по примеру):
Внимание. Если у Вас пользователи будут авторизироватся при помощи пароля, прозрачная авторизация работать не будет, необходимо в браузере пользователя прописывать IP:PORT Вашего прокси сервера.
Установка squid+sams+ntlm на centos 6.4 по шагам
Добрый день господа, думаю, я не открою Америку рассказывая про проект SAMS (Squid Accaunt Management System), статьи о нем достаточно распространены, в том числе и на Хабрахабре. Однако хотя я не расскажу вам много нового, но надеюсь, расскажу немного полезного.
Первая причина написания статьи — помочь собратьям эникейщикам (админам небольших организаций) вроде меня, получить еще одно удобное, а самое главное бесплатное средство администрирования. Вторая причина в том, что попытавшись установить данное средство у себя, по различным HowTo я обнаружил, что они либо не полные, либо устарели и человеку знакомому с линуксом поверхностно (как я) получить что либо более менее работоспособное по ним невозможно, поэтому получив результат, решил поделиться с новичками.
Задачи
Итак, данное пошаговое HowTo ставит свой целью привести вас к собственному прозрачному прокси-серверу на CentOS 6.4 i386 который позволяет аутентифицировать пользователей через Active Directory. При этом данный сервер будет иметь удобный веб-интерфейс, и самое главное, он бесплатен (кого я этим хочу удивить в топике никсов?).
Немного о SAMS
Лучше всего, конечно же, прочитать официальный ресурс sams.perm.ru. Для меня SAMS это удобная считалка трафика и лог серфинга пользователей с красивым веб-интерфейсом. Но все же о плюсах и минусах (а они, разумеется, есть) SAMS и стоит ли его использовать судить только вам.
Сложности при установке
Основная проблема в установке SAMS то, что стабильная первая версия (а в настоящий момент энтузиасты продолжают разработку SAMS2, надеюсь, у них все получится) давненько не обновлялась поэтому требует установки старых библиотек не из стандартных репозиториев. “Какая глупость!” — скажете вы и будете не совсем правы, ибо как я уже говорил статья, прежде всего, новичкам совсем не знакомым с линуксом. Так же одной из проблем стало то, что HowTo по установке на CentOS(выбор ОС не тема данной статьи, так сложилось) я не нашел.
Подготовка к установке
Настройка ОС
После перезагрузки заходим в систему под суперпользователем. Дальнейшие действия я произвожу от его имени.
- Если забыли или неправильно настроили сеть, то правим конфигурацию сетевых интерфейсов ifcfg-eth0, ifcfg-eth1 (у нас же шлюз так что интерфейсов, очевидно, не менее двух)
Пример конфигурационного файла:
DEVICE=«eth0»
BOOTPROTO=none
NM_CONTROLLED=«yes»
ONBOOT=«yes»
TYPE=«Ethernet»
UU > HWADDR=6C:62:6D:B7:F0:A3
IPADDR=192.168.0.86
PREFIX=24
GATEWAY=192.168.0.3
DNS1=192.168.0.2
DNS2=192.168.0.3
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=«System eth0»
Установка программ первой необходимости:
Настройка синхронизации времени. В качестве серверов времени указываем контроллеры домена:
Пример конфигурационного файла:
Отключаем selinux. В файле /etc/sysconfig/selinux поставить
Перезагрузить сервер командой:
Установка требуемых библиотек
- Теперь добавим репозиторий CentOS 5:
И установим оттуда libmysqlclient15:
После чего сохраните файл (:wq) и удалите пакеты установленного PHP 5.3.3 выполнив команду в shell
После того как будет удален PHP (также по зависимостям удалится phpmyadmin и squirrelmail) необходимо будет провести установку нужной версии и сопутствующих расширений командами
Убедитесь, что все необходимые расширения установлены и нет ошибок
Затем установите обратно PhpMyAdmin и squirrelmail
Верните файлы конфигурации на место
После чего следует отключить возможность автоматической установки расширений PHP из репозитория atomic для избежания незапланнированной смены версии PHP при установке какого-либо программного обеспечения — отредактируйте файл /etc/yum.repos.d/atomic.repo также как редактировали файлы других репозиториев
И в завершение следует перезапустить веб-сервер Apache командой
Если потребуется установить какие-либо расширения PHP дополнительно наиболее простой способ ставить из через rpm скачав сhttp://www2.atomicorp.com/channels/atomic/centos/6/i386/RPMS/
Установка и настройка SAMS
Добавляем необходимое в автозагрузку:
Cоздаем темповую директорию для сборки SAMS:
Качаем STABLE версию SAMS (Документация по SAMS):
если не работает ссылка, то можно попробовать
Распаковываем архив и устанавливаем
Качаем STABLE версию SAMS (Документация по SAMS), собранный пакет для CentOS (сам добавляет веб-директорию для apache)
Далее настраиваем Apache, добавляем в /etc/httpd/conf.d/sams.conf
Alias /sams /usr/local/share/sams
Order Allow,Deny
Allow from all
Deny from none
раскомментируем и указываем для переменной ServerName указываем имя нашего шлюза
то можно воспользоваться редактором nano или воспользоваться фаловым менеджером Midnight Commander, команда mc (Редактирование файла F4). Чтобы выйти из программы vi набрать :w q или просто :x! Если надо выйти без сохранения, набрать :q!
После того, как был добавлен sams.conf необходимо перезапустить Apache:
Следом редактируем /etc/sams.conf, в котором меняем всего две записи:
MYSQLPASSWORD= «ПАРОЛЬ» #(Для пользователя SAMS)
MYSQLVERSION=5.0 #(Мы используем 5 версию MySQL сервера, при значении 4.0 возможны проблемы)
Так же закомментируйте все, что связано с squidguard, ldap и rejik (если не планируете использовать)
Далее на очереди MySQL, запускаем сервер и делаем все то, что предложит скрипт первого запуска, то есть задаем пароль root и после инсталляционную настройку сервера:
Создаем MySQL пользователя sams и даем ему права на необходимые таблицы:
Ввести «ПАРОЛЬ» для root в mysql
Чтобы скрипты создания баз выполнились на mysql 5 необходимо их отредактировать
#Заменяем везде TYPE=MyISAM на ENGINE=MyISAM
/usr/local/share/sams/data/sams_db.sql
/usr/local/share/sams/data/squid_db.sql
Вливаем дампы SAMS в базу:
Настала очередь Squid, собираем squid swap, и уже после запускаем прокси-сервер.
найти и отредактировать следующие строки
redirect_program /usr/local/bin/samsredir
redirect_children 5
auth_param ntlm program /usr/bin/ntlm_auth —helper-protocol=squid-2.5-ntlmssp #NTLM аутентификатор
auth_param ntlm children 150 #(Количество одновременно сидящих в инете пользователей!)
auth_param ntlm keep_alive on
auth_param basic program /usr/bin/ntlm_auth —helper-protocol=squid-2.5-basic
auth_param basic children 20
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 8 hours
Перезапускаемся и стартуем squid
C версии 1.0 SAMS работает в safe_mode php. Настриваем php для работы в режиме safe mode
safe_mode = On
safe_mode_exec_dir = «/usr/local/share/sams/bin»
disable_functions = # если он не пустой, убираем из него запрет вызова функций phpinfo system shell_exec exec
Ну и в самом конце запускаем SAMS:
Ввод шлюза в домен
- Редактируем файл (добавляем список контроллеров своего домена)
«IP_адрес_DC1» «Сетевое_имя_DC1» #(например: 192.168.100.8 serverDC01)
«IP_адрес_DC2» «Сетевое_имя_DC2»
Редактируем файл конфигурации самба
[global]
workgroup = «Имя_Домена» #(например: serverDC01)
realm = «FQDN_домена» #(например: serverDC01.firma.ru)
server string = Samba Server Version %v
netbios name = Proxy-. #имя шлюза
interfaces = lo eth0 «IP_адрес_интерфейса + маска» #(например: 192.168.10.1/24)
hosts allow = 127. 192.168.
winbind separator = \\
winbind use default domain = yes
winbind u > winbind g > winbind enum users = yes
winbind enum groups = yes
template homedir = /home/winnt/%D/%U
template shell = /bin/bash
max log size = 50
security = domain
password server = «IP_адрес_DC1» «IP_адрес_DC1» #(например:192.168.100.8 192.168.100.10 обязательно через пробел)
encrypt passwords = yes
Перестартовать сервис и ввести в домен
Перезапустить службы и проверить отклик от домена
Если все в порядке, добавляем в автозагрузку
Добавляем примерно в середине правил разрешающие правила для iptables firewall в /etc/sysconfig/iptables и перезапустить его:
-A RH-Firewall-1-INPUT -p tcp -m tcp —dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp —dport 3128 -j ACCEPT
Альтернатива:
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT #правило для 80 порта на http
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT #правило для 3128 порта прокси
Если, по каким-то причинам, необходимо отключить firewall, то надо набрать: