SysPass на Rocky Linux — установка и настройка
Важно: следуйте секциям по безопасности (SELinux, файрвол, HTTPS). Если вы используете публичный домен — примените сертификаты от Let’s Encrypt.

SysPass — это менеджер паролей с открытым исходным кодом, написанный на PHP и использующий шифрование AES-256 CTR. Проект ориентирован на централизованное и совместное управление паролями: много пользователей, группы, профили, история учётных записей, точки восстановления, импорт/экспорт (KeePass, CSV), API и публичные анонимные ссылки для обмена без логина.
В этом руководстве вы поэтапно установите SysPass на сервер с Rocky Linux (версии 8 или 9): подготовите LAMP-стек (Apache/httpd, MariaDB, PHP 7.4), поставите Composer для управления зависимостями, настроите SELinux и виртуальный хост с SSL, затем выполните веб-инсталляцию и проверку.
Для кого эта инструкция
- Системным администраторам и инженерам DevOps, которые развертывают внутренние сервисы.
- IT-администраторам, желающим централизовать пароли и доступы.
- Тем, кто хочет понять реальные шаги по безопасности (SELinux, HTTPS, права файлов).
Короткое определение: LAMP — набор Apache (httpd), MariaDB/MySQL, PHP.
Содержание
- Требования
- Установка httpd (Apache)
- Настройка firewalld
- Установка и защита MariaDB
- Установка PHP 7.4 (REMl)
- Установка Composer
- Скачивание SysPass, права и Composer-зависимости
- Настройка SELinux
- Конфигурация виртуального хоста и SSL
- Веб-инсталляция SysPass
- Контрольный список и критерии приёмки
- Безопасность и рекомендации
- Устранение неполадок
- Резюме и ресурсы
Требования
- Сервер с Rocky Linux 8 или 9.
- Неразрешённый (non-root) пользователь с sudo-привилегиями.
- Полное доменное имя (FQDN), указывающее на IP сервера (рекомендуется для получения валидного SSL).
- Доступ к интернету для загрузки пакетов и зависимостей.
Примечание: в тестовой среде можно использовать самоподписанные сертификаты, но в продакшне применяйте Let’s Encrypt или коммерческий CA.
Установка веб-сервера (httpd / Apache)
На Rocky Linux httpd доступен в репозиториях BaseOS/AppStream. Установите пакет и включите сервис:
sudo dnf install httpdПодтвердите установку (Y) и запустите сервис:
sudo systemctl start httpd
sudo systemctl enable httpd
sudo systemctl status httpd
Если firewalld включён, откройте HTTP и HTTPS:
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-services
Совет: проверьте доступность http://localhost и, при наличии DNS/hosts, http://<ваш-домен>.
Установка и защита MariaDB
SysPass поддерживает MySQL/MariaDB. Установите MariaDB и выполните базовую защиту:
sudo dnf install mariadb-server
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo systemctl status mariadb
Запустите скрипт безопасности MariaDB:
sudo mysql_secure_installationТипичные ответы (рекомендации):
- Change authentication to unix_socket? — n
- Change root password? — y (введите надёжный пароль)
- Disable remote root login? — y
- Remove anonymous users? — y
- Remove test database and access to it? — y
- Reload privilege tables now? — y
После этого MariaDB будет защищённой базовой установкой.

