Linux LUKS暗号化および複製システム

Linux LUKS暗号化および複製システム

ミントをベースにプロトタイプを作っています。ミントのインストール+インストールと構成用のパッケージ。プロトタイプは、荒い感じのコンピュータをベースに作られています。

私は以下を計画しています:

  1. 他の多くのファイルに似たシステムでディスクを複製します。

  2. システムとファイルを隠すためにディスクを暗号化します(dm-crypt、LUKS)。

インストールされているシステムでは、LUSK暗号化を簡単に実行できないことがわかりました。このプロセスを「自動」にする方法はありますか?私の言葉は、同じ実行でシステムを暗号化して複製する方法です。

答え1

内部暗号化を実行することは可能ですが、次のことを強くお勧めします。バックアップする最初。私は書いた実験的私が呼ぶツール地下室で生(暗号化されていない)、一般(dm-crypt)、およびLUKS形式間で変換できます。

暗号化されていないデバイスをLUKSに変換するには、ヘッダーをインストールできるように、最初に約2MiBのスペースを許可するようにデバイスの既存のデータを移動する必要があります。または、ヘッダーを取り外して別のデバイス(USBキーなど)に保存することもできます。

別々のLUKSヘッダーを使用するか、通常モードdm-cryptを選択すると、データを移動する必要がなく、所定の場所で変換できます。

理論を例として書きました。ここ右シフトとその固有の問題についても読むことができます。この問題

dd要約すると、デフォルトのrawデバイスからコピーするdm-cryptデバイスマッパーを使用して内部暗号化を実行できます。

$ cryptsetup open "${raw_device}" crypt_device --type plain ${cryptsetup_args}
$ dd if="${raw_device}" conv=notrunc of=/dev/mapper/crypt_device
$ cryptsetup close crypt_device

(変数は、環境に関連するパラメータを提供するためのプレースホルダです。これの詳細については、上記のスクリプトとリンクされたページで説明されています。)

これは危険な仕事です- 途中で失敗したら(停電、太った指などの理由で)配ったのです。まずバックアップしてください

言葉を使ったので参考にしてくださいサポート実験的そして理論警告、など!

答え2

おそらく最も簡単な方法は、LUKS暗号化が有効なマスターイメージを作成して設定することです。

もちろん、このマスターディスクのみを複製すると、すべてのデバイスが同じ暗号化キーを共有するため、これはうまくいきません。

しかし、あなたはできます。再暗号化暗号化されたLUKSパーティション。

したがって、次のワークフローをスクリプトできます。

  1. ddマスターイメージを新しいドライブにコピー/dev/sdX
  2. 既存のデバイスのUUIDを取得します。cryptsetup luksUUID /dev/sdXY
  3. 再暗号化:cryptsetup reencrypt /dev/sdXY
  4. UUIDを古いUUIDにリセットします。cryptsetup luksUUID --uuid $olduuid /dev/sdXY

起動中にロックを解除するには、グラブ設定および/またはinitramfs(dracutなど)にUUIDが組み込まれているため、UUIDのリセットが必要です。

または、これらの場所のUUIDを更新する必要があります。


マスターイメージを複製する頻度によっては、別のプロセスを使用したい場合があります。これは、cryptsetupの再暗号化方法が必ずしも最速の方法ではないからです。

LUKSで暗号化されたマスターイメージを完全に再構成して起動できます。

このイメージではダンプパーティションテーブルを使用できますsfdisk -d。次に、暗号化されていないすべてのイメージを別々のファイルにダンプします(通常はブートパーティションです)。最後に、マスターcryptsetup openイメージからシステムパーティションを作成し(たとえば、デバイスループを介して)、そのコンテンツを別のイメージファイル(たとえばroot.img)にダンプします。

これらの部分が適切な場所にある場合、複製プロセスは次のようになります。

  1. デバイスのパーティション分割< part.dump sfdisk /dev/sX
  2. dd暗号化されていないパーティション - はい -/dev/sX1
  3. システムパーティションをフォーマットします。cryptsetup luksFormat --uuid $olduuid /dev/sXY
  4. 新しいLUKSデバイスを開く
  5. ddroot.img新しいLUKSデバイス

答え3

LVMでない場合は、最初にLUKSヘッダー(2MiB)のスペースを確保するためにすべてのデータを移動する必要があります。したがって、これは簡単でリスクのないプロセスではありません。

関連情報