WorkstationのDISK暗号化は、今の時代は必須となっていることが多いと思います。
会社で必須化されていなくとも、やっておくことでセキュリティ事故の被害を減らせるでしょう。
暗号化の手段としては、以下の内容が今時の標準のようです。
- Windows: BitLocker
- MacOS: FileVault
- Linux: LUKS
パーティショニングをしながらLUKSを適用するにはcryptsetup luksFormat
を実行して/etc/crypttab
を編集する方法が記事として見つかります。
これらの操作を、Ubuntuのインストーラー上で簡単に実現できました。
いくつか注意点がありましたので、メモとして残しておこうと思いました。
(実際につかったInstallerはXubuntu 18.04のものですが、Ubuntuでも基本は同じかなと思います)
ちなみに、私は以下の目的で手動でのパーティショニングを実施しました。
- Windowsと共存したい
- Windows上だとBIOSの更新が簡単
- homeディレクトリを分離したい
- 再インストールやディストリビューションを変更時に、home配下のファイルを再利用しやすい
パーティショニングを手動で行う
インストール手順の中で「インストールの種類」というステップがあります。
そこで「それ以外」を選択すると、パーテーションを手動で設定する画面になります。
ここで、最低限以下のパーティションを切ります。
- efi
- Windows 10がインストールされている場合はもともと存在する
- マウントポイントを設定しなくても勝手に
/boot/efi
としてマウントされる
- ext4
/boot
- 暗号化パーティション
/
efiは自動的に/boot/efi
としてマウントされるようです。
これに加え、好みに合わせて暗号化パーテーションを追加します。
暗号化パーティションを作る際にパスワードを入力します。
作られた暗号化パーティションは、画面の上部に/dev/mapper/xxxx_crypt
というデバイスとして表示されます。
LVMみたいなものと考えてもらい、そのデバイスに対してext4
でパーティションを作ります。
複数暗号化パーティションを作る場合は、/dev/mapper/xxxx_crypt
をその分だけ作ることになります。
コマンドで作るときは、ひとつの/dev/mapper/xxxx_crypt
に対してext4
ではなくLVMを作ってさらに分割することもできるようなのですが、Ubuntuのインストーラーだとそこまでできなさそうでした。
パーティショニングのサンプル
ここでは、以下の内容を実現したときのサンプルを記載します
- Windowsとデュアルブート
- homeとルートディレクトリのパーティションを分離
いかが、そのサンプルです。
/dev/nvme0n1p1
は、各環境によって異なると思います。
例えば環境にあわせて/dev/sda1
等に読み替えてください。
- /dev/nvme0n1p1: efi
- bootloaderを保管する領域
- windowsのbootloaderも格納されている
- /dev/nvme0n1p2: ???
- 謎の空白領域、Windows10によって作られた
- /dev/nvme0n1p3: ntfs
- Windows本体
- /dev/nvme0n1p4: ntfs
- Windowsの復元領域
- /dev/nvme0n1p5: ext4
- マウントポイント:
/boot
- マウントポイント:
- /dev/nvme0n1p6: 暗号化領域 (LUKS -> ext4)
- マウントポイント:
/
- マウントポイント:
- /dev/nvme0n1p7: 暗号化領域 (LUKS -> ext4)
- マウントポイント:
/home
- マウントポイント:
最後にフォーマットの可否の確認ダイアログが表示されます。
再インストール時など、初期化したくないパーティションに「フォーマット」のチェックが入っていないことを確認してください。
注意事項
「それ以外」を選択して手動でパーティショニングをする際、暗号化パーティションを作った場合は以下の点に注意してください。
/boot
用の暗号化していないパーティションを作る
/
が暗号化されている場合、/boot
を暗号化していないパーティションで作成する必要があります。
/boot
がない場合は、以下のようなエラーになります。
/boot
が暗号化されているとinitrd
が読み込めないため、/
をマウントできないということのようです。
swap
用のパーティションは作らない
swap用のパーティションを作ると、セキュリティに関する問題があるとのエラーが表示されます。
Windows10とのデュアルブート
Windows10の復元ツールには、パーティショニング機能が無いようです。
(パッケージ版のインストーラーにはパーティショニング機能があるのかもしれませんが)
Ubuntuを先にインストールしていると、Windows10の復元ツールを使った際にパーティションがすべて上書きされるようです。
Windows10をDISKに導入した後、Ubuntuを入れるという手順を取る必要があります。
起動時
OS起動時に、パーティションをマウントするためのパスワード入力画面が表示されるようになります。
パスワードファイルを/boot配下
に作り、パスワード入力をスキップする方法もあるようです。
fstabとcrypttab
以下、インストールが完了したあとの設定ファイルの内容です。
暗号化ボリュームの読み込みがcrypttab
に書いてあり、これに従って自動的にluksOpen
されるようです。
そのあと、fstab
に従ってマウントされるようです。
nvme0n1p6_crypt UUID=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa none luks,discard
nvme0n1p7_crypt UUID=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa none luks,discard
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/nvme0n1p6_crypt / ext4 errors=remount-ro 0 1
# /boot was on /dev/nvme0n1p5 during installation
UUID=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa /boot ext4 defaults 0 2
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=AAAA-AAA /boot/efi vfat umask=0077 0 1
/dev/mapper/nvme0n1p7_crypt /home ext4 defaults 0 2
/swapfile none swap sw 0 0
Filesystem 1K-blocks Used Available Use% Mounted on
udev 10101296 0 10101296 0% /dev
tmpfs 2027424 1476 2025948 1% /run
/dev/mapper/nvme0n1p6_crypt 195810932 10480704 175313924 6% /
tmpfs 10137104 649004 9488100 7% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 10137104 0 10137104 0% /sys/fs/cgroup
/dev/nvme0n1p5 1935632 166888 1652368 10% /boot
/dev/nvme0n1p1 262144 32456 229688 13% /boot/efi
/dev/mapper/nvme0n1p7_crypt 657052112 138626128 484979892 23% /home
tmpfs 2027420 8 2027412 1% /run/user/1000
##最後に
複数のパーティションを暗号化しても、設定しているパスワードが同じの場合は、マウント時のパスワードの入力は一回で済みました。