Установка и запуск менеджера паролей sysPass на Linux Ubuntu / Debian

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

Используемые термины: MariaDB, NGINX, PHP.

sysPass является веб-приложением, разработанным на PHP. Для его работы мы развернем инфраструктуру, состоящую из следующих компонентов:

  • СУБД MariaDB.
  • Интерпретатор PHP версии 7.4 (согласно требованиям приложения).
  • Веб-сервер NGINX.

Работать будем в Linux Deb — инструкция подойдет для Ubuntu / Debian / Astra Linux.

Подготовка

Прежде чем мы перейдем к развертыванию инфраструктуры для веб-сервера, подготовим нашу систему.

Системные требования

Изучаем системные требования для sysPass. На момент обновления инструкции, последняя версия была 3.1 и для нее необходимо было установить MariaDB >= 10.1 и PHP >= 7.0. Также обратите внимание на список расширений последнего, которые нужны для работы веб-приложения.

Несмотря на то, что версия PHP указана от 7, с версией 8 приложение не работает. Правильное ограничение для sysPass версии 3.1 PHP >= 7.3 и <= 7.4.

Установка пакетов

Для корректной установки пакетов в системах на базе DEB, нам нужно обновить кэш репозиториев. Выполняем команду:

apt update

Если наша система новая и на ней не запущено критически важных приложений, выполним также обновление всех установленных пакетов:

apt upgrade

Устанавливаем git — он нужен для загрузки проекта:

apt install git

Настройка брандмауэра:

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

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

Для продуктивного использования лучше всего опубликовать приложение на защищенном https. Тогда также мы открываем порт 443:

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

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

apt install iptables-persistent

netfilter-persistent save

Мы готовы к развертыванию инфраструктуры для sysPass.

СУБД

Начнем с установки сервера баз данных. Для начала посмотрим, какую версию предложит установить система из встроенного репозитория:

apt search --names-only '^mariadb-server-[0-9]+'

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

apt install mariadb-server

* если версия пакета mariadb-server не соответствует требованию, то нужно подключить репозиторий разработчика и выполнить установку из него. Подробнее про это читайте в инструкции Установка MariaDB-server на Rocky Linux или Ubuntu.

После установки СУБД, заходим в ее оболочку:

mysql

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

> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root123!@#');

* где root123!@# — мой пароль, который я хочу использовать в своем примере.

Выходим из оболочки SQL:

> quit

PHP

На момент обновления инструкции, список необходимых расширений был такой:

  • mysql
  • curl
  • json
  • gd
  • xml
  • mbstring
  • intl
  • readline

Также, как было сказано выше, необходимо установить PHP версию 7.4. Смотрим, какую версию предлагает установленные репозитории:

apt search --names-only '^php[.0-9]{3}$'

Скорее всего, она будет другой. Для установки альтернативной версии подготовим репозиторий. Это подробно описано в инструкциях:

1. Установка разных версий PHP на Linux Ubuntu.

2. Установка разных версий PHP на Linux Debian.

После выполним установку нужной версии как PHP, так и его компонентов. Для этого зададим переменную:

export PHP_VER=7.4

И выполним команду:

apt install php${PHP_VER} php${PHP_VER}-fpm php${PHP_VER}-mysql php${PHP_VER}-curl php${PHP_VER}-json php${PHP_VER}-gd php${PHP_VER}-xml php${PHP_VER}-mbstring php${PHP_VER}-intl php${PHP_VER}-readline

Если в вашей системе встроенный репозиторий предлагает нужную нам версию PHP, то просто вводим:

apt install php php-fpm php-mysql php-curl php-json php-gd php-xml php-mbstring php-intl php-readline

Установка PHP завершена.

Веб-сервер

Выполняем установку nginx. Но сначала нам нужно убедиться, что другой популярный веб-сервер отключен:

systemctl disable apache2 --now

Если ваш сервер уже используется для работы другого сервиса, возможно, что apache нужен и его выключение не является хорошей идеей. В данном случае, необходимо уточнить, можно ли его отключить или поднимать sysPass не с использованием NGINX, продолжив использовать Apache.

Устанавливаем веб-сервер:

apt install nginx

Открываем конфигурацию по умолчанию:

vi /etc/nginx/sites-enabled/default

Вносим следующие правки:

server {
        ...
        root /var/www/html;

        index index.php index.html ... ;
        ...
        location ~ \.php$ {
            set $root_path /var/www/html;
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_param DOCUMENT_ROOT $root_path;
        }

        ...
}

* желтым отмечено, что нужно добавить (изменить) в Ваш конфигурационный файл:

  • root — путь домашней директории веб-сервера.
  • index — скрипты, которые будут запускаться, если они явно не указаны в URL-адресе.
  • location — секция для обработки скриптов php. В нашем примере она выполняется с помощью php-fpm. Обратите внимание на версию и имени сокетного файла php7.4-fpm.sock. Если бы версия PHP была другой, то имя файла также было бы другим.

Проверяем конфигурацию и перечитываем ее:

nginx -t && nginx -s reload

Создаем домашнюю директорию:

mkdir -p /var/www/html

И в ней индексный файл index.php:

vi /var/www/html/index.php

<?php

phpinfo();

?>

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

Страница PHPINFO

Веб-сервер работает. Мы готовы к установке sysPass.

Установка sysPass

Наши действия мы разделим на 3 части.

Загрузка файлов

Создаем каталог syspass в домашней директории веб-сервера. В нашем примере это:

mkdir /var/www/html/syspass

Клонируем git-проект sysPass в созданный каталог:

git clone https://github.com/nuxsmin/sysPass.git /var/www/html/syspass

Задаем права:

chown www-data:www-data -R /var/www/html/syspass

chmod 750 /var/www/html/syspass/app/config /var/www/html/syspass/app/backup

* служба, которая обрабатывает PHP работает от пользователя www-data, поэтому владелец должен быть соответственный.

Composer

Устанавливаем зависимости с помощью php composer.

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

cd /var/www/html/syspass

Скачиваем установщик composer:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

Выполняем установку композера:

php composer-setup.php

С его помощью теперь устанавливаем зависимости для sysPass:

php composer.phar install --no-dev

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

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

Задаем имя пользователя и пароль администратора системы, а также мастер пароль:

Настраиваем начальные секреты в sysPass

Задаем настройки подключения к базе данных:

Подключаем sysPass к серверу баз данных

* мы должны указать логин и пароль от учетной записи с полными правами. В нашем случае это пользователь root и пароль, который мы создали ранее (root123!@#).

В качестве основных настроек выбираем удобный язык (русского нет):

Меняем языковые настройки, если потребуется

Установка завершена. Нас выкинет в окно аутентификации — вводим логин admin и заданный пароль:

Окно входа в систему sysPass

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

Да            Нет