Чтобы установить менеджер паролей Passbolt на сервер с Ubuntu выполните следующие шаги

Сразу: не пытайтесь развернуть это решение на проде без конфигурации брандмауэра, защищённого соединения и актуального ПО. Безопасность здесь не факультативна, а требование по умолчанию.

Перед стартом – проверьте, установлены ли следующие компоненты: sudo, curl, gnupg, lsb-release. Нет? Устанавливайте сразу:

apt update && apt install sudo curl gnupg lsb-release -y

Забудьте про инсталляцию через Snap или Flatpak – здесь нужны только официальные deb-пакеты и строгий контроль над зависимостями. Доверие к PPA? Только к официальному источнику. Лишнее добавление сторонних репозиториев – мина замедленного действия.

Важно! Не запускайте установку на неподдерживаемой версии системы. Минимум – 20.04 LTS. Лучше – 22.04 LTS. Проверено. Всё, что ниже, вызывает проблемы с совместимостью зависимостей.

Обновление ядра? Только если знаете, что делаете. Используйте стабильный релиз без кастомных сборок – вы здесь не ради экспериментов, а ради рабочего инструмента. Это не песочница. Это продакшн.

Схема подключения: только HTTPS. HTTP – мёртв. Вам нужен certbot и доступ к порту 443. Убедитесь, что DNS-запись A указывает на ваш IP и порт проброшен. Без этого дальше идти бессмысленно.

Внимание! Не используйте root для запуска веб-сервера или сервиса. Создайте отдельного пользователя. Привяжите права. Иначе – привет, уязвимости.

Будет много зависимостей: PHP (и не любой, а строго >= 8.1), MariaDB или MySQL, Nginx или Apache, GPG-ключи, cron. Ошиблись с версией PHP – получите белый экран. Пропустили конфигурацию cron – сломается отправка уведомлений. Здесь нет права на лень. Всё критично.

Готовы? Тогда не отвлекайтесь. Эта система либо работает стабильно, либо не работает вообще. Полумер не существует.

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

Сначала обновите индекс пакетов. Без этого – поломки, конфликты, головная боль.

Читайте также:  Настройка SMTP-реле между двумя серверами Postfix на Ubuntu

apt update && apt upgrade -y

Нужны: sudo, curl, gnupg, lsb-release, ca-certificates. Не тяните за собой недостающие зависимости на этапе сборки. Ставьте сразу:

apt install sudo curl gnupg2 ca-certificates lsb-release -y

Не используйте сторонние скрипты. Только официальные ключи и проверенные источники. Добавьте ключ для пакетов разработчика:

curl -fsSL https://download.passbolt.com/pub.key | gpg --dearmor -o /usr/share/keyrings/passbolt-repo.gpg

Дальше – подключение официального источника пакетов. Не ошибитесь с именем дистрибутива. Автоопределение через lsb_release -cs иногда врёт. Лучше явно указывать версию:

echo "deb [signed-by=/usr/share/keyrings/passbolt-repo.gpg] https://download.passbolt.com/ce/apt jammy main" | tee /etc/apt/sources.list.d/passbolt.list

jammy – это 22.04. Для 20.04 используйте focal. Проверяйте. Неправильная строка – ошибки при разрешении зависимостей.

Внимание! Не добавляйте PPA с PHP вручную. Используйте ppa:ondrej/php только если понимаете, как управлять конфликтами версий. Любое обновление может снести совместимость.

Обновляем список снова, теперь с новым источником:

apt update

Поддерживаем порядок в системе. Удалите мусор, отключите ненужные репозитории. Не превращайте окружение в свалку. Чем чище, тем стабильнее.

Важно помнить: Все команды должны выполняться от имени пользователя с правами sudo. Не запускайте их от root без необходимости. Минимизируйте риск.

Установка Passbolt и настройка веб-сервера Nginx

Ставить надо только через APT. Никаких .tar.gz, никаких curl | bash. Только официальный пакет:

Читайте также:  Как установить Filezilla в Ubuntu 16.04, 14.04 и LinuxMint 18

apt install passbolt-ce-server -y

