Установка и настройка sysPass на Debian 11 с HTTPS

О чём эта инструкция
Эта инструкция шаг за шагом показывает, как установить и защитить sysPass — веб-приложение для управления паролями, написанное на PHP. Подходит для одиночных серверов и малых команд. Прежде чем начать, проверьте раздел Требования ниже.
Важно: все команды выполняйте под пользователем с правами root или через sudo.
Основные преимущества и варианты использования
- Бесплатное и с открытым исходным кодом
- Групповой и профильный контроль доступа
- Шифрование паролей с использованием мастер-пароля
- Хранение файлов и встроенный просмотр изображений
- Интеграция с OpenLDAP / Active Directory
- Уведомления по электронной почте
Требования
- Сервер с Debian 11.
- Действующий DNS: имя домена указывает на IP сервера (например, syspass.example.com).
- Настроен root-пароль или доступ через sudo.
Шаг 1. Установка Apache, MariaDB и PHP
sysPass работает в связке Apache + PHP и использует MariaDB. Установите все требуемые пакеты одной командой:
apt-get install apache2 mariadb-server libapache2-mod-php php php-mysqli php-pdo php-pear php php-cgi php-cli php-common php-gd php-json php-readline php-curl php-intl php-ldap php-xml php-mbstring git -yПосле установки отредактируйте php.ini для Apache:
nano /etc/php/7.4/apache2/php.iniИзмените или добавьте следующие параметры (в примере указаны рекомендуемые значения):
post_max_size = 100M
upload_max_filesize = 100M
max_execution_time = 7200
memory_limit = 512M
date.timezone = Asia/KolkataПримечание: значение date.timezone приведено в исходном примере. Замените его на ваш часовой пояс, например Europe/Moscow или America/New_York.
Сохраните файл и примените изменения:
systemctl restart apache2Шаг 2. Создание и защита MariaDB
По умолчанию MariaDB требует первичной настройки безопасности. Запустите скрипт:
mysql_secure_installationСледуйте подсказкам: переключение на unix_socket, установка пароля root (если нужно), удаление анонимных пользователей, запрет удалённого входа root, удаление тестовой базы и перезагрузка таблиц привилегий.
Затем войдите в MariaDB и создайте базу и пользователя для sysPass:
mysql -u root -p
MariaDB [(none)]> create database syspassdb;
MariaDB [(none)]> grant all privileges on syspassdb.* to syspassuser@localhost identified by "password";
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;Важно: замените “password” на надёжный пароль и сохраните его в безопасном месте. Позже эти данные потребуются при установке через веб-интерфейс.
Шаг 3. Установка sysPass из Git
Скачайте репозиторий и переместите в корень сайта Apache:
git clone https://github.com/nuxsmin/sysPass.git
mv sysPass /var/www/html/syspass
chown -R www-data:www-data /var/www/html/syspassУстановите права на конфигурационные и backup-папки:
chmod 750 /var/www/html/syspass/app/{config,backup}Шаг 4. Установка Composer и зависимостей PHP
Создайте скрипт установки Composer:
nano /var/www/html/syspass/install-composer.shВставьте следующий скрипт (как в оригинальной инструкции):
#!/bin/sh
EXPECTED_SIGNATURE="$(wget -q -O - https://composer.github.io/installer.sig)"
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
ACTUAL_SIGNATURE="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"
if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]
then
>&2 echo 'ERROR: Invalid installer signature'
rm composer-setup.php
exit 1
fi
php composer-setup.php --quiet
RESULT=$?
rm composer-setup.php
exit $RESULTСделайте скрипт исполняемым и выполните установку:
cd /var/www/html/syspass/
sh install-composer.sh
php composer.phar install --no-devПосле выполнения всех зависимостей приложение готово к первичной настройке.
Шаг 5. Конфигурация виртуального хоста Apache
Создайте файл конфигурации:
nano /etc/apache2/sites-available/syspass.confВставьте конфигурацию виртуального хоста (замените ServerName и ServerAdmin на ваши значения):
ServerAdmin [email protected]
DocumentRoot "/var/www/html/syspass"
ServerName syspass.example.com
Options MultiViews FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
TransferLog /var/log/apache2/syspass_access.log
ErrorLog /var/log/apache2/syspass_error.log
Активируйте сайт и перезапустите Apache:
a2ensite syspass
systemctl restart apache2
systemctl status apache2Проверьте, что сервис работает и нет ошибок в логах /var/log/apache2/syspass_error.log.
Шаг 6. Доступ к веб-интерфейсу sysPass
Откройте в браузере http://syspass.example.com (замените на ваш домен). На странице установки заполните поля: админ-пользователь, пароль, мастер-пароль, данные базы данных, язык и режим развёртывания, затем нажмите кнопку УСТАНОВИТЬ.


После завершения вы попадёте на страницу входа:

Введите учётные данные администратора и нажмите кнопку входа. Вы увидите панель управления:

