Emre Çamalan'ın Kişisel Güncesi

Ben, sen sen olduğun için, benim!

FreeBSD: ZFS diski GELI ile şifreleme

Solaris’in efsane ZFS sistemi artık açık kaynağa kapalı , son versiyonu olan ZFSv28 ile kullanılmaya devam edilebilinecek ancak yeni çıkan özellikleri kullanılamayacak ve FreeBSD için artık yeni port yaratılmayacak. ZFS’in son sürümü olan v34’e kadar bir çok yeni özellikler eklendi :

- RAID-Z/mirror hybrid allocator
- ZFS encryption
- Improved 'zfs list' performance
- One MB block support
- Improved share support
- Sharing with inheritance

Bunlardan biri de ZFSv30 sürümü ile birlikte gelen “ZFS encryption” oldu. Şu anda Solaris'te kullanılabilir halde olan disk şifreleme özelliği diğer ZFS özellikleri gibi kullanımı çok kolay ve faydalı bir özellik.
Herhangi bir zpool yaratırken sadece “ encryption=on “ özelliğini de diğer özelliklerle birlikte komut satırına ekleyerek kullanabiliyorsunuz. Kısaca örnek vermek gerekirse;
zfs create -o encryption=on rpool/export/project

Detaylı bilgi için;
www.oracle.com/technetwork/articles/servers-storage-admin/manage-zfs-encryption-1715034.html

Diğer yandan ZFS kullanan FreeBSD kullanıcıları disk şifrelemek istediklerinde encryption özelliğinden yararlanamasa da hala Geli ile şifreleme işlemlerini gerçekleştirebilecekler. FreeBSD için disk şifreleme işlemi gbde ve geli ile yapılabilmektedir detaylı bilgi için :
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/disks-encrypting.html

GELI ile disk şifreleme
ZFS disk şifreleme yapısını bilen ve bir diski zfs yapısında olan makinalar için küçük bir örnek yapacağım.
Ilk yapmamız gereken şifreyi nerede oluşturacaksak bir klasör yapısı oluşturuyoruz. Ben kısaca /root/keys altında depoluyor olacağım bunun içinde ;

mkdir /root/keys

şimdi bir anahtar oluşturalım;

dd if=/dev/random of=/root/keys/boot.key bs=128k count=1

ve geli ile şifreleyelim;

geli init -b -K /root/keys/boot.key -s 4096 -l 256 /dev/ad0s1e
Enter new passphrase:
Reenter new passphrase:
Metadata backup can be found in /var/backups/ad0s1e.eli and
can be restored with the following command:

    # geli restore /var/backups/ad0s1e.eli /dev/ad0s1e

Buraya kadar yaptığımız işlemlerde bir şifre oluşturup /dev/ad0s1e adındaki diskimizi buna göre şifreledik.

Şimdi geli ile anahtarımızı diski attach ediyoruz ve sonrasında klasik olarak ZFS create işlemini yapacağız.

geli attach -k /root/keys/boot.key /dev/ad0s1e
zpool create tank /dev/ad0s1e.eli

aslında tüm işlemler bu kadar kolay bir şekilde diski şifreledik ve sistemimize şifresini açarak ekledik, ancak açılışta başlaması gereken bazı ayarlar var ve bunları /boot/loader.conf'a ekleyerek açılışın sorunsuz olmasını sağlayacağız.

geom_label_load="YES"
geom_mirror_load="YES"
geom_uzip_load="YES"
kern.geom.eli.visible_passphrase="1"
vfs.zfs.txg.timeout="5" 

artık makinanınız yeniden başlatarak şifreli diskinizi test edebilirsiniz ancak işlemler doğru oldu mu diye şifreli diskinizin içine birkaç örnek dosya ve klasör oluşturmanızı tavsiye ederim.

Reboottan Sonra
Makinayı yeniden başlattıktan sonra diskin durumuna bir bakın “df -h”. Zfs gözükmeyecektir çünkü disk geli tarafından şifreli ve attach edilmedi. Yapılması gereken önce diskin şifresini çözmektir, bunun için ;

geli attach -k /root/keys/boot.key /dev/ad0s1e

komutu diskimize yine anahtarımızı eklememiz sağlayacaktır ve bu süreçte şifre soracaktır yanlış girdiğiniz taktirde uyarı mesajı alacaksınız, gdbe ile şifreleme yapmış olsaydınız uyarı almadığınız gibi makinayı yeniden başlatmadan denediğiniz attachlerde sorun yaşayacaktınız.

geli attach -k /root/keys/boot.key /dev/ad0s1e
Enter passphrase:
geli: Wrong key for ad0s1e.

Sonrasında şifresi çözülmüş ZFS için tek yapmak gereken mount etmektir.

zfs mount -a

tekrar “df -h“ çıktısını kontrol edin ve ZFS in geldiğini görün artık kullanabilirsiniz.

Ek olarak açılışta şifreyi sorsun ve bilinmediği sürece de geçilmesin isteniyorsa
/etc/rc.conf 'a şu satırlar eklenmelidir;

geli_devices="ad0s1e" 
geli_ad0s1e_flags="-k /root/keys/boot.key"

eğer açılışta şifreyi soruyor da ben bu şifreyi sorsun istemiyorum diyorsanız -p parametresi size yardımcı olacaktır;

geli_devices="ad0s1e" 
geli_ad0s1e_flags="-p -k /root/keys/boot.key"

One thought on “FreeBSD: ZFS diski GELI ile şifreleme

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


*