Yusuf Yaman'ın bloğu

FreeBSD UEFI sistemde GELI ile ZFS diskinizi şifreleyin!

Merhaba. Bu yazıda hali hazırda UEFI sistem tarafından kullanılan zroot havuzunun içinde şifrelenmiş bir disk bölümünün bulunduğu havuza nasıl ikincil bir disk ekleyerek bir ayna oluşturabileceğinizi ve nasıl ikinci disk için bilgisayar önyükleme yaparken şifre sormadan bağlayabileceğinizi anlatacağım.

Kurulumdan sonra zroot havuzunuz aşağıdaki şekilde görünecektir. Hazırdaki nda0p3 bölümünün yanına da0p3 bölümü yeni eklendi.

% zpool status zroot
pool: zroot
state: ONLINE
scan: resilvered 79.6G in 00:13:24 with 0 errors on Thu Oct  3 01:07:49 2024
config:
    NAME                    STATE     READ WRITE CKSUM
    zroot                   ONLINE       0     0     0
        mirror-0            ONLINE       0     0     0
            nda0p3.eli      ONLINE       0     0     0
            da0p3.eli       ONLINE       0     0     0
      
errors: No known data errors

Kurulum

Öncelikle sıfır bir disk olduğunu varsayarak ZFS ve UEFI sistem için bölümleri oluşturalım.

gpart create -s gpt da0
gpart add -a 4k -t efi -s 100MB -l efiboot0 da0
gpart add -a 4k -t freebsd-swap -s 32GB -l swap0 da0
gpart add -a 4k -t freebsd-zfs -l zfs0 da0

Bölümleri formatlayalım.

# EFI bölümü
newfs_msdos -F32 -c1 /dev/gpt/efiboot0
mount_msdosfs /dev/gpt/efiboot0 /media
mkdir -p /media/efi/boot
cp /boot/loader.efi /media/efi/boot/bootx64.efi
sync && sync && sync && sync
umount /media
# SWAP bölümü
swapon /dev/gpt/swap0

GELI ile da0p3 kök bölümünü şifreleyelim.

dd if=/dev/random of=/boot/da0p3.key bs=64 count=1
geli init -b -s4096 -l256 -k /boot/da0p3.key da0p3
geli attach -k /boot/da0p3.key da0p3

Şimdi da0p3 bölümünü şifreledik ve artık şifrelenen bölümü zroot havuzuna ekleyebiliriz.

zpool attach zroot nda0p3.eli da0p3.eli

Artık Resilvering işlemi başlayacaktır ve havuzun kontrolünü zpool status zroot komutuyla takip edebilirsiniz.

Resilvering işlemi bittikten sonra bilgisayar önyükleme yaparken da0p3 bölümünün otomatikmen şifrelemesini çözmek için /boot/loader.conf dosyasına komutlar ekleyeceğiz.

geli_da0p3_keyfile0_load="YES"
geli_da0p3_keyfile0_type="da0p3:geli_keyfile0"
geli_da0p3_keyfile0_name="/boot/da0p3.key"

Şimdi sisteminizi yeniden başlatıp kontrol edebilirsiniz. Eğer bir problem olup sisteminiz açılışta donarsa, tek kullanıcı moduna girip yaptığınız değişiklikleri kontrol edip, düzeltebilirsiniz ya da geri alabilirsiniz.