Это руководство предназначено как для технических энтузиастов, так и для ИТ-специалистов и предлагает простой, пошаговый процесс установки Passbolt CE в вашей системе Ubuntu 22.04. Если вы хотите повысить личную кибербезопасность или улучшить командное управление паролями, это руководство поможет вам.
Предварительные условия#
- Ubuntu 22.04 VPS
 - Минимум 2 ГБ ОЗУ
 - root-доступ по SSH или системный пользователь с привилегиями sudo.
 - Рабочий SMTP-сервер для уведомлений по электронной почте.
 
Шаг 1. Обновите системные пакеты#
Для начала войдите в свой Ubuntu 22.04 VPS, используя SSH:
1
  | ssh root@IP_Address -p Port_number
  | 
Замените «IP_Address» и «Port_number» фактическим IP-адресом вашего сервера и номером порта SSH. При необходимости замените «root» на имя пользователя вашей учетной записи sudo.
После входа в систему вы должны убедиться, что все пакеты ОС Ubuntu, установленные на сервере, обновлены. Вы можете сделать это, выполнив следующие команды:
1
  | sudo apt-get update -y && sudo apt-get upgrade -y
  | 
Шаг 2. Установите веб-сервер#
В этом руководстве мы будем использовать Nginx в качестве веб-сервера, но вы также можете выбрать Apache, если хотите. Nginx, высокоэффективный веб-сервер, в настоящее время пользуется большим спросом. Более того, он служит универсальным инструментом, способным функционировать как обратный прокси-сервер, так и кеширующий сервер. Используйте следующую команду для установки веб-сервера Nginx:
После установки мы можем включить автоматический запуск Nginx во время загрузки, выполнив следующую команду:
1
  | sudo systemctl enable nginx
  | 
Затем запустите Nginx, используя:
1
  | sudo systemctl start nginx
  | 
Если все работает как положено, вы можете проверить статус с помощью следующей команды:
1
  | sudo systemctl status nginx
  | 
Вот как должен выглядеть результат:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
  | ● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2024-04-04 07:52:27 CST; 6s ago
       Docs: man:nginx(8)
    Process: 2741 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 2742 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 2743 (nginx)
      Tasks: 3 (limit: 4558)
     Memory: 3.3M
        CPU: 44ms
     CGroup: /system.slice/nginx.service
             ├─2743 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ├─2744 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             └─2745 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
  | 
Шаг 3. Установите MariaDB#
MariaDB служит полной заменой MySQL. Он был разработан бывшими членами команды MySQL, которые выразили обеспокоенность тем, что Oracle может перевести MySQL в продукт с закрытым исходным кодом. Выполните следующую команду, чтобы установить MariaDB в Ubuntu 22.04:
1
  | sudo apt install mariadb-server mariadb-client
  | 
После установки мы можем включить автоматический запуск MariaDB во время загрузки, выполнив следующую команду:
1
  | sudo systemctl enable mariadb
  | 
Затем запустите MariaDB, используя:
1
  | sudo systemctl start mariadb
  | 
Если все работает как положено, вы можете проверить статус с помощью следующей команды:
1
  | sudo systemctl status mariadb
  | 
Вот как должен выглядеть результат:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
  | ● mariadb.service - MariaDB 10.6.16 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2024-04-04 08:02:34 CST; 19s ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 3386 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 12 (limit: 4558)
     Memory: 61.1M
        CPU: 525ms
     CGroup: /system.slice/mariadb.service
             └─3386 /usr/sbin/mariadbd
  | 
Шаг 4. Установите PHP#
Существует два основных способа установки PHP в Ubuntu. Мы воспользуемся стандартным подходом и установим PHP из репозиториев Ubuntu с помощью менеджера пакетов APT, как показано ниже:
Однако важно отметить, что этот метод не предоставляет последнюю версию PHP. В настоящее время репозиторий предоставляет только PHP 8.1.
Далее мы установим расширения PHP с помощью следующей команды:
1
  | sudo apt install php-{fpm,mysql,common,cli,opcache,readline,mbstring,xml,gd,cur,imagick,gnupg,ldap,imap,zip,bz2,intl,gmpl}
  | 
