GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu20.04サーバーにPassboltPasswordManagerをインストールする方法

Passboltは、オープンソースのセルフホストパスワードマネージャーであり、Webサイトのログイン資格情報、ルーターパスワード、Wi-Fiパスワードなどを安全に保存および共有できます。このチュートリアルでは、Passbolt Community Edition(CE)のインストール方法を説明します。 Ubuntu20.04でApacheまたはNginxWebサーバーを使用します。

パスボルト機能

  • 無料でオープンソース
  • パスワードは、実績のある暗号化標準であるOpenPGPで暗号化されます。
  • ブラウザ拡張機能はFirefoxとGoogleChromeで利用できます。
  • セキュリティを損なうことなく、ログイン資格情報をチームと簡単に共有できます。
  • クリーンでユーザーフレンドリーなインターフェース。
  • パスワードをインポートおよびエクスポートします。パスワードを.kdbxにエクスポートできます または.csv KeepassX、LastPass、または1passwordで使用するファイル形式。
  • ログイン資格情報を手動で追加できます。

Ubuntu20.04サーバーにPassboltをインストールするための前提条件

PassboltはPHPで記述されており、MySQL/MariaDBデータベースサーバーに依存しています。したがって、Passboltをインストールする前に、LAMPスタックまたはLEMPスタックを設定する必要があります。 Apache Webサーバーを使用する場合は、LAMPスタックを設定します。

  • Ubuntu20.04にLAMPスタックをインストールする方法

Nginx Webサーバーを使用する場合は、LEMPスタックを設定します。

  • Ubuntu20.04にLEMPスタックをインストールする方法

ドメイン名も必要なので、Webブラウザを使用してどこからでもPassboltに安全にアクセスできます。 NameCheapからドメイン名を登録したのは、価格が安く、whoisのプライバシー保護が一生無料になるからです。

上記の要件が満たされたら、以下の手順に従ってPassboltをインストールします。

ステップ1:PassboltをUbuntu20.04サーバーにダウンロード

Passboltをダウンロードするために公式ウェブサイトにアクセスする場合は、名前とメールアドレスを入力する必要があります。それが気に入らない場合は、サーバーで次のコマンドを実行して、Githubから最新の安定バージョンをダウンロードしてください。

sudo apt install git

cd /var/www/

sudo git clone https://github.com/passbolt/passbolt_api.git

ファイルはpassbolt_apiに保存されます ディレクトリ。名前をpassboltに変更します 。

sudo mv passbolt_api passbolt

次に、Webサーバーユーザーを作成します(www-data )このディレクトリの所有者として。

sudo chown -R www-data:www-data /var/www/passbolt

次のコマンドを実行して、Passboltが必要または推奨するPHPモジュールをインストールします

sudo apt install php-imagick php-gnupg php7.4-common php7.4-mysql php7.4-fpm php7.4-ldap php7.4-gd php7.4-imap php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-gmp php7.4-xsl

次に、Apacheを再起動します。 (Nginxを使用している場合は、Nginxを再起動する必要はありません。)

sudo systemctl restart apache2

ディレクトリを変更します。

cd /var/www/passbolt/

Composer –PHP依存関係マネージャーをインストールします。

sudo apt install composer

Composerのキャッシュディレクトリを作成します。

sudo mkdir /var/www/.composer

www-dataを作成します 所有者として。

sudo chown -R www-data:www-data /var/www/.composer

Composerを使用して依存関係をインストールします。

sudo -u www-data composer install --no-dev

フォルダのアクセス許可を設定するように求められた場合は、Yを選択します 。

ステップ2:Passbolt用のMariaDBデータベースとユーザーを作成する

MariaDBコンソールにログインします。

sudo mysql -u root

次に、次のコマンドを使用してPassboltの新しいデータベースを作成します。このチュートリアルでは、passboltという名前を付けています。 、データベースには任意の名前を使用できます。 utf8mb4も指定します 非ラテン文字と絵文字をサポートするための文字セットとして。

CREATE DATABASE passbolt DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

次のコマンドは、データベースユーザーとパスワードを作成すると同時に、新しいデータベースのすべてのアクセス許可を新しいユーザーに付与して、後でPassboltがデータベースに書き込むことができるようにします。赤いテキストをお好みのデータベース名、ユーザー名、パスワードに置き換えます。

