前書き

メールは現代のコミュニケーションの非常に重要な部分であるため、メールパイプラインのすべての部分のセキュリティを念頭に置くことが重要です。 Roundcubeは、強力なセキュリティ機能とプラグインリポジトリからの広範なカスタマイズオプションを備えたWebメールクライアントです。 この記事では、既存の基本的なRoundcubeインストールをさらに保護する方法について説明します。

IMAPおよびhttps://www.digitalocean.com/community/tutorials/how-to-install-your-own-webmail-client-with-roundcube-on-ubuntu-16-04#stmp-settings[STMP] Roundcubeの初期セットアップの設定を行うと、Roundcubeからメールサーバーへの接続は既に保護されています。 ただし、ブラウザからRoundcubeへの接続はそうではなく、メール自体は平文で送信されます。 Roundcubeアカウント自体もパスワードのみで保護されています。

このチュートリアルでは、次の方法でメールパイプラインのこれら3つの部分を保護します。

  • Let’s Encryptを使用してSSLをApacheに追加します。

  • Roundcubeアカウントにhttps://www.digitalocean.com/community/tutorials/how-to-set-up-multi-factor-authentication-for-ssh-on-ubuntu-16-04 [二要素認証]を追加するRoundcubeプラグインを使用します。

  • GPGを使用して、Roundcubeプラグインで電子メールに署名および暗号化する。

前提条件

