Это руководство предназначено как для технических энтузиастов, так и для ИТ-специалистов и предлагает простой, пошаговый процесс установки 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, поделитесь им с друзьями в социальных сетях или просто оставьте комментарий ниже. Спасибо.