Categories: Шпаргалки

Установка и запуск менеджера паролей 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:

Веб-сервер работает. Мы готовы к установке 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 — откроется окно начальной конфигурации.

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

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

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

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

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

admin

Recent Posts

Что такое Zulip

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

8 месяцев ago

Что такое Zookeeper

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

8 месяцев ago

Что такое Zimbra

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

8 месяцев ago

Что такое Zabbix

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

8 месяцев ago

Что такое YouTube

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

8 месяцев ago

Что такое yota

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

8 месяцев ago