Ubuntu 16.04の私のシステム/
には暗号化されていないパーティションが1つありますが、LUKSは3つのパーティションでZFS zpoolを暗号化しました。システムを正しく起動するには、ZFSやその他のサービス(データベース、ネットワーク、電子メールなど)が起動する前にLUKSボリュームのロックを解除したいと思います。これはSSH経由でリモートで行う必要があります。
3つのパーティションを追加した後、システムが起動し、/etc/crypttab
そのinitramfs
ステップの後にロック解除(およびパスワードプロンプト)が行われるのを待ちます。ただし、リモートブート時にLUKSロック解除が行われる一般的な方法は、「失敗」とdropbear
言いinitramfs
、3つのパーティションがシステムにないために続行することです。この場合、これはリモートロック解除より優先されるか、リモートロック解除が無効になることを意味するため、望ましくありません。fstab
initramfs
systemd
systemd
crypttab
OpenSSH
dropbear
可能な汚れたハッキングは、sleep 300
initramfsに1つを追加してログインしdropbear
てロックを解除する時間を与えることですが、これもお勧めできません。この問題を解決するための2つのオプションがありますが、どちらが最善かわかりません。実装方法もわかりません。
リモートまたはローカルのロック解除を有効にし、以前に起動したことがないかどうかを
systemd
確認するために起動順序を変更します。networking
OpenSSH
crypttab
続行する前に、
initramfs
重要なパーティションがロック解除されるのを待ってくださいsystemd
。
答え1
- Ubuntuでlukをロック解除する
- /etc/crypttab の末尾に ",initramfs" を追加します。
root@a:~# cat /etc/crypttab
vda6_crypt UUID=9f420e32-0821-4cc8-a87e-59db96a12df0 none luks,discard
vdb_crypt UUID=8632fd8d-46ca-4c82-931c-6f6e04066465 none luks,discard,initramfs
- アップデート-initramfs -u
- /cryptroot/crypttabファイルを確認してください。
root@a:~# unmkinitramfs /boot/initrd.img-5.8.0-50-generic /tmp/initramfs
root@a:~# cat /tmp/initramfs/main/cryptroot/crypttab
vda6_crypt UUID=9f420e32-0821-4cc8-a87e-59db96a12df0 none luks,discard
vdb_crypt UUID=8632fd8d-46ca-4c82-931c-6f6e04066465 none luks,discard,initramfs
答え2
私は現在そのようなシステムを構築していますが、debianstretchにいます。実際のコンピュータ自体を実際に設定する前に、仮想マシンで実験をしています。仮想マシンに非常に似た設定があります。
/のzpoolイメージには2つのディスクがありますが、/ bootにはありません。 /bootはmd0にあります。 zpoolはLUKSの上にあります。 EFIを使用してください。
root@zstaging:~# cat /proc/1/comm
systemd
root@zstaging:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
+-sda1 8:1 0 256M 0 part
¦ +-md0 9:0 0 256M 0 raid1 /boot
+-sda2 8:2 0 256M 0 part /boot/efi
+-sda3 8:3 0 19.5G 0 part
¦ +-disk0_crypt 253:0 0 19.5G 0 crypt
+-sda9 8:9 0 9M 0 part
sdb 8:16 0 20G 0 disk
+-sdb1 8:17 0 256M 0 part
¦ +-md0 9:0 0 256M 0 raid1 /boot
+-sdb2 8:18 0 256M 0 part
+-sdb3 8:19 0 19.5G 0 part
¦ +-disk1_crypt 253:1 0 19.5G 0 crypt
+-sdb9 8:25 0 9M 0 part
sdc 8:32 0 20G 0 disk
sr0 11:0 1 1.8G 0 rom
root@zstaging:~# zpool status
pool: rpool
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
disk0_crypt ONLINE 0 0 0
disk1_crypt ONLINE 0 0 0
errors: No known data errors
関連ファイルと設定:
root@zstaging:~# cat /etc/fstab
UUID=648bfa4b-1b5f-480a-bb26-b3abffb4a6de /boot auto defaults 0 0
PARTUUID=1673f966-173b-4128-84d5-4e8d5810efef /boot/efi vfat defaults 0 1
root@zstaging:~# cat /etc/crypttab
disk0_crypt UUID=26194846-ba49-4e53-ab0b-857b0dad2021 none luks
disk1_crypt UUID=ef44b66a-8706-4be2-bd12-a30d40de9669 none luks
root@zstaging:~# cat /etc/initramfs-tools/conf.d/cryptroot
target=disk0_crypt,source=UUID=26194846-ba49-4e53-ab0b-857b0dad2021,key=none,rootdev
target=disk1_crypt,source=UUID=ef44b66a-8706-4be2-bd12-a30d40de9669,key=none,rootdev
set CRYPTSETUP=y in /etc/cryptsetup-initramfs/conf-hook
# vi /etc/default/grub
replace GRUB_CMDLINE_LINUX="" with GRUB_CMDLINE_LINUX="boot=zfs"
Remove quiet from: GRUB_CMDLINE_LINUX_DEFAULT
Uncomment: GRUB_TERMINAL=console
# update-initramfs -u -k all
# update-grub
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian --recheck --no-floppy
みんな大丈夫です。一度に2つのディスクのロックを解除するように求められ、うまくいきました。 / etc / fstabにzfsコンテンツを一覧表示する必要はありません。はい、initramfsなどは/etc/fstabについて文句を言いますが、これまでは大丈夫です。
リモートでロック解除することもできます。
# apt-get install dropbear-initramfs busybox
# vi /etc/dropbear-initramfs/authorized_keys
Paste my SSH pubkey
# chmod 400 /etc/dropbear-initramfs/authorized_keys
# update-initramfs -u
in another machine that has my SSH keys, add a custom section in ~/.ssh/config:
Host zstaging_unlock
HostName <ip_of_zstaging>
User root
HostKeyAlias zstaging_unlock
to remote unlock zstaging, from remote machine:
$ ssh zstaging_unlock
and follow prompts
ファタイ