Шаг 7. Включение HTTPS с Let’s Encrypt
Установите Certbot для Apache:
apt-get install python3-certbot-apache -yЗапустите Certbot для вашего домена:
certbot --apache -d syspass.example.comСледуйте подсказкам: укажите email, примите условия, при необходимости разрешите перенаправление HTTP → HTTPS.
После успешной установки сертификата Certbot создаст ssl-виртуальный хост и настроит автоматическое обновление. Проверить конфигурацию можно на https://www.ssllabs.com/ssltest/ (опционально).
Важно: сертификаты Let’s Encrypt действительны 90 дней. Certbot обычно настраивает автоматическое обновление через cron или systemd timer. Проверьте, что команда certbot renew работает корректно.
Рекомендации по безопасности и эксплуатация
Жёсткая конфигурация PHP и Apache
- Ограничьте права на папки приложения (как выше). Пользователь Apache (www-data) должен быть владельцем.
- Закройте доступ к файлам конфигурации и резервным копиям через .htaccess или конфигурацию виртуального хоста.
- Отключите ненужные PHP-модули.
- Регулярно обновляйте систему и пакеты (apt update && apt upgrade).
Шифрование и мастер-пароль
- Мастер-пароль — критичный секрет. Он обеспечивает двунаправленное шифрование паролей в базе. Храните его у доверенных администраторов.
- Настройте политику сложности паролей и двухфакторную аутентификацию, если доступно.
Резервные копии и восстановление
SOP для бэкапов (базовая процедура):
- Остановите запись в приложении (режим обслуживания) или убедитесь в консистентности.
- Создайте дамп базы данных:
mysqldump -u root -p syspassdb > /root/syspassdb-$(date +%F).sql- Архивируйте директорию приложения и папку backup:
tar -czf /root/syspass-files-$(date +%F).tar.gz /var/www/html/syspass- Скопируйте архивы и дамп в удалённое хранилище или сервис (S3, rsync, внешний диск).
- Тестируйте восстановление на тестовой машине минимум раз в квартал.
Критерии приёмки:
- Приложение отвечает по HTTPS.
- Вход администратора подтверждён.
- Приложение успешно шифрует/расшифровывает тестовый пароль.
- Бэкап базы и файлов успешно восстановлен в тестовой среде.
Резервные сценарии и частые ошибки
Когда установка может не сработать:
- Неверные права доступа на папки (403 Forbidden).
- Неправильные данные подключения к базе (ошибка при установке в веб-интерфейсе).
- SELinux/AppArmor блокирует доступ (на Debian по умолчанию не активен в жёстком режиме, но проверьте локальные политики).
- Брандмауэр блокирует порты 80/443.
Быстрая проверка проблем:
- Просмотрите логи Apache: /var/log/apache2/syspass_error.log
- Посмотрите логи PHP: /var/log/php7.4-fpm.log или системный журнал
- Проверка соединения с БД: mysql -u syspassuser -p -h localhost syspassdb
Роль‑ориентированные контрольные списки
Администратор (DevOps):
- Подготовить сервер и DNS.
- Установить и настроить Apache, MariaDB, PHP.
- Выполнить бэкап до обновлений.
- Настроить Certbot и автоматическое обновление сертификатов.
Администратор приложения (sysadmin):
- Настроить политики паролей и права доступа.
- Установить правила аудита и логирования.
- Управлять группами пользователей и ролями.
Пользователь (конечный):
- Создать мастер-пароль и сохранить его в безопасном месте.
- Использовать рекомендованную политику паролей для записей.
- Вести отдельные заметки о доступе и хранить бэкапы личных данных.
Альтернативные подходы и миграция
- Docker: развёртывание sysPass в контейнере упрощает переносимость и версионирование окружения. Решение подходит, если вы уже используете контейнерную платформу.
- Managed Vaults: для предприятий рассмотрите коммерческие SaaS-решения или HashiCorp Vault при необходимости секретного управления на уровне машин и сервисов.
- Миграция: экспорт логинов через CSV/JSON из существующего менеджера и импорт в sysPass (проверьте формат и соответствие полей).
Решение: если требуется быстрая установка — используйте системный путь (как в этой инструкции). Для масштабируемости и изоляции — Docker / Kubernetes.
Мини‑методология тестирования (smoke tests)
Тестовые сценарии:
- Доступ по HTTPS к главной странице — код 200.
- Успешная регистрация/вход администратора.
- Создание записи пароля и её последующее чтение.
- Шифрование базы: сохранить резервную копию и проверить, что в дампе пароли хранятся в зашифрованном виде (не в открытом тексте).
- Обновление сертификатов: выполнить certbot renew –dry-run.
Безопасность и соответствие (коротко)
- Минимизируйте круг администраторов с доступом к мастер-паролю.
- Логирование и аудит: включите запись действий администраторов и входов.
- Конфиденциальность: если в записях хранится персональная информация (PII), убедитесь в соответствии с локальными правилами обработки данных (GDPR при работе с ЕС).
FAQ
Как обновить sysPass до новой версии?
- Сохраните бэкап базы и файлов приложения.
- Перейдите в каталог /var/www/html/syspass и выполните git pull.
- Обновите зависимости Composer: php composer.phar install –no-dev
- Проверьте права и перезапустите Apache.
Как сменить мастер-пароль?
В веб-интерфейсе sysPass должна быть функция смены мастер-пароля в профиле администратора. Перед сменой убедитесь, что у вас есть актуальный бэкап — ошибка смены может привести к потере доступа к зашифрованным данным.
Где хранятся бэкапы, и как их восстановить?
По умолчанию бэкапы можно хранить в app/backup внутри каталога приложения. Для восстановления:
- Восстановите дамп базы через mysql < dump.sql
- Восстановите файлы приложения и права доступа.
Заключение
Вы установили sysPass, настроили базовую безопасность и получили HTTPS на Let’s Encrypt. Рекомендуется настроить регулярные бэкапы, мониторинг сертификатов и периодические тесты восстановления. Храните мастер-пароль в надёжном месте и ограничьте доступы по принципу наименьших привилегий.
Краткие выводы:
- sysPass готов к использованию в малых командах.
- HTTPS обязателен для безопасности доступа.
- Бэкапы и тесты восстановления критичны для надёжности.
Спасибо за установку. Если нужна помощь с Docker-опцией или интеграцией с LDAP/AD — можно расширить инструкцию под вашу инфраструктуру.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента