web-dev-qa-db-ja.com

LUKSリモートUbuntuサーバー上のキーファイルによる自動ロック解除

起動時にLUKSドライブのロックを自動的に解除して、リモートマシンにキーファイルを保存する方法はありますか?アイデアは、サーバーがユーザー入力なしで再起動できることを確認することです。サーバーはパブリッククラウド上にあり、ルートパーティションを暗号化できません。鍵ファイルをマシンに残すと、暗号化の目的が無効になります。

したがって、sshのような安全なチャネルを介して接続するリモートマシンにキーファイルを置くという考えです。

Mandos は私が求めていることをしているようですが、2つの質問があります。
-すべてのドキュメントはルートファイルシステムを参照しています。どのドライブでも動作しますか?
-ドキュメントには、イントラネットでのみ機能することが記載されていますが、ローカルサーバーとリモートサーバーがVPN経由で接続している場合は機能しますか?

それは最善の解決策ですか?唯一の解決策?

4
ludofet

tang および clevis は、CentOS 7の暗号化されたルートパーティションでもそれを実現できます(私は個人的に使用して、ホームネットワークおよび職場でのブートを自動化しています)。 VMに接続されているかどうかを確認してください。

3
Tomek

オンラインでさまざまなソリューションがあります( ここ など)。ファイルシステムのマウント前にブート時に実行するために、小さなsshサーバー(busybox + dropbear)がinitrdに含まれており、入力としてパスフレーズを提供するために接続できます。

あなたはその周りで何かをすることができるかもしれません:initrd、sshdサーバーを起動してリモート接続を待つ間に、特定のsshキーを使用して、キーを格納しているリモートホストへのssh接続を開始します、キーファイルを取得するため(scpを実行)、LUKSキーを使用してローカルファイルシステムのロックを解除します。

ただし、欠点がないわけではありません。もちろん、ロック解除が完了したらすぐにダウンロードしたLUKSキーを削除する必要があります。そうしないと何も得られません。 RAMに必要な時間だけあり、どこにも保存されていない方法があります。また、initrdのコンテンツを読み取ることができる「すべての」攻撃者は、sshを見つける可能性があります。接続とそのsshキーを使用して、リモートホストに連絡し、LUKSキーをダウンロードします。これが発生した場合、攻撃者が明確にターゲットを絞り、時間をかけて特定の設定を調査していることを意味します。これは明らかにスクリプトキディの範囲外です。キーをダウンロードしたすべての接続を少なくとも慎重に確認する必要があります。イベントは、特定のサーバーが実際に再起動していることを示す他の監視アラートに関連付ける必要があります(これでも、initrdを変更した攻撃者から保護されません)。

また、現時点でネットワークに障害が発生した場合、scpが接続できない場合なども考慮する必要があります。そのため、小さなsshdserverのオプションを使用して、接続してデバッグすることは悪い考えではありません。または、クラウドプロバイダーが提供できるアウトオブバンドソリューションの種類を確認してください。

2
Patrick Mevzek

Mandosを使用してパスフレーズを保存および取得し、ルートファイルシステムのロックを解除して無人再起動を許可し、そのシステムで使用される他のすべてのボリュームのキーを暗号化されたルートボ​​リューム上のファイルに保存しました。

WAN接続を介してmandosを使用しました(ローカルLANでのみ機能するZeroconfに依存するのではなく、DHCPとmandosサーバーのIPアドレスをクライアントシステムで構成することにより)。 VPN接続。

1
HBruijn

Mandosは私が求めていることをしているようですが、2つの質問があります。 -すべてのドキュメントはルートファイルシステムを参照しています。どのドライブでも動作しますか?

まあ、mandos-clientパッケージは、ルートファイルシステムの復号化に使用することを想定しており、そのすべてのバイナリにはデフォルトがあり、initramfs環境で最も使いやすくなっています。しかし、それを他の場所で実行するのは確かに可能です。通常のシステム環境から「mandos-client」バイナリを実行するには、次のオプションが必要です。--seckey=/etc/keys/mandos/seckey.txt --pubkey=/etc/keys/mandos/pubkey.txt --network-hook-dir=/etc/mandos/network-hooks.d

  • ドキュメントには、イントラネットでのみ機能することが記載されていますが、ローカルサーバーとリモートサーバーがVPN経由で接続している場合に機能しますか?

はい、mandos-clientに--connectオプションを使用し、静的ポート番号を使用するようにMandosサーバーを構成します(mandos.confファイルのportオプションを使用)。通常、非イントラネットサーバーを使用する場合は、クライアント側でIPアドレスとルートを構成することも問題になりますが、you'reルートパーティションを暗号化しないため、その問題。

0
teddy