Как установить Padloc Password Manager на Rocky Linux 8
На этой странице
- Предпосылки
- Шаг 1. Брандмауэр
- Шаг 2. Установите Docker
- Шаг 3. Установите Docker-Compose
- Шаг 4. Создание каталогов данных
- Шаг 5. Создание файла Docker Compose
- Шаг 6. Настройка NGinx
- Шаг 7. Создание файла среды
- Шаг 8. Установите SSL
- Шаг 9. Настройка SSL
- Шаг 10. Запустите Padloc
- Шаг 11. Доступ и настройка Padloc
- Шаг 12. Обновите Padloc
- Заключение
Padloc — это облачное решение для управления паролями, которое позволяет вам получать доступ и использовать сохраненные пароли на нескольких платформах. Он предлагает простой интерфейс и может использоваться для сохранения ваших паролей, а также для шифрования и хранения конфиденциальных документов. Он также поддерживает хранение токенов двухфакторной аутентификации и может добавлять их прямо с веб-страницы.
Padloc также предлагает автономное решение с открытым исходным кодом, которое вы можете установить на любой сервер, чтобы сохранить полный контроль над своими данными. Однако в этом есть оговорка. Вы не можете использовать собственное приложение с его настольными и мобильными приложениями. С другой стороны, Padloc служит PWA (прогрессивное веб-приложение), что означает, что вы можете установить его как собственное приложение на мобильном устройстве и воспользоваться несколькими его функциями.
В этом руководстве вы узнаете, как установить Padloc Password Manager на сервер под управлением Rocky Linux 8.
Предпосылки
- Сервер под управлением Rocky Linux 8 с оперативной памятью не менее 1 ГБ.
- Пользователь без полномочий root с привилегиями sudo.
- Полное доменное имя (FQDN), указывающее на сервер, например
example.com
. Мы предполагаем, что в этом руководстве вы будете использовать только одно доменное имя для этого сервера.
Шаг 1 — Брандмауэр
Первым шагом является настройка брандмауэра. Rocky Linux использует Firewalld Firewall. Проверьте состояние брандмауэров.
$ sudo firewall-cmd --state running
Брандмауэр работает с разными зонами, и мы будем использовать публичную зону по умолчанию. Перечислите все службы и порты, активные на брандмауэре.
$ sudo firewall-cmd --permanent --list-services
Он должен показать следующий вывод.
cockpit dhcpv6-client ssh
Разрешить порты HTTP и HTTPS.
$ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=https
Перепроверьте состояние брандмауэра.
$ sudo firewall-cmd --permanent --list-services
Вы должны увидеть аналогичный вывод.
cockpit dhcpv6-client http https ssh
Перезагрузите брандмауэр, чтобы изменения вступили в силу.
$ sudo firewall-cmd --reload
Шаг 2 — Установите Докер
Rocky Linux поставляется со старой версией Docker. Чтобы установить последнюю версию, сначала установите официальный репозиторий Docker.
$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
Установите последнюю версию Docker.
$ sudo dnf install docker-ce docker-ce-cli containerd.io
Включите и запустите демон Docker.
$ sudo systemctl enable docker --now
Убедитесь, что он запущен.
$ sudo systemctl status docker ? docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2022-04-09 22:43:21 UTC; 30s ago Docs: https://docs.docker.com Main PID: 43005 (dockerd) Tasks: 7 Memory: 90.5M CGroup: /system.slice/docker.service ??43005 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ....
По умолчанию Docker требует привилегий root. Если вы хотите избежать использования sudo
при каждом запуске команды docker
, добавьте свое имя пользователя в docker
группа.
$ sudo usermod -aG docker $(whoami)
Вам нужно будет выйти из сервера и снова войти в систему как тот же пользователь, чтобы активировать это изменение.
Шаг 3 — Установите Docker-Compose
Загрузите последнюю стабильную версию Docker Compose.
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Примените исполняемые разрешения к двоичному файлу Docker Compose.
$ sudo chmod +x /usr/local/bin/docker-compose
Протестируйте установку.
$ docker-compose --version docker-compose version 1.29.2, build 5becea4c
Установите скрипт завершения Bash для создания Docker.
$ sudo curl \ -L https://raw.githubusercontent.com/docker/compose/1.29.2/contrib/completion/bash/docker-compose \ -o /etc/bash_completion.d/docker-compose
Перезагрузите настройки своего профиля, чтобы заработало завершение bash.
$ source ~/.bashrc
Шаг 4 — Создайте каталоги данных
Создайте каталог для padloc.
$ mkdir ~/padloc
Перейдите в каталог padloc.
$ cd ~/padloc
Создайте каталоги для пользовательской базы данных, журналов приложений, вложений, приложения PWA и конфигурации SSL.
$ mkdir {attachments,db,logs,pwa,ssl}
Создайте каталог для журналов Nginx.
$ mkdir logs/nginx
Шаг 5 — Создайте файл Docker Compose
Создайте и откройте файл ~/padloc/docker-compose.yml
для редактирования.
$ nano docker-compose.yml
Вставьте в него следующий код.
version: "3" services: server: image: padloc/server container_name: padloc_server restart: unless-stopped #ports: # - ${PL_SERVER_PORT:-3000}:3000 expose: - 3000 volumes: - ${PL_DB_DIR:-./db}:/data:Z - ${PL_ATTACHMENTS_DIR:-./attachments}:/docs:Z - ./logs:/logs:Z environment: - PL_PWA_URL - PL_EMAIL_SERVER - PL_EMAIL_PORT - PL_EMAIL_USER - PL_EMAIL_PASSWORD - PL_EMAIL_FROM pwa: image: padloc/pwa container_name: padloc_pwa restart: unless-stopped #ports: # - ${PL_PWA_PORT:-8080}:8080 expose: - 8080 volumes: - ${PL_PWA_DIR:-./pwa}:/pwa:Z environment: - PL_SERVER_URL nginx: image: nginx container_name: nginx restart: unless-stopped volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ${PL_SSL_CERT:-./ssl/cert.pem}:/ssl/cert - ${PL_SSL_KEY:-./ssl/key.pem}:/ssl/key - ${PL_SSL_CONF:-./ssl/ssl.conf}:/ssl/ssl.conf - /etc/ssl/certs/dhparam.pem:/ssl/dhparam.pem - ./logs/nginx:/var/log/nginx:Z ports: - 80:80 - 443:443
Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.
Мы используем три образа Docker для Padloc.
<старт>
- Первый файл — это
nginx.conf
, который содержит все основные конфигурации Nginx для обслуживания приложения padloc. - Следующие два файла,
cert.pem
иkey.pem
, представляют собой сертификат SSL и ключи, которые мы сгенерируем с помощью Lets encrypt. - Файл
ssl.conf
содержит дополнительную информацию об обслуживании SSL через Nginx. - Файл
dhparam.pem
предназначен для обслуживания сертификата группы Диффи-Хеллмана. - Последняя запись предназначена для сопоставления журналов Nginx с сервером, чтобы вы могли получить к ним доступ вне Docker.
:Z
в конце сопоставления папок указывает, что эти каталоги будут доступны только из соответствующих контейнеров. Это делается, так как SELINUX включен на нашем сервере. Если вы не используете SELinux, то можете убрать этот флаг. Шаг 6 — Настройте NGinx
Создайте и откройте файл ~/padloc/nginx.conf
для редактирования.
$ nano nginx.conf
Вставьте в него следующий код.
http { # This is required if you want to upload attachments client_max_body_size 10m; # Redirect all http traffic to https server { listen 80 default_server; listen [::]:80 default_server; server_name _; return 301 https://$host$request_uri; } server { # We don't need a host name here since we're only # dealing with one domain, but you may insert your domain here. server_name _; # Both server and pwa are served over https listen 443 ssl http2; listen [::]:443 ssl http2; # This will resolve to the server instance location /server/ { proxy_pass http://padloc_server:3000; rewrite ^/padloc_server(.*)$ $1 break; } # This will resolve to the web app location / { proxy_pass http://padloc_pwa:8080; rewrite ^/padloc_pwa(.*)$ $1 break; } # SSL certificate ssl_certificate /ssl/cert; # SSL private key ssl_certificate_key /ssl/key; # Add this file to add advanced ssl configuration include /ssl/ssl.conf; } } # This section is required by nginx events {}
Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.
Приведенная выше конфигурация перенаправляет все запросы, сделанные из контейнера padloc_server
, в расположение доменного имени /server
, а также любые запросы, сделанные из padlock_pwa
в корень. Он также перенаправляет весь HTTP-трафик на HTTPS. Мы также установили размер загружаемого файла 10 МБ для вложений. Вы можете изменить размер в соответствии с вашими требованиями. Настройки SSL были включены через внешний файл, который мы настроим позже.
Шаг 7 — Создайте файл среды
Создайте и откройте файл ~/padloc/.env
для редактирования.
$ nano .env
Вставьте в него следующий код.
# GENERAL SETTINGS # ================ # URL that will resolve to the server instance PL_PWA_URL=https://example.com/ # URL that will resolve to the web app PL_SERVER_URL=https://example.com/server/ # SERVER SETTINGS # =============== # Port the server instance will listen on PL_SERVER_PORT=3000 # Directory where database files will be stored PL_DB_DIR=./db # Directory where attachment files will be stored PL_ATTACHMENTS_DIR=./attachments # PWA SETTINGS # ============ # Port the web app will be served from PL_PWA_PORT=8080 # Directory where the static code for the web app will be stored PL_PWA_DIR=./pwa # EMAIL SETTINGS # ============= # SMTP host PL_EMAIL_SERVER=smtp.example.com # SMTP username # SMTP port PL_EMAIL_PORT=443 # SMTP password PL_EMAIL_PASSWORD=your_smtp_password # Always use TLS when sending emails # PL_EMAIL_SECURE=false # Email ID to send mails from # SSL SETTINGS # ============ # The path to your ssl certificate PL_SSL_CERT=/etc/letsencrypt/live/example.com/fullchain.pem # The path to your ssl private key PL_SSL_KEY=/etc/letsencrypt/live/example.com/privkey.pem # Advanced configuration file PL_SSL_CONF=./ssl/ssl.conf
Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса. Большинство настроек говорят сами за себя. Существующая конфигурация Nginx предполагает, что приложение будет обслуживаться через основной домен, а сервер — через каталог /server
. PL_PWA_DIR
не является обязательным для установки здесь и в файле Docker-compose, но его наличие ускоряет запуск контейнера, поэтому его всегда следует устанавливать.
Padloc требует возможности отправлять электронные письма для таких функций, как проверка новых пользователей, двухфакторная аутентификация и сброс паролей. Поэтому данные SMTP являются обязательными.
Для функции SSL мы используем каталоги Lets Encrypt по умолчанию, в которых расположены сертификаты. Дополнительная конфигурация SSL будет предоставлена через файл /ssl/ssl.conf
.
Шаг 8 — Установите SSL
Чтобы установить SSL-сертификат с помощью Lets Encrypt, нам нужно установить инструмент Certbot.
Во-первых, вам нужно скачать и установить репозиторий EPEL.
$ sudo dnf install epel-release
Выполните следующие команды, чтобы установить Certbot.
$ sudo dnf install certbot
Создайте SSL-сертификат.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m -d example.com
Приведенная выше команда загрузит сертификат в каталог /etc/letsencrypt/live/example.com
на вашем сервере.
Создайте групповой сертификат Диффи-Хеллмана.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Создайте задание Cron для обновления SSL. Он будет запускаться каждую неделю, чтобы проверять сертификат и при необходимости обновлять его. Для этого сначала создайте файл /etc/cron.weekly/certbot-renew
и откройте его для редактирования.
$ sudo nano /etc/cron.weekly/certbot-renew
Вставьте следующий код. Мы используем команды Docker для запуска, остановки и перезапуска контейнера Nginx в зависимости от статуса обновления.
#!/bin/sh certbot renew --cert-name example.com --pre-hook "docker stop nginx" --post-hook "docker start nginx" --renew-hook "docker restart nginx"
Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.
Измените права доступа к файлу задачи, чтобы сделать его исполняемым.
$ sudo chmod +x /etc/cron.weekly/certbot-renew
Шаг 9. Настройте SSL
Создайте и откройте файл ~/padloc/ssl/ssl.conf
для редактирования.
$ nano ssl/ssl.conf
Вставьте в него следующий код.
ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_prefer_server_ciphers off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /ssl/dhparam.pem; resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] 8.8.8.8 8.8.4.4 [2001:4860:4860::8888] [2001:4860:4860::8844] valid=60s; resolver_timeout 2s;
Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.
В приведенном выше файле представлены некоторые рекомендуемые настройки SSL, чтобы сделать ваш сайт более безопасным. Он ограничивает протоколы TLS версиями 1.2 и 1.3 и включает сшивание и проверку протокола статуса онлайн-сертификата (OCSP).
Шаг 10 — Запустите Padloc
Теперь, когда вы все настроили, запустите Padloc, используя следующую команду.
$ docker-compose up -d
Проверьте состояние контейнеров.
$ docker ps
Вы должны получить аналогичный результат.
Шаг 11. Доступ и настройка Padloc
Откройте URL-адрес https://example.com
в своем браузере, и вы попадете на его страницу входа.
Щелкните ссылку Зарегистрироваться сейчас, чтобы начать регистрацию.
Введите свое имя и адрес электронной почты и нажмите Продолжить, чтобы продолжить.
Padloc отправит вам электронное письмо с кодом подтверждения. Введите код подтверждения в поле выше и нажмите «Продолжить», чтобы продолжить.
Padloc автоматически сгенерирует для вас мастер-пароль. Наведите курсор на поле и скопируйте его. Вставьте его снова в поле ниже. Вы также можете использовать свой пароль. Нажмите «Продолжить», когда закончите.
Вы попадете на домашнюю страницу Padloc. Вы можете начать сохранять свои данные для входа и конфиденциальные документы.
Шаг 12 — Обновите Padloc
Обновление Padloc — это двухэтапный процесс. Сначала переключитесь в каталог Padloc.
$ cd ~/padloc
Выключите и удалите существующие контейнеры Padloc.
$ docker-compose down --remove-orphans
Вытащите последние изображения.
$ docker-compose pull
Запустите контейнеры снова.
$ docker-compose up -d
Заключение
На этом мы завершаем наше руководство по установке менеджера паролей Padloc Self-hosted на сервер Rocky Linux 8. Если у вас есть какие-либо вопросы, задайте их в комментариях ниже.