もっと詳しく

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

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

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

前提条件

  • 1GB以上のRAMを搭載したRockyLinux8を実行しているサーバー。
  • sudo権限を持つroot以外のユーザー。
  • 次のようなサーバーを指す完全修飾ドメイン名(FQDN) example.com。 このチュートリアルでは、このサーバーに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をインストールする-作成

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.pemkey.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メール確認ページ

Padloc検証メール

Padlocから確認コードが記載されたメールが送信されます。 上のボックスに確認コードを入力し、を押します 継続する 続行します。

Padlocマスターパスワードセットページ

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セルフホストパスワードマネージャーをインストールするためのチュートリアルは終了です。 ご不明な点がございましたら、下のコメント欄に投稿してください。

The post RockyLinux8にPadlocPasswordManagerをインストールする方法 appeared first on Gamingsym Japan.