Шаг 5. Создайте базу данных и пользователя базы данных.#
Теперь, когда стек LEMP установлен, мы собираемся создать пустую базу данных для Passblot и пользователя базы данных с разрешением на доступ к этой базе данных.
Войдите в консоль MySQL и выполните следующие команды:
1
2
3
4
5
  | CREATE DATABASE passbolt;
CREATE USER 'passbolt'@'localhost' IDENTIFIED BY 'YourStrongPasswordHere';
GRANT ALL PRIVILEGES ON passbolt.* TO 'passbolt'@'localhost';
FLUSH PRIVILEGES;
EXIT;
  | 
Обязательно обновите «YourStrongPasswordHere», указав более безопасный пароль.
Шаг 6. Клонируйте репозиторий Passbolt GitHub#
После установки системных зависимостей для работы Passbolt мы клонируем репозиторий последней стабильной версии Passbolt, доступной на GitHub, выполнив следующие команды:
1
2
3
4
  | sudo apt install git 
sudo -R chown www-data:www-data /var/www/
cd /var/www/
sudo -u www-data git clone https://github.com/passbolt/passbolt_api.git
  | 
Затем откройте каталог Passbolt и установите композитор:
1
2
  | cd /var/www/passbolt_api/
sudo apt install composer
  | 
Используйте Composer для установки зависимостей PHP с помощью следующей команды:
1
  | sudo -u www-data composer install --no-dev
  | 
Он должен спросить, хотите ли вы установить права доступа к каталогу, ответьте «Y»:
Шаг 7. Создайте ключ OpenPGP#
Пользователям виртуальных частных серверов (VPS) рекомендуется установить пакет hasged, чтобы обеспечить адекватное генерирование энтропии.
1
  | sudo apt install haveged
  | 
Если все работает как положено, вы можете проверить статус с помощью следующей команды.
1
  | sudo systemctl status haveged
  | 
