Установка и настройка SAMS2 на CentOS 7

Обновлено и опубликовано Опубликовано:

В данной статье будет рассмотрен вопрос развертывания только системы SAMS для управления прокси-сервером SQUID. Для установки последнего читайте Установка и настройка Squid на CentOS.

Установка веб-сервера

SAMS является веб-приложением и для своей работы требует сам веб-сервер, интерпретатор PHP и СУБД. Мы установим связку Apache + PHP + MariaDB.

Apache

По умолчанию, в CentOS уже установлен данный веб-сервер. Если нет, то вводим команду:

yum install httpd

* необходимо убедиться, что в системе не запущены другие веб-серверы. Проверить это можно командой ss -tunlp, которая покажет, заняты ли порты 80 и 443.

После установки веб-сервера, разрешаем порты в брандмауэре:

firewall-cmd --permanent --add-port={80/tcp,443/tcp}

firewall-cmd --reload

И запускаем веб-сервер:

systemctl enable httpd

systemctl start httpd

Открываем веб-браузер и переходим по адресу http://<IP-адрес сервера>/ — должна открыться тестовая страница Apache:

Стартовая страница Apache

PHP

Устанавливаем php и необходимые для работы sams компоненты:

yum install php php-mysql php-mbstring php-devel php-xml php-gd php-mcrypt

Открываем конфигурационный файл apache:

vi /etc/httpd/conf/httpd.conf

Находим модуль dir_module и приводим его к виду:

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

* мы добавляем index.php перед index.html

Создаем php-скрипт:

vi /var/www/html/index.php

<?php phpinfo(); ?>

И перезагружаем apache:

systemctl restart httpd

Открываем веб-браузер и переходим по адресу http://<IP-адрес сервера>/ — должна открыться страница с подробной информацией о PHP:

Страница с подробной информацией о PHP

MariaDB

Установку сервера mariadb выполняем командой:

yum install mariadb-server

Запускаем СУБД:

systemctl enable mariadb

systemctl start mariadb

Задаем пароль пользователя root mysql:

mysqladmin -u root password

Установка SAMS

Установку панели управления выполняем в два этапа — сборка из исходников и веб-установка.

Сборка из исходников

Устанавливаем пакеты, которые нужны для сборки sams:

yum install wget unzip autoconf automake libtool pcre-devel libstdc++-devel gcc-c++ mariadb-devel

Скачиваем исходник sams:

wget https://github.com/PavelVinogradov/sams2/archive/master.zip

Распаковываем архив:

unzip master.zip

Переходим в распакованный каталог:

cd sams2-master

Открываем исходный файл proxy.h:

vi src/proxy.h

И добавляем : long ко всем значения параметров, которые начинаются на enum — получится:

...
enum TrafficType: long
...
enum usrAuthType: long
...
enum RedirType: long
...
enum ParserType: long
...
enum CharCase: long
...

Компилируем исходник:

make -f Makefile.cvs

Конфигурируем его:

sh ./configure

Мы получим что-то на подобие:

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.

Создаем каталог для копирования данных:

mkdir /usr/local/share/sams2/data

Собираем исходник и инсталлируем sams:

make

make install

Настройка веб-сервера

Создаем конфигурационный файл в apache:

vi /etc/httpd/conf.d/sams.conf

Alias /sams /usr/local/share/sams2
<Directory /usr/local/share/sams2/>
    AddDefaultCharset UTF-8
    <RequireAny>
        Require ip 192.168.0.0/16
    </RequireAny>
</Directory>

* в данном примере мы создаем алиас — при обращении к странице /sams веб-сервер будет искать скрипты в каталоге /usr/local/share/sams2. Доступ к порталу будет разрешен из подсети 192.168.0.0/16.

Перезагружаем httpd:

systemctl restart httpd

Входим в оболочку mysql:

mysql -uroot -p

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

> CREATE DATABASE sams2db DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

> GRANT ALL PRIVILEGES ON sams2db.* TO sams2user@localhost IDENTIFIED BY 'sams2password';

> \q

Веб-установка

Открываем конфигурационный файл sams:

vi /usr/local/etc/sams2.conf

Редактируем следующие строки:

...
DB_USER=sams2user
...
DB_PASSWORD=sams2password
...

* где DB_USER — имя mysql-пользователя; DB_PASSWORD — пароль mysql-пользователя.

Открываем веб-браузер и переходим по адресу http://<IP-адрес сервера>/sams/ — откроется страница установки SAMS2:

Страница установки SAMS2

... кликаем по Run setup program >>.

В следующем окне выбираем язык и кодировку:

Выбираем язык и кодировку

... нажимаем Next >>.

Система проведет начальную проверку:

Начальная проверка при установке SAMS

Директиву safe_mode можно проигнорировать — кликаем по Далее >>.

Заполняем поля пользователя mysql, снимаем галочку Создать пользователя SAMS для доступа к базе данных:

Создание пользователя mysql

* пользователь и пароль — те, которые мы создали в оболочке mysql.

На последней странице завершаем установку:

Завершение установки

После завершения установки авторизовываемся в системе. Логин и пароль по умолчанию — admin / qwerty.

Настройка CentOS

Установка на этом не завершена. Для корректной работы консоли управления необходимо внести настройки в систему и Squid.

Настройка демона

Для работы службы sams2 копируем файл ее запуска:

cp redhat/init.d /etc/init.d/sams2

* подразумевается, что мы все еще находимся в каталоге sams2-master, распакованного исходника.

Открываем на редактирование данный файл:

vi /etc/init.d/sams2

Меняем:

[ -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 и запускаем его:

systemctl enable sams2

systemctl start sams2

Настройка Squid

При попытке внести какие либо изменения в консоли управления SAMS мы не увидим никаких изменений в конфигурационном файле SQUID. Проблема в том, что sams ориентируется по специальным комментариям, которых нет в конфиге последнего под CentOS.

Открываем конфигурационный файл squid.conf:

vi /etc/squid/squid.conf

... и в самый верх добавим:

# TAG: acl

# TAG: url_rewrite_access

# TAG: url_rewrite_program

# TAG: url_rewrite_children

# TAG: delay_pools

# TAG: delay_class

# TAG: delay_access

# TAG: delay_parameters

# TAG: http_access

# TAG: http_access2

# TAG: icp_access
 

* важно, чтобы между метками были разделяющие пустые строки.

Теперь можно заходить на sams и настраивать SQUID.

# Управление # Серверы # Интернет # CentOS
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет