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
ああ、カスタムパーティション分割。これは、特にクロスボリュームを暗号化しようとしている場合は楽しいものです。 過度にクレイジー (はい、それが私のパーティション構造です)に行きたくないと仮定し、ここでLUKSの内部でLVMを使用します。また、このプロセスが少し簡単になるので、既にインストール済みであると仮定します。
まず、ハードドライブに新しい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
で)。すぐに必要になります。
次に、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=...
に置き換えてください。
/etc/fstab
に追加システムがセットアップされ、ドライブを自動マウントできるようになったので、/etc/fstab
を認識させる必要があります。
幸いなことに、これは/
の/etc/fstab
エントリの下に追加する必要がある単一の行です。この行は次のようになります。
/dev/mapper/home_drive /mnt ext4 errors=remount-ro 0 1
次に、新しい(すぐに使える!)ホームパーティションをマウントします。コマンドは次のようになります。
cryptsetup open --type luks /dev/sdXY home_drive
mount /dev/mapper/home_drive /mnt
現在のホームフォルダーを新しいドライブにコピーし、すべてが正常に表示されることを確認します。
最後に、以下のコマンドを実行するだけで、システムに暗号を認識させることができます。
update-initramfs -u -k all
システムを再起動し、パスワードを1回だけ入力する必要があることを確認します。複数回実行する必要がある場合は、何かがおかしくなりました。すべてのステップを再確認してください。
オンラインに戻ったら、/mnt
にすべてのホームデータが含まれていることを確認します。
次に、/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が独自の暗号化されたドライブになります!