Вот как должен выглядеть результат:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
  | ● haveged.service - Entropy Daemon based on the HAVEGE algorithm
     Loaded: loaded (/lib/systemd/system/haveged.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2024-04-04 08:10:25 CST; 1min 14s ago
       Docs: man:haveged(8)
             http://www.issihosts.com/haveged/
   Main PID: 22174 (haveged)
      Tasks: 1 (limit: 4558)
     Memory: 3.3M
        CPU: 356ms
     CGroup: /system.slice/haveged.service
             └─22174 /usr/sbin/haveged --Foreground --verbose=1
  | 
Затем выполните следующую команду, чтобы сгенерировать новую пару ключей.
1
  | sudo -u www-data gpg --quick-gen-key --pinentry-mode=loopback 'YourFirstName YourLastName <yourMailAddress@yourDomain.com>' default default never
  | 
Замените «YourFirstName» и «YourLastName» на свое имя и фамилию, а «<yourMailAddress@yourDomain.com» на свою учетную запись электронной почты.
Если будет предложено установить пароль, просто проигнорируйте его, нажав Enter, поскольку модуль php-gnupg в настоящее время не поддерживает использование пароля.
Скопируйте закрытый и открытый ключ в папку конфигурации Passbolt, выполнив следующие команды:
1
2
3
  | sudo -u www-data gpg --armor --export-secret-keys yourMailAddress@yourDomain.com | sudo tee /var/www/passbolt_api/config/gpg/serverkey_private.asc > /dev/null
sudo -u www-data gpg --armor --export yourMailAddress@yourDomain.com | sudo tee /var/www/passbolt_api/config/gpg/serverkey.asc > /dev/null
  | 
Инициализируйте связку ключей для пользователя www-data, чтобы настроить криптографические ключи и связанные операции для пользователя www-data:
1
  | sudo -u www-data gpg --list-keys
  | 
Сохраните отпечаток ключа, чтобы использовать его позже.
Шаг 8. Настройте Passbolt#
Доступ к каталогу Passbolt:
1
  | cd /var/www/passbolt_api
  | 
Создайте копию файла конфигурации по умолчанию с помощью команды:
1
  | sudo cp config/passbolt.default.php config/passbolt.php
  | 
Откройте файл конфигурации с помощью текстового редактора:
1
  | sudo nano config/passbolt.php
  | 
Затем измените содержимое:
1
  | 'fullBaseUrl' => 'https://passbolt.yourdomain.com',
  | 
Обязательно обновите passbolt.yourdomain.com, указав URL-адрес, который вы будете использовать для подключения Passbolt.
В разделе конфигурации базы данных введите имя базы данных, имя пользователя и пароль, которые вы создали для Passbolt.
1
2
3
4
5
6
7
8
  |     // Database configuration.
    'Datasources' => [
        'default' => [
            'host' => 'localhost',
            //'port' => 'non_standard_port_number',
            'username' => 'passbolt',
            'password' => 'YourStrongPasswordHere',
            'database' => 'passbolt',
  | 
В разделе конфигурации электронной почты вам необходимо заполнить данные своей учетной записи электронной почты, которую вы будете использовать для восстановления паролей.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
  |    // Email configuration.
    'EmailTransport' => [
        'default' => [
            'host' => 'yourSMTPHostname.com',
            'port' => 465,
            'username' => 'yourSMTPUser',
            'password' => 'yourSMTPPassword',
            // Is this a secure connection? true if yes, null if no.
            'tls' => true,
            //'timeout' => 30,
            //'client' => null,
            //'url' => null,
        ],
    ],
    'Email' => [
        'default' => [
            // Defines the default name and email of the sender of the emails.
            'from' => ['yourMailAddress@yourDomain.com' => 'Passbolt'],
            //'charset' => 'utf-8',
            //'headerCharset' => 'utf-8',
        ],
    ],
  | 
В разделе GPG введите отпечаток ключа GPG, как показано ниже. Обязательно удалите все пробелы из отпечатка пальца. Кроме того, раскомментируйте строки открытого и закрытого ключей.
1
2
3
  |    'fingerprint' => 'E2E6E2EB5CE2DF9158CABBE63A22420DB732C8D3',
   'public' => CONFIG . 'gpg' . DS . 'serverkey.asc',
   'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',
  | 
Чтобы сохранить и закрыть файл, нажмите CTRL + X, а затем Y.
Шаг 9. Запустите установку#
Теперь нам нужно запустить сценарий установки от имени пользователя www-data.
1
  | sudo su -s /bin/bash -c "/var/www/passbolt_api/bin/cake passbolt install --force" www-data
  | 
Во время установки вам будет предложено создать учетную запись администратора.
1
2
3
4
5
6
7
8
9
  | User email (also called username)
> YourPassboltUser@yourdomain.com
First name
> YourFirstName
Last name
> YourLastName
User saved successfully.
To start registration follow the link provided in your mailbox or here: https://passbolt.yourdomain.com/setup/start/a97554f8-3e3f-4764-89a4-858d3a64b99f/cce4db00-3464-41fe-a3f9-d201e73e81b7
Passbolt installation success! Enjoy! ☮
  | 
После создания учетной записи вы получите URL-адрес для завершения установки в веб-браузере. Прежде чем продолжить, необходимо создать блок сервера на Nginx.
Шаг 10. Создайте блок сервера на Nginx#
Определите блок сервера для вашего домена, создав этот файл. Мы используем nano, но вы можете использовать любой текстовый редактор, который вам нравится:
1
  | sudo nano /etc/nginx/conf.d/passbolt.conf
  | 
После создания файла вставьте следующее содержимое:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
  | server {
    listen 80;
    server_name passbolt.yourdomain.com;
    root /var/www/passbolt_api/webroot/;
    error_log /var/log/nginx/passbolt_error.log;
    access_log /var/log/nginx/passbolt_access.log;
    index index.php index.html index.htm index.nginx-debian.html;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 256 16k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
    }
    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }
    location = /robots.txt {
        access_log off;
        log_not_found off;
    }
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }
    location ~* (Gruntfile|package|composer)\.(js|json)$ {
        deny all;
        access_log off;
        log_not_found off;
    }
    location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
        access_log off;
        log_not_found off;
        expires 360d;
    }
}
  | 
