Поиск по сайту:

Как установить менеджер паролей Passbolt на Rocky Linux


На этой странице

  1. Предпосылки
  2. Установка зависимостей пакетов
  3. Настройка MariaDB и PHP-FPM
  4. Создание новой базы данных для Passbolt
  5. Загрузите Passbolt и установите зависимости PHP
  6. Создать ключ GPG для сервера
  7. Настройка серверных блоков Passbolt и Nginx
  8. Доступ к Passbolt из веб-браузера
  9. Заключение

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 для своей команды.