暗号化されたルートファイルシステムをLUKS上に構築
「Ubuntu」ではルートファイルシステムを暗号化して「Ubuntu」をインストール仕組みを提供しています。ルートファイルシステムとは「Ubuntu」のインストール先となるファイルシステムのことです。
ルートファイルシステムを暗号化することでデータの漏洩に対する安全性を高めることができます。
インストール時に暗号化を指定できる
「Ubuntu Desktop」では「Ubuntu」インストール時にインストーラーから以下のように暗号化を指定してインストールできます。「Ubuntu Server」でも同様に「Ubuntu」を暗号化してインストール仕組みを提供しています。
暗号化して「Ubuntu Desktop」をインストールした場合、PC起動時に以下のようにパスワードを入力する画面が表示されます。
LVM on LUKS
現在の仕組みではユーザーが暗号化を指定すると、インストール先のパーティションを「LUKS」で暗号化し、その上に「LVM」で論理ボリュームを構築し、さらにその論理ボリュームを「ext4」でフォーマットし、そしてそのファイルシステムに「Ubuntu」をインストールします。
つまり「LVM on LUKS」で暗号化を実現しています。
言い換えれば「Ubuntu」では、「LVM」と「LUKS」という異なる仕組みを組み合わせて暗号化を実現しています。
この仕組みのうち暗号化を担当しているのは「LUKS」です。
インストール後の環境を「ディスク」で見ると、以下のようになっています。
「LVM」の情報は以下のようになっています。
$ sudo pvdisplay
--- Physical volume ---
PV Name /dev/mapper/sda3_crypt
VG Name vgubuntu
PV Size <98.77 GiB / not usable 2.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 25284
Free PE 12
Allocated PE 25272
PV UUID RBgDtx-gIKh-gff6-I7qz-B3k1-FOHE-DSSg14
--- Physical volume ---
PV Name /dev/mapper/sda3_crypt
VG Name vgubuntu
PV Size <98.77 GiB / not usable 2.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 25284
Free PE 12
Allocated PE 25272
PV UUID RBgDtx-gIKh-gff6-I7qz-B3k1-FOHE-DSSg14
$ sudo vgdisplay
--- Volume group ---
VG Name vgubuntu
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <98.77 GiB
PE Size 4.00 MiB
Total PE 25284
Alloc PE / Size 25272 / <98.72 GiB
Free PE / Size 12 / 48.00 MiB
VG UUID P53J2I-ExQy-J41W-6Qcp-ZTcn-ECbb-ZPz7vJ
--- Volume group ---
VG Name vgubuntu
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <98.77 GiB
PE Size 4.00 MiB
Total PE 25284
Alloc PE / Size 25272 / <98.72 GiB
Free PE / Size 12 / 48.00 MiB
VG UUID P53J2I-ExQy-J41W-6Qcp-ZTcn-ECbb-ZPz7vJ
$ sudo lvdisplay
--- Logical volume ---
LV Path /dev/vgubuntu/root
LV Name root
VG Name vgubuntu
LV UUID AxprOV-4X8d-imXM-fyJZ-AXj7-3s8b-PGQFKo
LV Write Access read/write
LV Creation host, time ubuntu, 2020-10-26 22:06:14 +0900
LV Status available
# open 1
LV Size <97.77 GiB
Current LE 25028
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
--- Logical volume ---
LV Path /dev/vgubuntu/swap_1
LV Name swap_1
VG Name vgubuntu
LV UUID DPjZii-KlJO-yf0C-rvpr-kQ0h-oh5m-A6CHRl
LV Write Access read/write
LV Creation host, time ubuntu, 2020-10-26 22:06:14 +0900
LV Status available
# open 2
LV Size 976.00 MiB
Current LE 244
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
--- Logical volume ---
LV Path /dev/vgubuntu/root
LV Name root
VG Name vgubuntu
LV UUID AxprOV-4X8d-imXM-fyJZ-AXj7-3s8b-PGQFKo
LV Write Access read/write
LV Creation host, time ubuntu, 2020-10-26 22:06:14 +0900
LV Status available
# open 1
LV Size <97.77 GiB
Current LE 25028
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
--- Logical volume ---
LV Path /dev/vgubuntu/swap_1
LV Name swap_1
VG Name vgubuntu
LV UUID DPjZii-KlJO-yf0C-rvpr-kQ0h-oh5m-A6CHRl
LV Write Access read/write
LV Creation host, time ubuntu, 2020-10-26 22:06:14 +0900
LV Status available
# open 2
LV Size 976.00 MiB
Current LE 244
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
Ubuntu Core 20ではLVMを使用しない
今後リリースが予定されている「Ubuntu Core 20」では暗号化に際し、「LVM」を使用せず「LUKS」で暗号化したボリューム上に「Ubuntu Core」をインストールする仕組みを提供します。
ちなみにこの暗号化では「TPM」もサポートされています。
LVM必要?
「Ubuntu Core 20」での方針や、あまり「LVM」が有効活用されているように見えない現状を踏まえ、「Ubuntu 21.04」でもデフォルトで「LUKS」で暗号化したボリューム上に「Ubuntu」をインストールする仕組みを提供して見てはどうだろうか、という提案です。
つまり「LVM」を利用しないということです。