Обязательно обновите passbolt.yourdomain.com, указав URL-адрес, который вы будете использовать для подключения Passbolt.
Чтобы сохранить и закрыть файл, нажмите CTRL + X, а затем Y.
Вы можете проверить правильность синтаксиса, используя:
Вот как будет выглядеть результат:
1
2
3
  | # nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
  | 
Затем перезагрузите сервис Nginx, чтобы применить изменения:
Шаг 11. Установите Certbot#
Чтобы включить SSL, нам необходимо установить сертификат SSL для нашего домена/поддомена Passbolt. Выполните следующие действия, чтобы установить SSL от Let’s Encrypt с помощью certbot.
1
  | sudo apt install python3-certbot-nginx -y
  | 
После установки выполните следующую команду, чтобы установить сертификат SSL:
Вам будет предложено указать свой адрес электронной почты, принять Условия использования Let’s Encrypt TOS и выбрать, следует ли передавать свой адрес электронной почты Electronic Frontier Foundation. Затем вам нужно будет выбрать имя домена/субдомена, для которого вы хотите активировать HTTPS. Введите соответствующий номер и нажмите ENTER, чтобы выбрать веб-сайт Passbolt.
Затем Let’s Encrypt установит сертификат и предложит вам настроить перенаправление HTTP на HTTPS. Вы можете выбрать перенаправление, и certbot создаст перенаправление и перезагрузит NGINX, если все в порядке.
После запуска команды «certbot» вы получите примерно такой результат:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
  | Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): YourPassboltUser@yourdomain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y
Account registered.
Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: passbolt.yourdomain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1
Requesting a certificate for passbolt.yourdomain.com
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/passbolt.yourdomain.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/passbolt.yourdomain.com/privkey.pem
This certificate expires on 2024-07-04.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
Deploying certificate
Successfully deployed certificate for passbolt.yourdomain.com to /etc/nginx/conf.d/passbolt.conf
Congratulations! You have successfully enabled HTTPS on https://passbolt.yourdomain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  | 
Шаг 12. Завершите установку#
Passbolt совместим только с Firefox и Google Chrome. Для завершения установки вам необходимо скачать и установить расширение для браузера.
После установки расширения перейдите по URL-адресу, указанному в конце сценария установки.
Если доступ прошел успешно, мы должны создать пароль.
Когда Passbolt успешно установлен, вы можете создавать пароли.
Шаг 13. Настройте задание Cron для очереди почты Passbolt.#
Чтобы отправлять сообщения электронной почты, вам необходимо настроить запуск задания cron каждую минуту.
Вы должны добавить задание cron для пользователя, связанного с вашим веб-сервером, которым в этом руководстве является пользователь www-data. Выполните следующую команду:
1
  | sudo crontab -u www-data -e
  | 
Затем добавьте следующий контент:
1
  | * * * * * /var/www/passbolt_api/bin/cake EmailQueue.sender
  | 
Сохраните и закройте файл.
Теперь вы можете получить доступ к Passbolt Manager, используя свое доменное имя по адресу https://passbolt.yourdomain.com, и начать работу над своим проектом. Дополнительные сведения о Passbolt, его функциях и настройке см. в их официальной документации.
Если вам понравился этот пост об установке Passbolt на Ubuntu 22.04, поделитесь им с друзьями в социальных сетях или просто оставьте комментарий ниже. Спасибо.