このチュートリアルを実行するには、次のものが必要です。

  • 次のhttps://www.digitalocean.com/community/tutorials/how-to-install-your-own-webmail-client-with-roundcube-on-ubuntu-16-04に従ってRoundcubeがインストールされた1つのUbuntu 16.04サーバー[ Ubuntu 16.04でのRoundcubeチュートリアル]。 この前提条件のチュートリアルを完了すると、完全に機能する(ただし部分的に安全ではない)Webメールクライアントが作成されます。

  • Google認証システム(https://itunes.apple.com/us/app/google-authenticator/id388497605?mt=8[iOS]、https://play.googleなど、TOTP互換アプリがインストールされたスマートフォンまたはタブレット.com / store / apps / details?id = com.google.android.apps.authenticator2&hl = en [Android])。 これを使用して、2要素認証を設定します。

多要素認証の詳細については、https://www.digitalocean.com/community/tutorials/how-to-set-up-multi-factor-authentication-for-ssh-on-ubuntu-16の概要をご覧ください。 -04 [Ubuntu 16.04でSSHの多要素認証を設定する方法]。 GPGの詳細については、https://www.digitalocean.com/community/tutorials/how-to-use-gpg-to-encrypt-and-sign-messages [GPGを使用してメッセージを暗号化および署名する方法]をご覧ください。

手順1-SSLを追加してRoundcubeへのアクセスを保護する

現在、ブラウザでサーバーのドメイン名を使用してRoundcubeインストールにアクセスすると、HTTPSではなくHTTP経由で接続されます。 ブラウザから電子メールサーバーへの通信チェーン全体を完全に保護するには、Roundcubeへのこの接続でSSL / TLSを使用する必要があります。

これを行う簡単な方法の1つは、Let’s Encryptの無料のSSL証明書を使用することです。 RoundcubeはLAMPスタックの上に設定されているため、https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-16をフォローできますこの設定の詳細なチュートリアルについては、-04 [Ubuntu 16.04で暗号化してApacheを保護する方法]を参照してください。 以下に簡単な要約を示します。

まず、Let’s Encrypt Clientをインストールします。

sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-apache

次に、SSL証明書を取得し、自動更新が機能することを確認します。 `+`をドメインに置き換え、サブドメインまたはエイリアスに追加の ` -d +`フラグを使用します。

sudo certbot --apache -d
sudo certbot renew --dry-run

インタラクティブな設定中( `+ sudo certbot –apache -d +`を入力した後)に、基本的なセットアップか安全なセットアップかを尋ねられたら、必ず* secure *を選択してください。 これにより、すべてのHTTPトラフィックがHTTPSにリダイレクトされます。

これで、コンピューターからRoundcubeインストールへの安全な接続が確立され、IMAP / SMTP電子メールサーバーへの安全な接続が確立されます。 メール通信のセキュリティを改善するためにできることはまだいくつかありますが、プラグインが必要です。

次の手順では、プラグインを使用して、2要素認証を追加してRoundcubeアカウントのセキュリティを強化します。

ステップ2-2要素認証プラグインのインストール

RoundcubeプロジェクトはプラグインのGUI機能に取り組んでいますが、現時点では、すべてのプラグインをコマンドラインからインストールする必要があります。 これを行うには2つの方法があります。

  • 手動インストール、これは利用可能な最初の方法でした。 これには、プラグイン(通常は「+ .zip 」ファイルまたはGitリポジトリのいずれか)をダウンロードしてから、Roundcube構成ファイル「 / var / www / roundcube / config / config.inc.ph +」を変更することで有効にします。

  • 半自動インストール。これは最新の方法です。 これは、PHPパッケージマネージャーComposerに応答して、構成ファイルで指定したプラグインをインストールします。

一部のプラグインは、あるインストール方法を他のインストール方法よりも推奨しています。 2FAプラグインは両方の方法で動作し、推奨するものではありません。そのため、ここでは、使いやすさから半自動インストールを使用します。

Composerは、「+ $ R_HOME / composer.jsonp」に保存されている「+ composer.json」ファイルによって制御されます。 その構成ファイルを作成してComposerを有効にするには。 Roundcubeには、「+ composer.json-dist +」という基本設定ファイルが付属しているため、そのコピーから始めます。

cd /var/www/roundcube
sudo cp composer.json-dist composer.json

このデフォルトファイルにはいくつかのコアプラグインが既に指定されているため、次にComposerを実行してこれらをインストールし、初期設定を完了します。 Composerは必ず `+ / var / www / roundcube +`ディレクトリから実行してください。

sudo composer install

次に、2FAプラグインを追加するには、 `+ composer.json`ファイルに追加する必要があります。

プラグイン行の構文は `” / “:” “`です。 したがって、2FAプラグインの場合、追加する行は `” / “:” “`です。

`+ nano `またはお好みのテキストエディターを使用して編集するために ` composer.json`ファイルを開きます。

sudo nano /var/www/roundcube/composer.json

" require "で始まるrequireブロックを探します:{。 中括弧( + {+`と `+} +)の間の各行はプラグイン行です。 ブロック内のすべてのプラグイン行は、最後のエントリを除き、コンマで終了する必要があります。

ブロックの最後に2FAプラグインの行を追加し、必ず前の行にコンマを追加してください。

/var/www/roundcube/composer.json

. . .
"require": {
   "php": ">=5.4.0",
   "pear/pear-core-minimal": "~1.10.1",
   "pear/net_socket": "~1.2.1",
   "pear/auth_sasl": "~1.1.0",
   "pear/net_idna2": "~0.2.0",
   "pear/mail_mime": "~1.10.0",
   "pear/net_smtp": "~1.7.1",
   "pear/crypt_gpg": "~1.6.2",
   "pear/net_sieve": "~1.4.0",
   "roundcube/plugin-installer": "~0.1.6",
   "endroid/qr-code": "~1.6.5"

},
. . .

ファイルを保存して閉じ、Composerにパッケージ情報を更新して新しいプラグインをインストールするように指示します。

sudo composer update

Composerがプラグインを有効にするかどうかを尋ねてきたら、 `+ Y +`を入力して続行します。 インストールしたら、Roundcubeからログアウトし、再度ログインしてプラグインを有効にします。

プラグインがインストールされたので、RoundcubeのGUIを使用してアカウントに2FAをセットアップする必要があります。

ステップ3-アカウントで2FAを有効にする

開始するには、ブラウザのサーバーIPまたはドメインを使用してRoundcubeにログインします。 右側の隅にある[設定]ボタンをクリックし、左側のナビゲーションにある[* 2要素認証*]をクリックします。

image:https://assets.digitalocean.com/articles/roundcube-security/QlcwvKy.png [Roundcube 2-Factor Authentication設定ページ]

[2要素認証オプション]セクションで、[アクティブ化]チェックボックスをクリックし、[シークレットの作成]をクリックします。

次に、[復旧コードを表示]をクリックし、表示された4つの復旧コードを安全な場所に保存します。 トークンを生成できない場合(たとえば、携帯電話を紛失した場合)は、これらのコードを使用してログインします。

最後に、[保存]ボタンをクリックします。

これにより2FAが有効になりますが、GoogleオーセンティケーターなどのTOTP互換アプリにシークレットを追加する必要があります。 シークレットを保存した後に表示される[* QRコードの表示]ボタンをクリックし、アプリでコードをスキャンします。 スキャンが機能しない場合は、シークレットを手動で入力することもできます。

image:https://assets.digitalocean.com/articles/roundcube-security/vrraKDc.png [Roundcube 2-Factor Authentication QR code]

最後に、アプリがコードを生成したら、[コードをチェック]ボタンの隣のフィールドにコードを入力して機能することを確認し、そのボタンをクリックします。 動作する場合は、* Code OK と表示されたウィンドウが表示されます。下部の OK *ボタンをクリックすると、そのウィンドウを閉じることができます。 問題がある場合は、アプリにシークレットを追加し直してください。

デジタル通信を保護する最後の手順は、電子メールで送信する実際のメッセージを暗号化することです。 次のステップでは、Enigmaというプラグインを使用してこれを行います。

ステップ4-GPGで暗号化されたメールを有効にする

Enigma pluginは、暗号化された署名付きメールの表示と送信のサポートを追加します。 https://www.digitalocean.com/community/tutorials/how-to-install-your-own-webmail-client-with-roundcube-on-ubuntu-16-04#plugins [以前のRoundcubeインストールチュートリアル]、その後、Enigmaプラグインがインストールで既に有効になっています。 そうでない場合は、ステップ2で2FAプラグインに使用したのと同じ手順に従って、今すぐEnigmaプラグインを追加できます。

開始するには、いくつかのデフォルトの暗号化オプションを有効にする必要があります。 Roundcubeにログインし、右上隅の[設定]ボタンをクリックします。 そこから、* Preferences をクリックしてから、 Section リストの下にある Encryption *をクリックします。

image:https://assets.digitalocean.com/articles/roundcube-security/kNwyhTr.png [暗号化設定の設定]

*メインオプション*リストには7つの暗号化設定があります。 7つすべてを有効にするとセキュリティが最大になりますが、使いやすさの面で多少のトレードオフが伴います。

*メインオプション*メニューの各オプションとそれぞれの提案(必要、推奨、またはオプション)を次に示しますが、ユースケースに合った設定を選択する必要があります。

  • メッセージの暗号化と署名を有効にする:必須。 これにより、メッセージに署名して暗号化できます。

  • *メッセージ署名の検証を有効にする*推奨。 誰かがあなたに署名されたメールを送信した場合、この設定により、Roundcubeはメールアドレスとキーで送信者を確認しようとします。

  • メッセージの復号化を有効にする:推奨。 誰かが暗号化された電子メールを送信すると、この設定によりRoundcubeはGPGキーを使用して復号化します。

  • デフォルトですべてのメッセージに署名:オプション。 これにより、送信先のユーザーがGPGをサポートしていない場合でも、送信するすべてのメールに署名します。 そうでない場合、メールの下部に文字の塊が表示されます。 メールを作成するときにこのオプションを切り替えることもできます。

  • デフォルトですべてのメッセージを暗号化:オプション。 これにより、送信するすべての電子メールが暗号化されます。ただし、電子メールを送信する相手の公開キーを持っていることが前提です。 メールを作成するときにこのオプションを切り替えることもできます。

  • デフォルトで公開PGPキーを添付する:オプション。 これにより、送信するすべてのメールにGPG公開キーが添付ファイルとして追加されます。 受信者がGPGをサポートしている場合、メールクライアントはキーを確認してキーリングにインストールし、暗号化されたメールを送信できるようにします。

  • *秘密鍵のパスワードを保持*は、メールを暗号化または復号化するときに入力したパスフレーズをRoundcubeが記憶する時間を設定するため、毎回入力する必要はありません。

設定を選択したら、[保存]をクリックします。次に、[設定]列の[ID]をクリックします。

image:https://assets.digitalocean.com/articles/roundcube-security/ESIwBCI.png [IDの更新]

デフォルト設定は、サインアップに使用した電子メールアドレスを持つ単一のIDです。 メールをクリックして、表示名*フィールドに入力します。 オプションで、 Organization *などの他のフィールドに入力できます。 完了したら、[保存]ボタンをクリックします。

構成の最後の部分はキーの作成です。 左側のナビゲーションで[* PGPキー] *をクリックします。

GPGキーを既にお持ちの場合は、右上の[インポート]をクリックしてシークレットキーをインポートしてから、もう一度クリックしてパブリックキーをインポートできます。

GPGキーがない場合、または新しいGPGキーを作成する場合は、* PGP Keys 列の下部にあるプラス( + *)ボタンをクリックします。 そこから、キーを作成するIDを選択し、キーの強度を選択します(キーサイズが大きいほど、暗号化を破るのは難しくなりますが、暗号化の実行は遅くなります)。 最後に、強力なパスワードを選択し、[保存]をクリックします。

確認済みの署名済みメールを受信すると、Roundcubeの上部に緑色の*確認済み署名元*通知が表示されます。

画像:https://assets.digitalocean.com/articles/roundcube-security/HOjm9fV.png [署名済みメール]

暗号化された電子メールを受信して​​復号化すると、Roundcubeは* Message decrypted *通知を表示します。

image:https://assets.digitalocean.com/articles/roundcube-security/CAN7RYZ.png [復号化されたメール]

メッセージでGPG暗号化を使用するには、左上の[メール]アイコン、[作成]の順にクリックして新しいメールを作成します。 暗号化*アイコンをクリックして、使用可能な暗号化オプションを確認します。 これらは、暗号化設定で選択した内容によって異なります。 推奨事項に従った場合は、*このメッセージにデジタル署名このメッセージの暗号化、*公開キーの添付*が表示されます。 メールを送信するときは、必要な暗号化オプションを確認してください。

結論

SSL、2要素認証、GPG暗号化を追加することにより、電子メールパイプラインのセキュリティが大幅に向上します。 ここから、https://plugins.roundcube.net/explore/ [Roundcube Plugin Repository]を調べることで、Roundcubeの拡張とカスタマイズを続けることができます。