前書き
私たちは皆、GmailやDropboxのようなメールとオンラインファイルストレージサービスを使用しています。 ただし、これらのサービスは、個人用および業務用の機密データの保存には適さない場合があります。 重要なビジネス契約や機密情報を添付する際に、プライバシーポリシーを信頼していますか? すべてのデータが収集、処理、分析されることを受け入れますか?
この問題には解決策があります。PEPSは、エンドツーエンド暗号化を使用する電子メール、ファイル共有、およびチャットプラットフォームです。 エンドツーエンドの暗号化により、暗号化と復号化はサーバー(クライアントではなく)で行われ、クリアテキストで機密データが表示されることはありません。
image:https://assets.digitalocean.com/articles/peps_ubuntu_1404/peps-macbook.png [PEPS:独自のクラウドインスタンスで実行できるメール、ファイル共有、チャット]
このチュートリアルでは、DigitalOcean DropletにPEPSインスタンスを展開するプロセスをガイドして、データを安全に保存できるようにします。
前提条件
PEPSは、セットアップを簡単にするためにDockerコンテナーとして配布されます。 Ubuntu 14.04 x64およびDockerアプリケーションがインストールされたDigitalOcean Dropletが必要です。 具体的には:
-
ユーザー数が少ない場合は、2 GBのメモリを搭載したUbuntu 14.04 x64ドロップレット。 より多くのユーザーが必要な場合、またはデータ用により多くのストレージが必要な場合は、4 GB以上のRAMを選択します。
-
自己署名証明書の代わりに使用するSSL証明書を購入します。これは実稼働環境に推奨されます。 または、無料の署名済みSSL証明書を作成できます。 証明書を作成する手順は、このチュートリアルの後半に含まれています。
ドロップレットの名前は重要です:外部の受信者にメールでメッセージを送信する場合は、メッセージがスパムとしてフラグ付けされないように_Reverse DNS_を構成します。 良いニュース:DigitalOcean https://www.digitalocean.com/community/questions/how-do-i-set-up-reverse-dns-for-my-ip [自動構成]ドロップレット名が設定されている場合、PTRレコードFQDN(完全修飾ドメイン名)。 `+ mail.example.com `からメールを送信する場合、それはドロップレットの名前でもあります(アドレスが ` user @ example.com +`の形式であっても)。
このチュートリアルのすべてのコマンドは、非rootユーザーとして実行する必要があります。 コマンドにルートアクセスが必要な場合は、先頭に「+ sudo +」が付きます。 Ubuntu 14.04での初期サーバー設定では、ユーザーを追加してsudoアクセスを許可する方法について説明しています。
ステップ1-Dockerのインストール
最初のステップは、Dockerをインストールすることです。 このチュートリアルは、Docker 1.6.2に基づいています。 Dockerのインストールには2つのオプションがあります。
-
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-getting-started#how-to-install-docker [インストールと使用方法]のUbuntu 14.04の指示に従ってくださいDocker:はじめに]
-
Ubuntu 14.04 x64ドロップレットを作成するときにDockerアプリケーションを追加します
また、作成した非ルートユーザー(このチュートリアルのすべてのコマンドを実行するユーザー)を `+ docker +`ユーザーグループに追加する必要があります。 ユーザー名に置き換えます:
sudo usermod -aG docker
また、この変更をアクティブにするには、非rootユーザーとしてログアウトして再度ログインする必要があります。
ステップ2-PEPSの展開
+ ssh @ +
(ユーザー名とサーバーIPを置き換える)を使用してSSH経由でDropletに接続し、次のコマンドを実行して環境を準備します。
まず、リポジトリのクローンを作成します。
git clone https://github.com/MLstate/PEPS
`+ PEPS +`ディレクトリに移動します:
cd PEPS
ドメイン名に置き換えて、ドメイン名を構成します。
echo > domain
このコマンドは、ドメイン名をファイルの最初の唯一の行として、「+ domain +」という名前のテキストファイルを作成します。
makeをインストールします。
sudo apt-get update
sudo apt-get install make
次は、コンテナを作成します。これには約10〜20分かかります。コーヒーを楽しんだり、スタンドアップミーティングをスケジュールしたりできます。
make build
すべてが正常に実行されると、次のようなもので終わります(IDはランダムに生成され、異なる場合があります)。
Removing intermediate container 38d212189d43
Successfully built 24fd74241e48
最初の起動では、一時的なSSL / TLS証明書を作成し、コンテナを実行します。 (両方のステップはほとんど瞬時に行われるため、次のコーヒーブレイクをとるとは思わないでください。)
ドメインのSSL証明書が既に手元にある場合は、これをスキップして、代わりに証明書とキーをコピーします(手順5を参照)。
次のコマンドで一時的なSSL証明書を作成します。
make certificate
単純なパスフレーズを選択してください。4回入力するよう求められ、証明書はプレースホルダーです。 ほとんどの質問はスキップできます:重要な質問は `+ Common Name(e.g. サーバーのFQDNまたはあなたの名前)[]:+ `ドメインと同じである必要があります。
以下にダイアログの例を示します。
openssl genrsa -des3 -out server.key 1024
Generating RSA private key, 1024 bit long modulus [...]
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:
openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key:
You are about to be asked to enter information that will be [...]
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key # strip passphrase
Enter pass phrase for server.key.org:
writing RSA key [...]
Getting Private key
これで、次のコマンドでPEPSを起動する準備ができました。
sudo make run
ステップ3-初めてのログイン
ブラウザから「+ https:// 」にアクセスして、IPアドレスを使用してDropletに接続します。「+」はDropletのIPアドレスです。
現時点では一時的なSSL証明書を使用しているため、ブラウザはサイトが安全でないことを警告します。 とにかくそれを受け入れます。 Chromeの場合、[詳細]をクリックして続行します。
image:https://assets.digitalocean.com/articles/peps_ubuntu_1404/ssl_chrome.png [Chromeは間違ったSSL証明書について警告します。後で修正します]
最初の実行時に、管理者パスワードを作成するように求められます。 複雑さが十分であれば、好きなものを選んでください。
image:https://assets.digitalocean.com/articles/peps_ubuntu_1404/first_run.png [PEPSは機能しています。管理者パスワードを選択してください]
PEPSのエンドツーエンドの暗号化により、管理者アカウントはユーザーを作成および削除できますが、既存の暗号化されたユーザーデータにはアクセスできません。
管理者パスワードが設定されると、メインのPEPSインターフェイスが表示されます。
image:https://assets.digitalocean.com/articles/peps_ubuntu_1404/peps_interface.png [データのないPEPSインターフェース]
次に、ドメインと証明書の適切な設定に焦点を当てましょう。
ステップ4-ドメインのセットアップ
インスタンスが正常に実行されたので、ドメインを適切に設定する必要があります。これには、実際のSSL証明書の使用、DNSの構成などが含まれます。
DNSから始めましょう。 ドメイン名プロバイダーに応じて、独自のインターフェイスを使用してドメインのDNSエントリを設定するか、独自のDNSサーバーを設定します。 独自のDNSサーバーをセットアップする場合は、https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-private-network-dns-server-on-を使用できますhttps://www.digitalocean.com/community/tutorial_series/an-introduction-to-managing-dnsの一部であるubuntu-14-04 [Ubuntu 14.04でプライベートネットワークDNSサーバーとしてBINDを構成する方法]の記事[DNSの管理の概要]記事シリーズ。
AレコードとMXレコードの両方を設定する必要があります。 たとえば、 `+ mail.example.com `でホストされている架空の ` example.com +`ドメインの場合:
mail.example.com. 10799 IN A
mail.example.com. 10799 IN MX example.com.
ドロップレット名は `+ mail.example.com +`でなければなりません。 心配しないで。 DigitalOceanアカウントからDropletの名前を変更できます。 ドロップレット名をクリックして詳細を確認し、[設定]タブをクリックしてから、[名前の変更]タブをクリックします。 DNSが更新されるまで待たなければならない場合があります。
追加のレコードを設定することもできます。 オンラインチェッカーhttp://mxtoolbox.com/[MXToolBox]は、ドメインが適切に設定されていることを確認し、いくつかの点に関するアドバイスを提供するのに役立ちます。
DNSの伝播は少し遅くなる可能性がありますが、しばらくすると(多くの場合1時間)、 `+ https:// example.com +`からPEPSにアクセスできるようになります。
ステップ5-SSL証明書のセットアップ
ブラウザから無効なSSL証明書の警告が引き続き表示されます。
次は、SSL証明書を設定します。 SSL証明書をまだお持ちでない場合は、プロバイダーまたはhttps://www.digitalocean.com/community/tutorials/how-to-set-up-apache-with-a-free-signed-から購入できます非営利目的でのssl-certificate-on-a-vps [無料のSSL証明書の設定]。
https://www.digitalocean.com/community/tutorials/how-to-install-an-ssl-certificate-from-a-commercial-certificate-authority [商用認証局からSSL証明書をインストールする方法]の記事SSL証明書の購入方法など、SSL証明書に関するすべてを説明しています。
+ / etc / peps / +`ディレクトリにある `+ server.key`と
+ server.crt`という名前のキーと証明書の両方を必ずコピーしてください。
ローカルコンピューターでそれらを準備し、証明書を含むディレクトリから実行してサーバーにファイルをコピーします。
scp server.key server.crt :/etc/peps/
ここで、「++」はドロップレットのIPアドレスです。
完了したら、ブラウザがSSLエラーなしで `+ https:// example.com +`にアクセスできることを確認します。
ステップ6-テスト
さらにユーザーを作成するには、ユーザー名に「+ admin +」を、管理者ユーザーとしてログインし、「ステップ3:初めてログインする」で作成したパスワードを使用してログインします。 管理者ユーザーは、ドメインのメールアカウントを作成できます。 方法については、https://github.com/MLstate/PEPS/wiki/Admin-Manual [PEPS Admin Manual]にアクセスしてください。
まず、ドメイン内の2人の異なるユーザー間でメールを送受信してみてください。 たとえば、admin @ example.comから[email protected]にメールを送信してみてください。 それが成功した場合、sammyにadminに応答させて、逆の操作が成功することを確認してください。
次に、ドメイン外のアカウントにメールを送信します。 これが失敗する場合、AおよびMXレコードが正しく構成されていません。 _ステップ4:ドメインのセットアップ_に戻ります。 ドメイン外のユーザーからのメールの受信も忘れずにテストしてください。
結論
おめでとうございます。 これで、DigitalOcean Dropletで実行されているPEPSのインスタンスができました。 (https://github.com/MLstate/PEPS-chat[chat]などのプラグインを実行して)メッセージを安全に送信したり、ファイルを共有したりできます。
利用可能ないくつかのマニュアルがあります。
-
https://github.com/MLstate/PEPS/wiki/User-Manual [ユーザーマニュアル]
-
PEPS APIを使用したい開発者やバックアップに関するオペレーター向けのドキュメントは、https://github.com/MLstate/PEPS/wiki [GitHub]のプロジェクトwikiから入手できます。
PEPSに関する最新ニュースについては、https://facebook.com/endtoend [PEPS Facebookページ]もご覧ください。