Categories: Шпаргалки

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

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

К сожалению, SAMS2 слабо поддерживается и мне не удалось установить его на свежие версии дистрибутивов Linux. В данном примере используется Ubuntu 16.04.

Также, нас ждет проблема из-за версии PHP — SAMS2 разработан с использованием версии до 7, а поддержки php5.6 для Ubuntu 16 уже нет. Мы внесем небольшое изменение в код SAMS2, чтобы он работал с PHP 7.

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

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

Apache

Для установки apache в Ubuntu вводим команду:

apt install apache2

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

ss -tunlp | grep -e «:80|:443»

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

iptables -I INPUT -p tcp —dport 80 -j ACCEPT

iptables -I INPUT -p tcp —dport 443 -j ACCEPT

Для сохранения правил используем iptables-persistent:

apt-get install iptables-persistent

netfilter-persistent save

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

systemctl enable apache2

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

PHP

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

apt install php php-mysql php-mbstring php-dev php-xml php-gd libapache2-mod-php

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

vi /etc/apache2/mods-available/dir.conf

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

<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

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

Разрешаем модуль rewrite:

a2enmod rewrite

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

vi /var/www/html/index.php

<?php phpinfo(); ?>

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

systemctl restart apache2

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

MariaDB

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

apt install mariadb-server

Разрешаем автозапуск СУБД:

systemctl enable mysql

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

mysqladmin -u root password

Установка SAMS

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

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

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

apt install unzip libpcre3 libpcre3-dev libmysqlclient-dev

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

wget —no-check-certificate https://github.com/PavelVinogradov/sams2/archive/master.zip

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

unzip master.zip

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

cd sams2-master

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

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 -p /usr/local/share/sams2/data

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

make

В процессе сборки у меня возникла ошибка ../libtool: line 7486: cd: no: No such file or directory. Решение описано ниже.

make install

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

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

vi /etc/apache2/sites-enabled/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 .

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

systemctl restart apache2

Входим в оболочку 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_ENGINE=MySQLi

DB_USER=sams2user

DB_PASSWORD=sams2password

* где

  • DB_USER — имя mysql-пользователя;
  • DB_PASSWORD — пароль mysql-пользователя.
  • DB_ENGINE — драйвер для подключения к базе данных. Его нужно временно изменить, чтобы программа дала себя установить.

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

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

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

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

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

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

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

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

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

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

Настройка Ubuntu

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

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

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

cp debian/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 ориентируется по специальным комментариям, которых нет в конфиге последнего под Ubuntu.

Открываем конфигурационный файл 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.

Возможные проблемы

При выполнении команды make при сборке sams2, мы получаем ошибку:

../libtool: line 7486: cd: no: No such file or directory

* номер линии 7486 может отличаться.

Причина: неверная интерпретация переменной absdir в скрипте сборки.

Решение: для решения можно жестко указать значение для переменной absdir .

Открываем файл:

vi libtool +7486

* где 7486 — номер строки, которая показана в тексте ошибки.

Строку:

absdir=`cd «$dir» && pwd`

… меняем на:

absdir=»/usr/lib»

Снова запускаем make.

admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

2 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

2 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

2 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

2 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

2 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

2 месяца ago