Как установить менеджер паролей Passbolt на Rocky Linux
На этой странице
- Предпосылки
- Установка зависимостей пакетов
- Настройка MariaDB и PHP-FPM
- Создание новой базы данных для Passbolt
- Загрузите Passbolt и установите зависимости PHP
- Создать ключ GPG для сервера
- Настройка серверных блоков Passbolt и Nginx
- Доступ к Passbolt из веб-браузера
- Заключение
Passbolt — это бесплатный менеджер паролей с открытым исходным кодом, основанный на PHP, MySQL и OpenPGP. Это собственный сервер приложений, вы можете установить его на свой сервер. Passbolt в первую очередь предназначен для команд, но вы также можете использовать его в качестве персонального менеджера паролей.
Passbolt построен на OpenPGP и имеет расширяемый API. На стороне клиента вы можете использовать расширение браузера Passbolt, основанное на OpenPGP.js для функций шифрования. На стороне сервера Passbolt использует PHP-расширение GnuPG и openpgp-php для проверки ключа и аутентификации пользователя. Passbolt использует протокол GPGAuth для аутентификации пользователей.
Предпосылки
В этой статье вы узнаете, как установить автономный менеджер паролей Passbolt на сервер Rocky Linux. Вы будете устанавливать Passbolt с PHP 7.4, сервером MariaDB и веб-сервером Nginx.
В этом примере мы будем использовать следующие данные сервера:
- Операционная система: Rocky Linux 8.4 (зеленый обсидиан)
- IP-адрес: 192.168.1.10
- Доменное имя, в этом примере будет использоваться: https://pass.example.io.
Теперь давайте начнем установку Passbolt.
Установить зависимости пакетов
Во-первых, вы будете добавлять новые репозитории и устанавливать зависимости некоторых пакетов в систему Rocky Linux.
1. Выполните следующую команду, чтобы включить репозиторий PowerTools и установить репозиторий Extra Packages for Enterprise Linux (EPEL).
sudo dnf config-manager --set-enabled powertools
sudo dnf install epel-release -y
2. Выполните следующую команду, чтобы включить репозиторий PHP 7.4.
sudo dnf module enable php:7.4 -y
3. Затем установите PHP-FPM, MariaDB, Nginx и некоторые дополнительные пакеты с помощью приведенной ниже команды DNF.
sudo dnf install -y nginx mariadb-server mariadb php php-intl php-gd php-mysqlnd php-pear php-devel php-mbstring php-fpm php-json php-ldap gcc gpgme gpgme-devel git policycoreutils-python-utils unzip haveged make gcc
4. После завершения установки выполните следующую команду, чтобы загрузить сценарий установки PHP composer.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Теперь снова выполните следующую команду, чтобы установить компоновщик PHP в общесистемной среде.
php composer-setup.php
sudo mv composer.phar /usr/bin/composer
Проверьте команду композитора PHP, как показано ниже.
sudo -u nginx composer --version
Вы получите аналогичный результат, как показано ниже.
Composer version 2.1.12 2021-11-09 16:02:04
5. Затем установите PHP-расширения GnuPG из репозитория PHP Extension Community Library (PECL).
pecl install gnupg
После этого включите PHP-расширение GnuPG с помощью следующей команды.
echo "extension=gnupg.so" > /etc/php.d/gnupg.ini
6. Теперь запустите и включите некоторые службы с помощью приведенной ниже команды systemctl.
sudo systemctl enable --now nginx
sudo systemctl enable --now mariadb
sudo systemctl enable --now php-fpm
sudo systemctl enable --now haveged
Теперь вы завершили установку зависимостей пакетов для Passbolt.
Настройка MariaDB и PHP-FPM
На этом этапе вы будете настраивать корневой пароль MariaDB и службу PHP-FPM.
1. Выполните следующую команду, чтобы настроить пароль root для MariaDB.
mysql_secure_installation
Введите новый надежный пароль для пользователя root MariaDB и повторите, затем введите Y, чтобы согласиться со всеми конфигурациями MariaDB.
2. Затем отредактируйте файл конфигурации /etc/php.ini с помощью редактора nano.
nano /etc/php.ini
Раскомментируйте параметр date.timezone и измените значение на часовой пояс вашего сервера.
date.timezone = Europe/Paris
Сохраните конфигурацию и выйдите.
3. Отредактируйте конфигурацию PHP-FPM /etc/php-fpm.d/www.conf с помощью редактора nano.
nano /etc/php-fpm.d/www.conf
Измените пользователя и группу по умолчанию для PHP-FPM на nginx.
user = nginx
group = nginx
Раскомментируйте listen.owner и listen.group и измените значение на пользователя nginx.
listen.owner = nginx
listen.group = nginx
Сохраните конфигурацию и выйдите.
Теперь примените новую конфигурацию PHP-FPM, перезапустив службу PHP-FPM с помощью приведенной ниже команды systemctl.
sudo systemctl restart php-fpm
И вы завершили базовую настройку PHP-FPM и создали новый пароль для пользователя root MariaDB.
Создать новую базу данных для Passbolt
Чтобы создать новую базу данных для установки Passbolt, войдите в оболочку MariaDB с помощью приведенной ниже команды mysql.
mysql -u root -p
1. Создайте новую базу данных passdb, используя следующий запрос.
CREATE DATABASE passdb;
2. Предоставьте новому пользователю все права доступа к базе данных passdb. Следующий запрос автоматически создаст нового пользователя MariaDB passbolt.
GRANT ALL ON passdb.* to IDENTIFIED BY 'PassboltdbPass';
3. Перезагрузите все привилегии для таблиц.
FLUSH PRIVILEGES;
Теперь введите EXIT и нажмите Enter, чтобы выйти из оболочки MariaDB.
Перейдите к следующему шагу, чтобы начать установку Passbolt.
Загрузите Passbolt и установите зависимости PHP
На этом этапе вы загрузите исходный код Passbolt на свой сервер и установите зависимости PHP с помощью компоновщика PHP.
1. Измените текущий рабочий каталог на /var/www и клонируйте источник Passbolt, используя команду, как показано ниже.
cd /var/www/
git clone https://github.com/passbolt/passbolt_api.git passbolt
Установка passbolt находится в /var/www/passbolt
2. Измените владельца каталога установки Passbolt на пользователя nginx.
sudo chown -R nginx:nginx /var/www/passbolt
3. Перейдите в каталог установки Passbolt и установите зависимости PHP с помощью команды PHP composer. И обязательно запускайте команду PHP composer от имени пользователя nginx.
cd /var/www/passbolt
sudo -u nginx composer install --no-dev
Если установка всех зависимостей PHP завершена, перейдите к следующему шагу, чтобы сгенерировать ключ GPG.
Сгенерировать ключ GPG для сервера
На этом этапе вы создадите новый ключ GPG для сервера Passbolt.
Текущее расширение PHP openpgp-php и GnuPG PHP по-прежнему не поддерживают парольные фразы, поэтому вы будете создавать новый ключ GPG без парольной фразы.
1. Чтобы сгенерировать ключ GPG, выполните приведенную ниже команду gpg.
gpg --gen-key
Введите свое имя и адрес электронной почты и не используйте кодовую фразу.
gpg (GnuPG) 2.2.20; Copyright (C) 2020 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Note: Use "gpg --full-generate-key" for a full featured key generation dialog.
GnuPG needs to construct a user ID to identify your key.
Real name: johndoe
Email address: >
sub rsa2048 2021-11-16 [E] [expires: 2023-11-16]
Также запишите отпечаток вашего нового ключа. В этом примере отпечатком ключа является BCD52DF829FF8F9408A2F1B214F31ED1FBEBAD9A.
2. Затем экспортируйте ключ GPG в каталог установки passbolt /var/www/passbolt/config/gpg/.
gpg --armor --export-secret-keys > /var/www/passbolt/config/gpg/serverkey.asc
На этом этапе вы должны принять к сведению информацию о вашем ключе GPG, как показано ниже.
- Отпечаток пальца: BCD52DF829FF8F9408A2F1B214F31ED1FBEBAD9A
- Электронная почта: [email
- Открытый ключ: serverkey.asc
- Закрытый ключ: serverkey_private.asc
3. Затем вы должны сгенерировать каталог GNUPG для пользователя nginx с помощью следующей команды.
sudo su -s /bin/bash -c "gpg --list-keys" nginx
Вы увидите аналогичный вывод, как показано ниже.
gpg: directory '/var/lib/nginx/.gnupg' created
gpg: keybox '/var/lib/nginx/.gnupg/pubring.kbx' created
gpg: /var/lib/nginx/.gnupg/trustdb.gpg: trustdb created
Nou, который у вас есть, завершает настройку ключа GPG для Passbolt. Перейдите к следующему шагу для настройки Passbolt.
Настройка серверных блоков Passbolt и Nginx
На этом шаге вы будете настраивать доменное имя установки Passbolt, базу данных и ключ GPG.
Прежде чем начать, измените рабочий каталог на каталог /var/www/passbolt.
export PASSBOLT=/var/www/passbolt/
cd $PASSBOLT
1. Скопируйте конфигурацию по умолчанию в файл passbolt.php, затем отредактируйте его с помощью редактора nano.
cp config/passbolt.default.php config/passbolt.php
nano config/passbolt.php
Измените параметр fullBaseUrl при установке доменного имени Passbolt. Для этого примера https://pass.example.io
'App' => [
// comment
'fullBaseUrl' => 'https://pass.example.io',
// comment..
],
Измените конфигурацию базы данных с вашим пользователем и паролем MariaDB ниже.
// Database configuration.
'Datasources' => [
'default' => [
'host' => 'localhost',
//'port' => 'non_standard_port_number',
'username' => 'passbolt',
'password' => 'PassboltdbPass',
'database' => 'passdb',
],
],
Скопируйте и вставьте свой отпечаток пальца GPG и раскомментируйте общедоступные и частные параметры.
'gpg' => [
//
// COMMENT REMOVED
//
'serverKey' => [
// Server private key fingerprint.
'fingerprint' => '38E3736DD02860F8CBA57BB99C8B82A2C3A6959F',
'public' => CONFIG . 'gpg' . DS . 'serverkey.asc',
'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',
],
Сохраните конфигурацию и выйдите.
2. Затем создайте новую конфигурацию серверных блоков Nginx /etc/nginx/conf.d/passbolt.conf с помощью редактора nano.
nano /etc/nginx/conf.d/passbolt.conf
Скопируйте и вставьте следующую конфигурацию и обязательно измените имя домена и путь сертификатов SSL.
server {
listen 80;
server_name pass.example.io;
return 302 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name pass.example.io;
root /var/www/passbolt;
ssl_certificate /etc/letsencrypt/live/pass.example.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/pass.example.io/privkey.pem;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off; # Requires nginx >= 1.5.9
# ssl_stapling on; # Requires nginx >= 1.3.7
# ssl_stapling_verify on; # Requires nginx => 1.3.7
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
location / {
try_files $uri $uri/ /index.php?$args;
index index.php;
}
location ~ \.php$ {
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_split_path_info ^(.+\.php)(.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SERVER_NAME $http_host;
}
location ~* \.(jpe?g|woff|woff2|ttf|gif|png|bmp|ico|css|js|json|pdf|zip|htm|html|docx?|xlsx?|pptx?|txt|wav|swf|svg|avi|mp\d)$ {
access_log off;
log_not_found off;
try_files $uri /webroot/$uri /index.php?$args;
}
}
Сохраните конфигурацию и выйдите.
Теперь проверьте конфигурацию Nginx и убедитесь, что у вас нет ошибок, а затем перезапустите службу Nginx.
nginx -t
sudo systemctl restart nginx
3. Затем измените рабочий каталог на /var/www/passbolt и запустите установку Passbolt с помощью команды, как показано ниже.
cd /var/www/passbolt
sudo su -s /bin/bash -c "./bin/cake passbolt install" nginx
В конце процесса установки Passbolt вы создадите нового администратора для Passbolt.
Введите свой адрес электронной почты, имя и фамилию. Затем скопируйте ссылку для установки Passbolt.
Доступ к Passbolt из веб-браузера
Откройте веб-браузер и вставьте ссылку для установки Passbolt, сгенерированную установщиком Passbolt, в адресную строку.
1. Passbolt автоматически обнаружит ваш веб-браузер и покажет ссылку для установки расширения браузера Passbolt.
Нажмите кнопку Загрузить расширение и установите расширение браузера Passbolt.
2. Введите новый надежный пароль и нажмите кнопку Далее.
3. Загрузите комплект восстановления на локальный компьютер и нажмите кнопку Далее. Вы можете использовать комплект восстановления для сброса парольной фразы Passbolt.
4. Выберите цвет своего токена безопасности Passbolt и обязательно запомните эти три буквы. Нажмите кнопку Далее еще раз.
5. Теперь вы будете перенаправлены на панель управления пользователя Passbolt, как показано ниже.
6. Список пользователей Passbolt.
И вы завершили установку менеджера паролей Passbolt.
Заключение
Поздравляем! Вы успешно установили менеджер паролей Passbolt с PHP-FPM, сервером MariaDB и веб-сервером Nginx на Rocky Linux.
На следующем шаге вы можете создать новых пользователей passbolt для своей команды.