GRANT ALL ON passbolt.* TO 'passboltuser'@'localhost' IDENTIFIED BY 'password';

特権テーブルをフラッシュして、MariaDBコンソールを終了します。

FLUSH PRIVILEGES;

EXIT;

ステップ3:OpenPGPキーを生成する

VPS(Virtual Private Server)を使用している場合は、 havegedをインストールすることをお勧めします 十分なエントロピーを生成するためのパッケージ。

sudo apt install haveged

haveged.service インストール後に自動的に起動します。次のコマンドでステータスを確認できます:

sudo systemctl status haveged

次に、次のコマンドを実行して、新しいキーペアを生成します。

gpg --gen-key

名前とメールアドレスの入力を求められます。パスフレーズを設定するように求められた場合は、タブキーを押して[OK]を選択してスキップします。これは、現在php-gnupgモジュールがパスフレーズの使用をサポートしていないためです。

秘密鍵をパスボルト構成の場所にコピーします。 [email protected]を置き換えます PGPキーを生成するときに電子メールアドレスを使用します。

gpg --armor --export-secret-keys [email protected] | sudo tee /var/www/passbolt/config/gpg/serverkey_private.asc > /dev/null

また、公開鍵もコピーします。

gpg --armor --export [email protected] | sudo tee /var/www/passbolt/config/gpg/serverkey.asc > /dev/null

www-dataを初期化します ユーザーのキーリング。

sudo su -s /bin/bash -c "gpg --list-keys" www-data

ステップ4:パスボルトを構成する

/var/www/passbolt/にいることを確認してください ディレクトリ。

cd /var/www/passbolt/

サンプル構成ファイルを実稼働構成ファイルにコピーします。

sudo cp config/passbolt.default.php config/passbolt.php

Nanoなどのコマンドラインテキストエディタを使用して構成ファイルを編集します。

sudo nano config/passbolt.php

まず、次の行を見つけます。

'fullBaseUrl' => 'https://www.passbolt.test',

URLをhttps://passbolt.yourdomain.comなどの独自のURLに置き換えます 。 DNSレコードマネージャーでこのサブドメインのDNSAレコードを作成することを忘れないでください。

database configuration セクションに、手順2で作成したデータベース名、データベースユーザー名、およびパスワードを入力します。

    // Database configuration.
    'Datasources' => [
        'default' => [
            'host' => 'localhost',
            //'port' => 'non_standard_port_number',
            'username' => 'user',
            'password' => 'secret',
            'database' => 'passbolt',
        ],
    ],

email configuration セクション、

  • SMTPホスト名、ポート番号、ログイン資格情報を指定して、パスボルトが電子メールを送信できるようにします。通常、リモートSMTPサーバーに電子メールをsumbitするには、ポート587を使用する必要があります。必ずtlsを設定してください trueに 、したがって、SMTPトランザクションは暗号化されます。
  • From:も設定します メールアドレスと差出人の名前。
    // Email configuration.
    'EmailTransport' => [
        'default' => [
            'host' => 'mail.yourdomain.com',
            'port' => 587,
            'username' => '[email protected]',
            'password' => 'secret',
            // Is this a secure connection? true if yes, null if no.
            'tls' => true,
            //'timeout' => 30,
            //'client' => null,
            //'url' => null,
        ],
    ],
    'Email' => [
        'default' => [
            // Defines the default name and email of the sender of the emails.
            'from' => ['[email protected]_organization.com' => 'Passbolt'],
            //'charset' => 'utf-8',
            //'headerCharset' => 'utf-8',
        ],
    ],

独自のメールサーバーを簡単に設定するには、次のチュートリアルをご覧ください。

  • iRedMailを使用してUbuntu20.04で独自のメールサーバーを簡単にセットアップする方法

:パスボルトがメールサーバーと同じボックスにインストールされている場合は、EmailTransportでユーザー名とパスワードを指定する必要はありません。 。 //を使用するだけです これらの2行をコメントアウトします。次のスクリーンショットは、このシナリオの構成例を示しています。


gpgセクションに、以下のようにGPGキーのフィンガープリントを入力します。指紋の空白をすべて削除する必要があります。

'fingerprint' => '2FC8945833C51946E937F9FED47B0811573EE67E',

次のコマンドを使用して、キーの指紋を取得できます。 [email protected]を置き換えます PGPキーペアを生成するときにメールアドレスを使用します。

