Это руководство предназначено как для технических энтузиастов, так и для ИТ-специалистов и предлагает простой, пошаговый процесс установки Passbolt CE в вашей системе Ubuntu 22.04. Если вы хотите повысить личную кибербезопасность или улучшить командное управление паролями, это руководство поможет вам.
Предварительные условия
- Ubuntu 22.04 VPS
- Минимум 2 ГБ ОЗУ
- root-доступ по SSH или системный пользователь с привилегиями sudo.
- Рабочий SMTP-сервер для уведомлений по электронной почте.
Шаг 1. Обновите системные пакеты
Для начала войдите в свой Ubuntu 22.04 VPS, используя SSH:
ssh root@IP_Address -p Port_number
Замените «IP_Address» и «Port_number» фактическим IP-адресом вашего сервера и номером порта SSH. При необходимости замените «root» на имя пользователя вашей учетной записи sudo.
После входа в систему вы должны убедиться, что все пакеты ОС Ubuntu, установленные на сервере, обновлены. Вы можете сделать это, выполнив следующие команды:
sudo apt-get update -y && sudo apt-get upgrade -y
Шаг 2. Установите веб-сервер
В этом руководстве мы будем использовать Nginx в качестве веб-сервера, но вы также можете выбрать Apache, если хотите. Nginx, высокоэффективный веб-сервер, в настоящее время пользуется большим спросом. Более того, он служит универсальным инструментом, способным функционировать как обратный прокси-сервер, так и кеширующий сервер. Используйте следующую команду для установки веб-сервера Nginx:
sudo apt install nginx
После установки мы можем включить автоматический запуск Nginx во время загрузки, выполнив следующую команду:
sudo systemctl enable nginx
Затем запустите Nginx, используя:
sudo systemctl start nginx
Если все работает как положено, вы можете проверить статус с помощью следующей команды:
sudo systemctl status nginx
Вот как должен выглядеть результат:
● 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:
sudo apt install mariadb-server mariadb-client
После установки мы можем включить автоматический запуск MariaDB во время загрузки, выполнив следующую команду:
sudo systemctl enable mariadb
Затем запустите MariaDB, используя:
sudo systemctl start mariadb
Если все работает как положено, вы можете проверить статус с помощью следующей команды:
sudo systemctl status mariadb
Вот как должен выглядеть результат:
● 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, как показано ниже:
sudo apt install php
Однако важно отметить, что этот метод не предоставляет последнюю версию PHP. В настоящее время репозиторий предоставляет только PHP 8.1.
Далее мы установим расширения PHP с помощью следующей команды:
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 и выполните следующие команды:
sudo mysql -u root
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, выполнив следующие команды:
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 и установите композитор:
cd /var/www/passbolt_api/
sudo apt install composer
Используйте Composer для установки зависимостей PHP с помощью следующей команды:
sudo -u www-data composer install --no-dev
Он должен спросить, хотите ли вы установить права доступа к каталогу, ответьте «Y»:
Шаг 7. Создайте ключ OpenPGP
Пользователям виртуальных частных серверов (VPS) рекомендуется установить пакет hasged, чтобы обеспечить адекватное генерирование энтропии.
sudo apt install haveged
Если все работает как положено, вы можете проверить статус с помощью следующей команды.
sudo systemctl status haveged
Вот как должен выглядеть результат:
● 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
Затем выполните следующую команду, чтобы сгенерировать новую пару ключей.
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, выполнив следующие команды:
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:
sudo -u www-data gpg --list-keys
Сохраните отпечаток ключа, чтобы использовать его позже.
Шаг 8. Настройте Passbolt
Доступ к каталогу Passbolt:
cd /var/www/passbolt_api
Создайте копию файла конфигурации по умолчанию с помощью команды:
sudo cp config/passbolt.default.php config/passbolt.php
Откройте файл конфигурации с помощью текстового редактора:
sudo nano config/passbolt.php
Затем измените содержимое:
'fullBaseUrl' => 'https://passbolt.yourdomain.com',
Обязательно обновите passbolt.yourdomain.com, указав URL-адрес, который вы будете использовать для подключения Passbolt.
В разделе конфигурации базы данных введите имя базы данных, имя пользователя и пароль, которые вы создали для Passbolt.
// Database configuration.
'Datasources' => [
'default' => [
'host' => 'localhost',
//'port' => 'non_standard_port_number',
'username' => 'passbolt',
'password' => 'YourStrongPasswordHere',
'database' => 'passbolt',
В разделе конфигурации электронной почты вам необходимо заполнить данные своей учетной записи электронной почты, которую вы будете использовать для восстановления паролей.
// 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, как показано ниже. Обязательно удалите все пробелы из отпечатка пальца. Кроме того, раскомментируйте строки открытого и закрытого ключей.
'fingerprint' => 'E2E6E2EB5CE2DF9158CABBE63A22420DB732C8D3',
'public' => CONFIG . 'gpg' . DS . 'serverkey.asc',
'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',
Чтобы сохранить и закрыть файл, нажмите CTRL + X, а затем Y.
Шаг 9. Запустите установку
Теперь нам нужно запустить сценарий установки от имени пользователя www-data.
sudo su -s /bin/bash -c "/var/www/passbolt_api/bin/cake passbolt install --force" www-data
Во время установки вам будет предложено создать учетную запись администратора.
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, но вы можете использовать любой текстовый редактор, который вам нравится:
sudo nano /etc/nginx/conf.d/passbolt.conf
После создания файла вставьте следующее содержимое:
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.
Вы можете проверить правильность синтаксиса, используя:
sudo nginx -t
Вот как будет выглядеть результат:
# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Затем перезагрузите сервис Nginx, чтобы применить изменения:
systemctl reload nginx
Шаг 11. Установите Certbot
Чтобы включить SSL, нам необходимо установить сертификат SSL для нашего домена/поддомена Passbolt. Выполните следующие действия, чтобы установить SSL от Let’s Encrypt с помощью certbot.
sudo apt install python3-certbot-nginx -y
После установки выполните следующую команду, чтобы установить сертификат SSL:
certbot
Вам будет предложено указать свой адрес электронной почты, принять Условия использования Let’s Encrypt TOS и выбрать, следует ли передавать свой адрес электронной почты Electronic Frontier Foundation. Затем вам нужно будет выбрать имя домена/субдомена, для которого вы хотите активировать HTTPS. Введите соответствующий номер и нажмите ENTER, чтобы выбрать веб-сайт Passbolt.
Затем Let’s Encrypt установит сертификат и предложит вам настроить перенаправление HTTP на HTTPS. Вы можете выбрать перенаправление, и certbot создаст перенаправление и перезагрузит NGINX, если все в порядке.
После запуска команды «certbot» вы получите примерно такой результат:
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. Выполните следующую команду:
sudo crontab -u www-data -e
Затем добавьте следующий контент:
* * * * * /var/www/passbolt_api/bin/cake EmailQueue.sender
Сохраните и закройте файл.
Теперь вы можете получить доступ к Passbolt Manager, используя свое доменное имя по адресу https://passbolt.yourdomain.com, и начать работу над своим проектом. Дополнительные сведения о Passbolt, его функциях и настройке см. в их официальной документации.
Если вам понравился этот пост об установке Passbolt на Ubuntu 22.04, поделитесь им с друзьями в социальных сетях или просто оставьте комментарий ниже. Спасибо.