Совет: для продакшна создайте отдельного пользователя баз данных для SysPass с ограниченными привилегиями вместо использования root.
Пример создания базы и пользователя:
sudo mysql -u root -p
CREATE DATABASE syspass CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'syspassuser'@'localhost' IDENTIFIED BY 'СильныйПароль';
GRANT ALL PRIVILEGES ON syspass.* TO 'syspassuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;Критерий: база создана, пользователь существует, доступ к базе с учёткой syspassuser подтверждён.
Установка PHP 7.4 (REMl)
SysPass требует PHP 7.4. На Rocky Linux рекомендуется использовать репозиторий REMI.
Для Rocky Linux 8:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpmДля Rocky Linux 9:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpmПросмотрите доступные модули PHP:
sudo dnf module list phpВключите модуль remi-7.4 и установите набор пакетов PHP:
sudo dnf module enable php:remi-7.4
sudo dnf install -y php php-pear php-cgi php-cli php-common php-gd php-json php-mysql php-readline php-curl php-intl php-ldap php-mcrypt php-xml php-mbstring php-zipПримечание: имена пакетов могут слегка отличаться в зависимости от версии дистрибутива; проверьте доступность через dnf.
После установки отредактируйте файл php.ini. В исходной инструкции указан путь для Debian-подобных систем (/etc/php/7.4/apache2/php.ini), на Rocky Linux путь обычно /etc/php.ini. Проверьте фактическое расположение и измените параметры:
sudo nano /etc/php.ini
# Рекомендуемые изменения
post_max_size = 120M
upload_max_filesize = 120M
max_execution_time = 6000
memory_limit = 256M
date.timezone = Europe/StockholmУстановите свою временную зону, например Europe/Moscow или другой по месту. Затем перезапустите httpd:
sudo systemctl restart httpdСовет: проверьте phpinfo через временную страницу, если нужно (удалите её после теста).
Установка Composer
Composer используется для установки PHP-зависимостей Symfony/пакетов проекта.
Установка официальным инсталлятором:
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composerПроверка:
sudo -u apache composer -v
Альтернатива: установить composer как глобальный пакет через dnf (если доступен), либо через пакетный менеджер дистрибутива. Предпочтительна официальная установка для получения последней версии.
Скачивание SysPass, права и зависимости
Установите git/unzip и клонируйте репозиторий:
sudo dnf install git unzip -y
sudo git clone https://github.com/nuxsmin/sysPass.git /var/www/syspassУстановите владельца и права (httpd работает от пользователя apache на Rocky Linux):
sudo chown -R apache:apache /var/www/syspass
sudo chmod 750 /var/www/syspass/app/config /var/www/syspass/app/backupСоздайте кэш для Composer и отдайте права:
sudo mkdir -p /usr/share/httpd/.cache
sudo chown -R apache:apache /usr/share/httpd/.cacheЗапустите установку зависимостей под пользователем apache:
cd /var/www/syspass
sudo -u apache composer install --no-interaction --no-dev

Важно: если установка зависимостей завершается ошибками, проверьте версии PHP-расширений и права доступа к сети/прокси.
Настройка SELinux
Если SELinux включён в режиме enforcing, выполните необходимые настройки, чтобы httpd мог корректно работать с файлами SysPass и при необходимости подключаться к LDAP.
Установите утилиту semanage (policycoreutils-python-utils):
sudo dnf install policycoreutils-python-utils -yДобавьте права и метки:
sudo setsebool -P httpd_can_connect_ldap 1
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/syspass/app/(config|backup|cache|temp)(/.*)?"
sudo restorecon -R -v /var/www/syspassПояснение: semanage fcontext -a назначает контекст SELinux для каталогов, которые веб-сервер должен менять (чтение/запись). restorecon применяет метки к файлам на диске.
Проверка текущих меток:
ls -laZ /var/www/syspassСовет: если вы используете LDAP или внешние сервисы, дополнительно проверьте другие setsebool (например, httpd_can_network_connect для сетевых подключений к БД по TCP).
Конфигурация виртуального хоста (httpd) и SSL
Установите mod_ssl:
sudo dnf install mod_ssl -yДля локальной тестовой машины можно сгенерировать самоподписанный сертификат (используется конфиг /etc/httpd/conf.d/ssl.conf):
sudo openssl req -newkey rsa:4096 -x509 -sha512 -days 365 -nodes -out /etc/pki/tls/certs/localhost.crt -keyout /etc/pki/tls/private/localhost.keyДля продакшна используйте Let’s Encrypt (certbot) и получите сертификат для вашего домена.
Создайте файл виртуального хоста /etc/httpd/conf.d/syspass.conf (измените ServerName и пути к сертификатам):
#
# File: syspass.conf
#
RedirectMatch "^/$" "/index.php"
DirectoryIndex index.php
Options -Indexes -FollowSymLinks -Includes -ExecCGI
Require expr "%{REQUEST_URI} =~ m#.*/index\.php(\?r=)?#"
Require expr "%{REQUEST_URI} =~ m#.*/api\.php$#"
Require expr "%{REQUEST_URI} =~ m#^/?$#"
Require all granted
ServerName syspass.howtoforge.local
ServerAdmin webmaster@localhost
DocumentRoot /var/www/syspass
ErrorLog /var/log/httpd/error.log
CustomLog /var/log/httpd/access.log combined
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
ServerName syspass.howtoforge.local
ServerAdmin webmaster@localhost
DocumentRoot /var/www/syspass
ErrorLog /var/log/httpd/error.log
CustomLog /var/log/httpd/access.log combined
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/syspass.howtoforge.local/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/syspass.howtoforge.local/privkey.pem
SSLOptions +StdEnvVars
SSLOptions +StdEnvVars
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
Сохраните файл и проверьте синтаксис Apache:
sudo apachectl configtest
# ожидаемый вывод: Syntax OK
sudo systemctl restart httpdСовет: в конфиге замените ServerName и пути к сертификатам на ваши. Для автоматического обновления сертификатов используйте systemd timer или cron от certbot.
Веб-инсталляция SysPass
Откройте браузер и перейдите по адресу https://<ваш-домен> (например: https://syspass.howtoforge.local). В веб-инсталляторе:
- Создайте административную учётную запись и мастер-пароль. Используйте надёжные, легко запоминаемые для админа и мастер-пароль (мастер-пароль безопаснее хранить в менеджере).