gpg --list-keys --fingerprint | grep -i -B 2 '[email protected]'

指紋を入力したら、次の2行のコメントを解除します。

'public' => CONFIG . 'gpg' . DS . 'serverkey.asc',
'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',

ファイルを保存して閉じます。

ステップ5:インストールスクリプトを実行する

インストールスクリプトをwww-dataとして実行します ユーザー。

sudo su -s /bin/bash -c "./bin/cake passbolt install --force" www-data

インストール中に、管理者アカウントを作成するように求められます。

アカウントを作成すると、ウェブブラウザでのインストールを完了するためのURLが提供されます 。その前に、ApacheまたはNginxを使用してWebサーバーを構成する必要があります。

ステップ6:Passbolt用のApache仮想ホストまたはNginx構成ファイルを作成する

Apache

Apache Webサーバーを使用する場合は、Passboltの仮想ホストを作成します。

sudo nano /etc/apache2/sites-available/passbolt.conf

次のテキストをファイルに入れます。 passbolt.example.comを置き換えます 実際のドメイン名を使用して、DNSAレコードを設定することを忘れないでください。また、PassboltのWebルートは/var/www/passbolt/webroot/であることに注意してください。 、/var/www/passbolt/ではありません 。

<VirtualHost *:80>
  ServerName passbolt.exmaple.com
  DocumentRoot /var/www/passbolt/webroot/

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined

  <Directory />
    Options FollowSymLinks
    AllowOverride All
  </Directory>

  <Directory /var/www/passbolt/>
    Options FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>

</VirtualHost>
から許可する

ファイルを保存して閉じます。次に、次のコマンドでこの仮想ホストを有効にします。

sudo a2ensite passbolt.conf

変更を有効にするためにApacheをリロードします。

sudo systemctl reload apache2

Nginx

Nginx Webサーバーを使用する場合は、Passboltの仮想ホストを作成します。

sudo nano /etc/nginx/conf.d/passbolt.conf

次のテキストをファイルに入れます。 passbolt.example.comを置き換えます 実際のドメイン名を使用して、DNSAレコードを設定することを忘れないでください。また、PassboltのWebルートは/var/www/passbolt/webroot/であることに注意してください。 、/var/www/passbolt/ではありません 。

server {
   listen 80;
   listen [::]:80;
   server_name passbolt.example.com;

   root /var/www/passbolt/webroot/;
   error_log /var/log/nginx/passbolt.error;
   access_log /var/log/nginx/passbolt.access;

   index index.php index.html index.htm index.nginx-debian.html;

   location / {
     try_files $uri $uri/ /index.php?$query_string;
   }

   location ~ \.php$ {
     # try_files $uri =404;
     fastcgi_split_path_info ^(.+\.php)(/.+)$;
     # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

     fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
     fastcgi_index index.php;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     include fastcgi_params;

     fastcgi_buffer_size 128k;
     fastcgi_buffers 256 16k;
     fastcgi_busy_buffers_size 256k;
     fastcgi_temp_file_write_size 256k;
   }

    # Don't log favicon
    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    # Don't log robots
    location = /robots.txt  {
        access_log off;
        log_not_found off;
    }

    # Deny all attempts to access hidden files/folders such as .htaccess, .htpasswd, .DS_Store (Mac), etc...
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }

    # Deny all grunt, composer files
    location ~* (Gruntfile|package|composer)\.(js|json)$ {
        deny all;
        access_log off;
        log_not_found off;
    }

     # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }
}

ファイルを保存して閉じます。次に、Nginx構成をテストします。

sudo nginx -t

テストが成功した場合は、変更を有効にするためにNginxをリロードします。

sudo systemctl reload nginx

ステップ7:HTTPSを有効にする

HTTPトラフィックを暗号化するには、Let’sEncryptから発行された無料のTLS証明書をインストールしてHTTPSを有効にします。次のコマンドを実行して、Let’s Encryptクライアント(certbot)をUbuntu20.04サーバーにインストールします。

sudo apt install certbot

Nginxを使用する場合は、CertbotNginxプラグインもインストールする必要があります。

sudo apt install python3-certbot-nginx

次に、次のコマンドを実行してTLS証明書を取得してインストールします。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d passbolt.example.com

Apacheを使用する場合は、CertbotApacheプラグインをインストールしてください。

sudo apt install python3-certbot-apache