После установки не трогайте конфиги вручную. Первичная настройка – через встроенный скрипт. Не пропускайте его:

sudo passbolt-ce-setup

Будет серия вопросов: база, SMTP, GPG. Ошиблись – сломаете всё. Читайте внимательно. Не используйте root-пароли от MySQL. Создайте отдельного пользователя. Без прав на DROP, только SELECT/INSERT/UPDATE/DELETE.

Теперь к nginx. Apache? Нет. Только nginx. Почему? Производительность. Предсказуемость. Меньше сюрпризов.

Сначала глушим default:

rm /etc/nginx/sites-enabled/default

Создаём конфигурацию под имя хоста:

nano /etc/nginx/sites-available/passbolt

Пример:


server {
listen 80;
server_name vault.example.com;
nginxEditroot /usr/share/php/passbolt/webroot;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires max;
log_not_found off;
}
}

Путь до сокета PHP может отличаться. Проверьте:

ls /run/php/

Активируем конфигурацию:

ln -s /etc/nginx/sites-available/passbolt /etc/nginx/sites-enabled/passbolt

Проверяем синтаксис:

nginx -t

Перезапуск:

systemctl reload nginx

Внимание! Не открывайте доступ по HTTP в публичной сети. Без шифрования тут нельзя. Это не браузерный игрушечный сайт, это хранилище ключей.

Система должна видеть nginx, PHP-FPM, MySQL и GPG как работающие процессы. Один не встал – всё ломается. Проверяйте статус:

systemctl status php8.1-fpm nginx mysql

Важно помнить: Не оставляйте интерфейс конфигурации открытым после инициализации. Удалите или закройте доступ через правила nginx. Без этого – открытая дыра.

Если всё сделано правильно – по адресу откроется веб-интерфейс. Если нет – логи в /var/log/nginx/*. Ошибка 502? Проблема с PHP-FPM. Ошибка 403? Неправильные права. Ошибка 500? Конфиг PHP или база. Не гадайте – читайте логи. Они всё скажут.

Читайте также:  Системные вызовы в ядре Linux

Настройка HTTPS с помощью Let’s Encrypt и начальная конфигурация Passbolt

Не откладывайте SSL. Без шифрования всё, что вы делаете, теряет смысл. Ставьте certbot из snap, не из репозиториев. Там мусор и устаревшее ПО:

snap install core && snap refresh core
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot

Проверьте DNS. A-запись обязана указывать на внешний IP. Иначе – ошибка авторизации у Let’s Encrypt. Не проверяйте на localhost, это бессмысленно.

Далее – один выстрел:

certbot --nginx -d vault.example.com

Почта – валидная. Никаких no-reply@. Это не формальность. Если домен не резолвится публично – ничего не сработает. Проверяйте через dig:

dig +short vault.example.com

После генерации сертификата certbot сам врежет блок в конфигурацию nginx. Проверьте руками. Не доверяйте автогенерации на 100%. Иногда криво вставляет редиректы.

Внимание! Настройте автоматическое обновление сертификатов. Иначе через 90 дней придёт тишина и 526 от Cloudflare. Добавьте в crontab:

echo "0 3 * * * /usr/bin/certbot renew --quiet" >> /etc/crontab

Теперь – финальный штрих. Переход в браузер по адресу https://vault.example.com. В первый раз откроется мастер конфигурации. Если этого не происходит – смотрите в nginx error.log.

На этапе генерации GPG-ключей не используйте нестандартные длины. Только 4096. Только RSA. Только через мастер. Ручная генерация = конфликт ключей.

Имя администратора, email, пароль – всё пишите корректно. Повторно этот шаг не пройти. Придётся чистить базу вручную и сбрасывать конфиги.

Важно помнить: После завершения мастера убедитесь, что интерфейс установки недоступен. Любой доступ к /setup должен возвращать 403. Это не мелочь – это угроза.

Проверка: откройте root-страницу. Если загрузка медленная – проверьте php-fpm. Если ошибка с сессиями – права на /var/lib/php/sessions. Всё. Дальше – эксплуатация. И логирование.