web-dev-qa-db-ja.com

Ubuntu暗号化SSD + / home(HDD)

SSDとHDDがあります。

Ubuntuをインストールするとき、「ディスクを消去してUbuntuをインストールする」と「セキュリティのために新しいUbuntuインストールを暗号化する」が必要です。

これにより、/ homeがSSDの下になりますが、HDDの下に置くだけでなく、暗号化することもできます。どうすればこれを作成できますか?

編集

sda                       8:0    0 223,6G  0 disk  
├─sda1                    8:1    0   512M  0 part  /boot/efi
├─sda2                    8:2    0   732M  0 part  /boot
└─sda3                    8:3    0 222,4G  0 part  
  └─sda3_crypt          253:0    0 222,4G  0 crypt 
    ├─ubuntu--vg-root   253:1    0 206,4G  0 lvm   /
    └─ubuntu--vg-swap_1 253:2    0  15,9G  0 lvm   [SWAP]
sdb                       8:16   0 931,5G  0 disk  
└─sdb1                    8:17   0 931,5G  0 part  
  └─home_drive          253:3    0 931,5G  0 crypt /mnt
  • サイズを変更すると、次のステップになります(または無効になります)
2
Gohan

ああ、カスタムパーティション分割。これは、特にクロスボリュームを暗号化しようとしている場合は楽しいものです。 過度にクレイジー (はい、それが私のパーティション構造です)に行きたくないと仮定し、ここでLUKSの内部でLVMを使用します。また、このプロセスが少し簡単になるので、既にインストール済みであると仮定します。

パートI:LUKSパーティションのセットアップ

まず、ハードドライブに新しいEXT4パーティションを作成する必要があります。必要なだけスペースを取ります。

次に、cryptsetupを実行して、実際に暗号化を設定する必要があります。必要なコマンドは次のとおりです。

cryptsetup luksFormat /dev/sdXY

/dev/sdXYを新しいEXT4パーティションを指しているものに置き換えます。パスワードを選択するように求められます。強いものを選択し、それを書き留めます。終了するまでにそれを覚えておく必要はありません(この投稿をさらに進めると、その理由がわかります)。

次に、LUKSコンテナー内に別のext4パーティションを作成する必要があります。これは、最終的に/homeを保持し続けます。これらのコマンドはこれを達成します:

cryptsetup open --type luks /dev/sdXY home_drive
mkfs -t ext4 /dev/mapper/home_drive
cryptsetup close home_drive

次に、blkidを実行し、新しいLUKSコンテナのUUIDをメモします(/dev/sdXYで)。すぐに必要になります。


パートII:自動復号化を有効にする

次に、decrypt_derivedと呼ばれるものを設定する必要があります。これにより、復号化操作を「連鎖」できます。

これにより、1つのパスワードが両方のドライブで機能するようになります。実際、復号化された最初のドライブは、2番目のドライブのパスワードになります。パスワード(上記で選択)は、緊急時にも機能します(データ復旧などを考えてください)。

以下のコマンド/ファイル編集を実行します。 ubuntu_cryptの名前を現在の暗号が呼び出される名前に変更してください(これを見つけるには/etc/crypttabを参照してください)。また、/dev/sdXYを新しいLUKSパーティションに置き換えます。

/lib/cryptsetup/scripts/decrypt_derived ubuntu_crypt > /tmp/home_keyfile
cryptsetup luksAddKey /dev/sdXY /tmp/home_keyfile
shred -u /tmp/home_keyfile

次に、/etc/crypttabに次の行を追加します。

home_drive UUID=<your_drive_uuid> ubuntu_crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived

ホームドライブにSSDを使用している場合は、必ずluks,keyscript=...luks,discard,keyscript=...に置き換えてください。


パートIII:/etc/fstabに追加

システムがセットアップされ、ドライブを自動マウントできるようになったので、/etc/fstabを認識させる必要があります。

幸いなことに、これは//etc/fstabエントリの下に追加する必要がある単一の行です。この行は次のようになります。

/dev/mapper/home_drive    /mnt    ext4    errors=remount-ro    0    1


パートIV:テストする

次に、新しい(すぐに使える!)ホームパーティションをマウントします。コマンドは次のようになります。

cryptsetup open --type luks /dev/sdXY home_drive
mount /dev/mapper/home_drive /mnt

現在のホームフォルダーを新しいドライブにコピーし、すべてが正常に表示されることを確認します。

最後に、以下のコマンドを実行するだけで、システムに暗号を認識させることができます。

update-initramfs -u -k all

システムを再起動し、パスワードを1回だけ入力する必要があることを確認します。複数回実行する必要がある場合は、何かがおかしくなりました。すべてのステップを再確認してください。

オンラインに戻ったら、/mntにすべてのホームデータが含まれていることを確認します。


パートV:実際に動く

次に、/etc/fstabを再度開き、/mnt/homeに置き換えて新しい行を編集します。次のようになります。

/dev/mapper/home_drive    /home    ext4    errors=remount-ro    0    1

ファイルを保存します。

update-initramfs -u -k allをもう一度実行し、システムを再起動します。

バックアップが完了したら、lsblkを実行し、homedirが新しいドライブにマウントされていることを確認します。

満足したら、古い家のデータを削除する必要があります。問題は、マウントによって現在のフォルダーがそれ自体で置き換えられるため、そのデータにアクセスする方法がないことです(実行中にhomedirを削除することはできません)。したがって、bindmountを実行する必要があります。

mount --bind / /mnt

touch /mnt/home/testを実行し、すぐにcat /home/testを実行して、ファイルが見つからないというエラーが表示されることを確認します。ファイルが見つかった場合、マウント構成に問題があります。

/home/testが存在しないが/mnt/home/testが存在することを確認したら、rm -rf /mnt/home/*で古い家を削除できます。

これでシステムがSSDになり、homedirが独自の暗号化されたドライブになります!

2
Kaz Wolfe