そして、このコマンドを実行してTLS証明書を取得してインストールします。

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d passbolt.example.com

どこ

  • --nginx :nginxプラグインを使用してください。
  • --apache :Apacheプラグインを使用してください。
  • --agree-tos :利用規約に同意します。
  • --redirect :301リダイレクトでHTTPSを強制します。
  • --hsts :すべてのHTTP応答にStrict-Transport-Securityヘッダーを追加します。ドメインに常にTLSを使用するようにブラウザを強制します。 SSL/TLSストリッピングから防御します。
  • --staple-ocsp :OCSPステープリングを有効にします。有効なOCSP応答は、TLS中にサーバーが提供する証明書にホチキス止めされます。

これで、証明書が取得され、自動的にインストールされます。

ステップ8:Webブラウザでのパスボルトのインストールを終了する

まず、FirefoxまたはGoogleChromeブラウザにPassbolt拡張機能をインストールする必要があります。

  • Firefox用のパスボルト拡張機能
  • GoogleChromeのパスボット拡張機能

次に、インストールスクリプトの実行後に取得したURLをコピーして、ブラウザのアドレスバーに貼り付けます。 Webベースのセットアップウィザードが表示されます。最初のステップは、ドメインとサーバーのキーの指紋が正しいことを確認することです。

2番目のステップでは、[次へ]ボタンをクリックして、新しいキーを作成します。

3番目のステップで、パスフレーズを作成します。

次に、暗号化された秘密鍵をダウンロードして、安全な場所に保管します。このキーは、パスフレーズを使用してのみ復号化できます。

4番目のステップで、セキュリティトークンを設定します。

最後に、パスフレーズを使用してログインできます。

これで、パスワードを作成し、csvまたはkdbxファイルからパスワードをインポートできます。

ステップ8:メールを自動的に送信するようにcronジョブを設定する

システムメールを送信するには、次のコマンドを実行します。

sudo -u www-data /var/www/passbolt/bin/cake EmailQueue.sender

www-dataユーザーのCrontabファイルにコマンドを追加して、メールを自動的に処理できます。

sudo crontab -u www-data -e

ファイルに次の行を追加して、1分ごとにメールを処理します。

* * * * * /var/www/passbolt/bin/cake EmailQueue.sender

ファイルを保存して閉じます。

(オプション)ModSecurityの設定

ModSecurityを設定することもできます PHPWebアプリケーションをハッキングから保護するためのWebアプリケーションファイアウォール。 Debian /UbuntuでApacheWebサーバーを使用している場合は、次のチュートリアルをお読みください。

  • Debian/UbuntuでApacheを使用してModSecurityを設定する方法

Debian /UbuntuでNginxWebサーバーを使用している場合は、次のチュートリアルをお読みください。

  • Debian/UbuntuでNginxを使用してModSecurityを設定する方法

トラブルシューティング

パスワードを作成しようとしているのに、「深呼吸して、今の瞬間にいることを楽しんでください…」に固執している場合 」画面の場合、ApacheまたはNginx構成ファイルに問題があることが原因である可能性があります。記事からApache/Nginx構成をコピーする場合、パスワードを作成するときに問題はありません。

ModSecurity Webアプリケーションファイアウォールを有効にしていて、サーバーキーを確認できませんでしたが表示された場合 エラー。

次に、次のカスタムルールの除外を追加する必要があります ModSecurityで。

SecRule REQUEST_URI "@streq /auth/verify.json?api-version=v2" "id:1060,phase:2,ctl:ruleRemoveById=942100"

そして、Webサーバーを再起動します。

sudo systemctl restart apache2

または

sudo systemctl restart nginx

Ubuntu
  1. Ubuntuサーバーにデスクトップ(GUI)をインストールする方法

  2. Ubuntu20.04にMySQLをインストールする方法

  3. Ubuntu18.04にCS-Cartをインストールする方法

  1. Ubuntu18.04にMySQLをインストールする方法

  2. Ubuntu20.04にTeamPassPasswordManagerをインストールする方法

  3. Ubuntu20.04にPassboltTeamPasswordManagerをインストールして構成する

  1. Ubuntu20.04にKeeWebPasswordManagerをインストールする方法

  2. Ubuntu16.04でTeampassPasswordManagerをセットアップする方法

  3. Ubuntu20.04にKeyPassPasswordManagerをインストールする方法