如何在 Rocky Linux 8 上安装 Padloc 密码管理器如何在 Rocky Linux 8 上安装 Padloc 密码管理器如何在 Rocky Linux 8 上安装 Padloc 密码管理器如何在 Rocky Linux 8 上安装 Padloc 密码管理器
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Rocky Linux 8 上安装 Padloc 密码管理器

在此页

  1. 先决条件
  2. 第 1 步 - 防火墙
  3. 第 2 步 - 安装 Docker
  4. 第 3 步 - 安装 Docker-Compose
  5. 第 4 步 - 创建数据目录
  6. 第 5 步 - 创建 Docker Compose 文件
  7. 第 6 步 - 配置 NGinx
  8. 第 7 步 - 创建环境文件
  9. 第 8 步 - 安装 SSL
  10. 第 9 步 - 配置 SSL
  11. 第 10 步 - 运行 Padloc
  12. 第 11 步 - 访问和配置 Padloc
  13. 第 12 步 - 更新 Padloc
  14. 结论

Padloc 是一种基于云的密码管理解决方案,允许您跨多个平台访问和使用您保存的密码。它提供了一个简单的界面,可以用来保存你的密码,还可以加密和存储敏感文件。它还支持存储双因素身份验证令牌,并可以直接从网页添加它们。

Padloc 还提供了一个开源的自托管解决方案,您可以将其安装在任何服务器上以保持对数据的完全控制。但是,有一点需要注意。您不能将自托管应用程序与其桌面和移动应用程序一起使用。从好的方面来说,Padloc 是作为 PWA(渐进式 Web 应用程序)提供服务的,这意味着您可以将其作为本机应用程序安装在移动设备上并利用其多项功能。

在本教程中,您将学习如何在基于 Rocky Linux 8 的服务器上安装 Padloc 密码管理器。

先决条件

  • 一台运行 Rocky Linux 8 且内存至少为 1 GB 的服务器。
  • 具有 sudo 权限的非根用户。
  • 指向服务器的完全限定域名 (FQDN),如 example.com。在本教程中,我们假设您将只为此服务器使用一个域名。

第 1 步 - 防火墙

第一步是配置防火墙。 Rocky Linux 使用 Firewalld 防火墙。检查防火墙状态。

$ 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 步 - 安装 Docker

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 权限。如果您想避免每次运行 docker 命令时都使用 sudo,请将您的用户名添加到 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

安装 Docker-compose Bash Completion 脚本。

$ 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-completion 工作。

$ 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 来保存文件。

我们为 Padloc 使用了三个 Docker 镜像。

<开始>

  • 服务器映像 - 包含应用程序的所有后端逻辑。它默认在端口 3000 上运行。我们取消了 compose 文件中 ports 变量的注释,使端口对服务器不可见。相反,我们使用 expose 变量将 Docker 引擎内部的端口暴露给 Nginx 容器。图像的环境变量将在稍后配置。我们还为用户数据库、附件和应用程序日志映射了目录。
  • PWA 图像 - 包含应用程序的前端。它默认在端口 8080 上运行。至于服务器镜像,我们隐藏了这个镜像的端口部分,并暴露了 Docker 引擎内部的端口。我们已经映射了 Web 应用程序的目录。
  • Nginx 映像 - 包含 Nginx 服务器应用程序。我们有用于服务器的 HTTP(80) 和 HTTPS(443) 端口,以使其可以从外部访问。我们已经映射了几个目录和文件以使其工作。
    • 第一个文件是nginx.conf,其中包含Nginx 为padloc 应用程序提供服务的所有主要配置。
    • 接下来的两个文件 cert.pem 和 key.pem 是我们将使用 Lets encrypt 生成的 SSL 证书和密钥。
    • 文件 ssl.conf 包含有关通过 Nginx 提供 SSL 的附加信息。
    • 文件 dhparam.pem 用于提供 Diffie-Hellman 组证书。
    • 最后一项是将 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 MB。您可以根据您的要求更改尺寸。 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

    要使用 Lets Encrypt 安装 SSL 证书,我们需要安装 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 目录。

    生成 Diffie-Hellman 组证书。

    $ 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 协议限制为 v1.2 和 v1.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
    

    结论

    我们关于在 Rocky Linux 8 服务器上安装 Padloc 自托管密码管理器的教程到此结束。如果您有任何问题,请在下面的评论中发表。

  • ©2015-2025 艾丽卡 support@alaica.com