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イメージを使用しています。
-
サーバーイメージ -アプリケーションのすべてのバックエンドロジックが含まれています。 デフォルトでは、ポート3000で実行されます。 作成ファイルのports変数のコメントを解除して、サーバーからポートを非表示にしました。 代わりに、expose変数を使用して、Dockerエンジン内のポートをNginxコンテナーに公開します。 イメージの環境変数は後で構成されます。 また、ユーザーデータベース、添付ファイル、およびアプリケーションログのディレクトリもマップしました。
-
PWA画像 -アプリケーションのフロントエンドが含まれています。 デフォルトでは、ポート8080で実行されます。 サーバーイメージについては、このイメージのポートセクションを非表示にし、Dockerエンジン内のポートを公開しました。 Webアプリのディレクトリをマッピングしました。
-
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の外部でアクセスできるようにすることです。
- 最初のファイルは
-
ザ
: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セルフホストパスワードマネージャーをインストールするためのチュートリアルは終了です。 ご不明な点がございましたら、下のコメント欄に投稿してください。
The post RockyLinux8にPadlocPasswordManagerをインストールする方法 appeared first on Gamingsym Japan.