GNU/Linux >> Linux の 問題 >  >> Rocky Linux

RockyLinux8にPadlocPasswordManagerをインストールする方法

Padlocは、複数のプラットフォーム間で保存されたパスワードにアクセスして使用できるようにするクラウドベースのパスワード管理ソリューションです。シンプルなインターフェイスを提供し、パスワードを保存したり、機密文書を暗号化して保存したりするために使用できます。また、2要素認証トークンの保存もサポートしており、Webページから直接追加できます。

Padlocは、データの完全な制御を維持するために任意のサーバーにインストールできるオープンソースのセルフホストソリューションも提供します。ただし、これには注意が必要です。セルフホストアプリケーションをデスクトップアプリとモバイルアプリで使用することはできません。明るい面として、PadlocはPWA(プログレッシブウェブアプリ)として機能します。つまり、モバイルにネイティブアプリケーションとしてインストールし、その機能のいくつかを利用できます。

このチュートリアルでは、RockyLinux8ベースのサーバーにPadlocPasswordManagerをインストールする方法を学習します。

前提条件
  • 1GB以上のRAMを搭載したRockyLinux8を実行しているサーバー。
  • sudo権限を持つroot以外のユーザー。
  • example.comのようなサーバーを指す完全修飾ドメイン名(FQDN) 。このチュートリアルでは、このサーバーに1つのドメイン名のみを使用することを前提としています。
ステップ1-ファイアウォール

最初のステップは、ファイアウォールを構成することです。 RockyLinuxはFirewalledFirewallを使用しています。ファイアウォールのステータスを確認してください。

$ 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権限が必要です。 sudoの使用を避けたい場合 dockerを実行するたびに コマンドで、ユーザー名をdockerに追加します グループ。

$ sudo usermod -aG docker $(whoami)

この変更を有効にするには、サーバーからログアウトして同じユーザーとして再度ログインする必要があります。

ステップ3-Docker-Composeをインストールします

DockerComposeの最新の安定したリリースをダウンロードします。

$ 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

DockerComposeバイナリファイルに実行可能権限を適用します。

$ sudo chmod +x /usr/local/bin/docker-compose

インストールをテストします。

$ docker-compose --version
docker-compose version 1.29.2, build 5becea4c

Docker-composeBashCompletionスクリプトをインストールします。

$ 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作成ファイルを作成する

~/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には3つのDockerイメージを使用しています。

  1. サーバーイメージ -アプリケーションのすべてのバックエンドロジックが含まれています。デフォルトでは、ポート3000で実行されます。作成ファイルのports変数のコメントを解除して、サーバーからポートを非表示にしました。代わりに、expose変数を使用して、Dockerエンジン内のポートをNginxコンテナーに公開します。イメージの環境変数は後で構成されます。また、ユーザーデータベース、添付ファイル、およびアプリケーションログのディレクトリもマッピングしました。

  2. PWA画像 -アプリケーションのフロントエンドが含まれています。デフォルトでは、ポート8080で実行されます。サーバーイメージについては、このイメージのポートセクションを非表示にし、Dockerエンジン内のポートを公開しました。 Webアプリのディレクトリをマッピングしました。

  3. Nginxイメージ -Nginxサーバーアプリケーションが含まれています。サーバーへのHTTP(80)およびHTTPS(443)のポートがあり、外部からアクセスできるようになっています。それを機能させるために、いくつかのディレクトリとファイルをマッピングしました。

    • 最初のファイルはnginx.confです これには、Nginxがpadlocアプリケーションを提供するためのすべての主要な構成が含まれています。
    • 次の2つのファイル、cert.pem およびkey.pem Let'sEncryptを使用して生成するSSL証明書とキーです。
    • ファイルssl.conf Nginxを介したSSLの提供に関する追加情報が含まれています。
    • ファイルdhparam.pem Diffie-Hellmanグループにサービスを提供することです 証明書。
    • 最後のエントリは、Nginxログをサーバーにマップして戻し、Dockerの外部でアクセスできるようにすることです。
  4. :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にリダイレクトします。また、添付ファイルのファイルアップロードサイズを10MBに設定しました。要件に応じてサイズを変更できます。 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
[email protected]
# 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
[email protected]

# 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には、新しいユーザーの確認、2要素認証、パスワードのリセットなどの機能のために電子メールを送信する機能が必要です。したがって、SMTPの詳細は必須です。

SSL機能には、証明書が配置されているLet'sEncryptのデフォルトディレクトリを使用します。追加のSSL構成は、ファイル/ssl/ssl.confを介して提供されます。 。

ステップ8-SSLをインストールする

Let's 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 [email protected] -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の更新は2段階のプロセスです。まず、Padlocディレクトリに切り替えます。

$ cd ~/padloc

シャットダウンして、既存のPadlocコンテナを削除します。

$ docker-compose down --remove-orphans

最新の画像をプルします。

$ docker-compose pull

コンテナを再起動します。

$ docker-compose up -d
結論

これで、RockyLinux8サーバーにPadlocセルフホストパスワードマネージャーをインストールするためのチュートリアルは終了です。ご不明な点がございましたら、下のコメント欄に投稿してください。


Rocky Linux
  1. DockerとDockerをインストールする方法-RockyLinux8で作成する

  2. RockyLinux8にDockerをインストールする方法

  3. Rocky Linux 8 に Redis をインストールする方法

  1. RockyLinux8にPython3.9をインストールする方法

  2. RockyLinuxにPassboltPasswordManagerをインストールする方法

  3. RockyLinux8.4のインストール方法

  1. RockyLinux8にDockerCEをインストールする方法

  2. RockyLinux8にSnapをインストールする方法

  3. RockyLinux8にDockerCEをインストールする方法