Введите данные подключения к базе: пользователь (рекомендуется не root), пароль и имя базы. SysPass может создать таблицы автоматически.
Выберите язык установки, затем нажмите INSTALL.

После успешной установки вы увидите страницу логина. Войдите под созданной админ-учёткой.

Если логин успешен, откроется панель управления SysPass.

Контрольный список перед переходом в продакшн
- Домен настроен и указывает на сервер.
- SSL от валидного CA (Let’s Encrypt или платный) установлен и автоматически обновляется.
- Права на каталоги установлены: владелец apache, конфиги с ограниченными правами.
- SELinux: метки применены и проверены.
- База данных создана, отдельный пользователь для приложения с минимальными привилегиями.
- Резервирование: регулярные бекапы базы данных и каталога /var/www/syspass/app/backup.
- Доступ по SSH ограничен, 2FA для админов (если доступно).
Критерии приёмки (минимум):
- Сервис доступен по HTTPS.
- Успешная регистрация/логин администратора и основная функциональность (создание записи) работают.
- Резервная копия базы и каталога конфигурации существует и восстановление протестировано.
Безопасность и рекомендации
- Храните мастер-пароль отдельно и используйте сложную политику паролей для администраторов.
- Ограничьте доступ к панели администрирования по IP (если применимо) или используйте VPN/Zero Trust.
- Включите HTTPS и отключите TLS 1.0/1.1, используйте современные шифры.
- Регулярно обновляйте ОС, PHP и зависимости Composer.
- Ограничьте размер загрузки файлов и включите rate limiting при необходимости.
- Настройте мониторинг логов и алерты на подозрительную активность.
Пример hardening для Apache (рекомендации):
- Отключите ненужные модульные расширения.
- Установите заголовки безопасности (Content-Security-Policy, X-Frame-Options, X-Content-Type-Options).
Пример конфигурации заголовков:
# добавить в конфигурацию Apache
Header always set X-Frame-Options "DENY"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "no-referrer"
Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'"Резервное копирование и откат (Runbook)
SOP: ежедневная автоматическая выгрузка базы и архива каталога приложения.
Пример простого скрипта бэкапа (cron):
# /usr/local/bin/backup_syspass.sh
DB_USER=syspassuser
DB_PASS='ВашПароль'
DB_NAME=syspass
BACKUP_DIR=/var/backups/syspass
mkdir -p ${BACKUP_DIR}
DATE=$(date +"%F_%H%M")
mysqldump -u${DB_USER} -p${DB_PASS} ${DB_NAME} | gzip > ${BACKUP_DIR}/${DB_NAME}_${DATE}.sql.gz
tar czf ${BACKUP_DIR}/syspass_www_${DATE}.tar.gz /var/www/syspass/app/config /var/www/syspass/app/backup
# ротация: удалить старые бэкапы старше 30 дней
find ${BACKUP_DIR} -type f -mtime +30 -deleteОткат: остановите httpd, восстановите файлы и импортируйте дамп базы, затем перезапустите сервис.
Устранение неполадок — типовые ошибки и решения
Ошибка при composer install — недостаток PHP-расширений:
- Проверьте вывод composer. Установите отсутствующие расширения PHP (php-mbstring, php-xml и т. д.).
500 Internal Server Error после установки:
- Проверьте /var/log/httpd/error.log и /var/www/syspass/app/log.
- Проверьте права и метки SELinux (ls -laZ).
Невозможно подключиться к базе данных из веб-инсталлятора:
- Убедитесь, что указаны правильные хост/пользователь/пароль.
- Если база на отдельном хосте — разрешите подключение и проверьте firewall (port 3306).
SSL не применяется или неверный сертификат:
- Проверьте пути SSLCertificateFile/SSLCertificateKeyFile.
- Для Let’s Encrypt проверьте /etc/letsencrypt/live/
и права на приватный ключ.
Проблемы с LDAP-аутентификацией:
- Убедитесь, что httpd_can_connect_ldap включён в SELinux.
- Проверьте подключение к LDAP с сервера через ldapsearch.
Альтернативные подходы и советы
- СУБД: можно использовать удалённый MySQL/MariaDB, но убедитесь в защищённом соединении (TLS) и ограниченной сети.
- Контейнеризация: запускать SysPass в контейнере (Docker/Kubernetes) — удобно для изоляции, но потребуется настроить персистентное хранилище и управление секретами.
- High-availability: настройка кластерной БД и балансировщика нагрузки для критичных установок.
Роли и чек-листы (кто что делает)
Администратор системы:
- Установить ОС, обновления и пакеты.
- Настроить firewall, SELinux и бэкапы.
- Настроить резервирование и мониторинг.
DevOps / Инженер-развёртывания:
- Настроить виртуальные хосты, CI/CD, автоматическое обновление сертификатов.
- Настроить контейнерные образы (если применимо).
Информационная безопасность:
- Ревью конфигураций Apache и PHP.
- Настроить политики паролей и аудит доступа.
Мини-методология миграции с KeePass/CSV
- Экспортируйте базу из KeePass в CSV/Keepass XML.
- Проверьте CSV на наличие специальных символов и кодировки (UTF-8).
- В веб-интерфейсе SysPass используйте импорт; сначала протестируйте на копии базы.
- Проверьте соответствие полей (логин, пароль, URL, метки).
Глоссарий (1-строчные определения)
- LAMP: стек Apache + MariaDB + PHP.
- SELinux: механизм обязательного контроля доступа в Linux.
- Composer: менеджер зависимостей для PHP.
- FQDN: полное доменное имя (Fully Qualified Domain Name).
Частые вопросы (FAQ)
Q: Можно ли запускать SysPass на PHP 8? A: Рекомендуется использовать PHP 7.4, как указано в документации проекта. Перед обновлением проверьте совместимость и тестируйте в staging.
Q: Как настроить автоматическое обновление сертификатов Let’s Encrypt? A: Установите certbot и используйте systemd timer или cron для выполнения certbot renew; перезапускайте httpd после обновления.
Q: Где хранятся резервные копии и как их настроить? A: SysPass имеет каталог app/backup для внутренних бэкапов; дополнительно создавайте внешние бэкапы базы и конфигов по cron.
Резюме
Вы установили и настроили SysPass на Rocky Linux: развернули LAMP (Apache, MariaDB, PHP 7.4), установили Composer, скачали исходники и зависимости, настроили права и SELinux, создали виртуальный хост с SSL и завершили веб-инсталляцию. Далее рекомендуется настроить автоматические бэкапы, мониторинг и политику безопасности.
Ключевые шаги: подготовка окружения → установка зависимостей → права и SELinux → настройка HTTPS → веб-инсталляция → тестирование и бэкапы.
Короткое объявление (для рассылки, 100–200 слов):
SysPass — открытый менеджер паролей, пригодный для командной работы. В этой заметке показано, как развернуть SysPass на Rocky Linux: подготовить LAMP-стек (Apache/httpd, MariaDB, PHP 7.4), установить Composer, настроить SELinux, создать виртуальный хост с SSL и выполнить веб-инсталляцию. В руководстве включены чек-листы, рекомендации по безопасности, runbook для бэкапа и советы по устранению ошибок. После установки вы получите центральную систему для хранения и совместного использования паролей, а также возможность интеграции с LDAP и импортом из KeePass/CSV.
Похожие темы: миграция с KeePass, настройка LDAP для веб-приложений, hardening Apache и PHP.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента