Linux'ta 'Cryptsetup' Aracını Kullanarak Şifrelenmiş Dosya Sistemlerini Kurma ve Alanı Değiştirme - Bölüm 3


Bir LFCE (Linux Foundation Certified Engineer'in kısaltması) eğitilmiştir ve Linux sistemlerinde ağ hizmetlerini kurma, yönetme ve sorunlarını giderme konusunda uzmanlığa sahiptir ve sistem mimarisinin tasarımı, uygulanması ve sürekli bakımı.

Linux Vakfı Sertifikasyon Programına (LFCE) Giriş.

Şifrelemenin arkasındaki fikir, hassas verilerinize yalnızca güvenilir kişilerin erişmesine izin vermek ve makinenizin/sabit diskinizin kaybolması veya çalınması durumunda bunların yanlış ellere geçmesini önlemektir.

Basit bir ifadeyle, bilgilerinize erişimi "kilitlemek" için bir anahtar kullanılır, böylece sistem çalışırken ve yetkili bir kullanıcı tarafından kilidi açıldığında kullanılabilir hale gelir. Bu, eğer bir kişi disk içeriğini incelemeye çalışırsa (kendi sistemine bağlayarak veya makineyi LiveCD/DVD/USB ile başlatarak), gerçek dosyalar yerine yalnızca okunamayan verileri bulacağı anlamına gelir.

Bu makalede, standart çekirdek düzeyinde şifreleme aracı olan dm-crypt (cihaz eşleyici ve şifrelemenin kısaltması) ile şifrelenmiş dosya sistemlerinin nasıl kurulacağını tartışacağız. dm-crypt blok düzeyinde bir araç olduğundan, yalnızca tam aygıtları, bölümleri veya döngü aygıtlarını şifrelemek için kullanılabileceğini lütfen unutmayın (normal dosyalar veya dizinler üzerinde çalışmaz).

Sürücü/Bölüm/Döngü Cihazını Şifrelemeye Hazırlama

Seçtiğimiz sürücüde (/dev/sdb) bulunan tüm verileri sileceğimiz için, öncelikle o bölümde bulunan tüm önemli dosyaların yedeğini ÖNCE daha da ileri gidiyoruz.

/dev/sdb'deki tüm verileri silin. Burada dd komutunu kullanacağız, ancak bunu shred gibi diğer araçlarla da yapabilirsiniz. Daha sonra, LFCS serisinin Linux'ta Bölümler ve Dosya Sistemleri Oluşturma – Bölüm 4'teki açıklamayı izleyerek bu cihazda /dev/sdb1 adında bir bölüm oluşturacağız.

dd if=/dev/urandom of=/dev/sdb bs=4096 
Şifreleme Desteği Testi

Daha ileri gitmeden önce çekirdeğimizin şifreleme desteğiyle derlendiğinden emin olmamız gerekiyor:

grep -i config_dm_crypt /boot/config-$(uname -r)

Yukarıdaki resimde belirtildiği gibi, şifrelemeyi ayarlamak için dm-crypt çekirdek modülünün yüklenmesi gerekir.

Cryptsetup'ı yükleme

Cryptsetup, dm-crypt kullanarak şifrelenmiş dosya sistemleri oluşturmaya, yapılandırmaya, erişmeye ve yönetmeye yönelik bir ön uç arayüzüdür.

aptitude update && aptitude install cryptsetup 		[On Ubuntu]
yum update && yum install cryptsetup 				[On CentOS] 
zypper refresh && zypper install cryptsetup 			[On openSUSE]

Şifreli Bir Bölüm Kurma

cryptsetup için varsayılan işletim modu LUKS'tur (Linux Unified Key Setup), bu nedenle buna sadık kalacağız. LUKS bölümünü ve parolayı ayarlayarak başlayacağız:

cryptsetup -y luksFormat /dev/sdb1

Yukarıdaki komut, aşağıdakilerle listelenebilecek varsayılan parametrelerle cryptsetup'ı çalıştırır:

cryptsetup --version

Şifre, hash veya anahtar parametrelerini değiştirmek isterseniz –cipher, <'yi kullanabilirsiniz. /proc/crypto'dan alınan değerlerle sırasıyla b>–hash ve –key-size bayrakları.

Daha sonra LUKS bölümünü açmamız gerekiyor (daha önce girdiğimiz parola sorulacak). Kimlik doğrulama başarılı olursa, şifrelenmiş bölümümüz /dev/mapper içinde belirtilen adla mevcut olacaktır:

cryptsetup luksOpen /dev/sdb1 my_encrypted_partition

Şimdi bölümü ext4 olarak biçimlendireceğiz.

mkfs.ext4 /dev/mapper/my_encrypted_partition

ve şifrelenmiş bölümü bağlamak için bir bağlama noktası oluşturun. Son olarak bağlama işleminin başarılı olup olmadığını doğrulamak isteyebiliriz.

mkdir /mnt/enc
mount /dev/mapper/my_encrypted_partition /mnt/enc
mount | grep partition

Şifrelenmiş dosya sisteminize yazmayı veya sistemden okumayı bitirdiğinizde, sisteminizin bağlantısını kesmeniz yeterlidir.

umount /mnt/enc

ve LUKS bölümünü şunu kullanarak kapatın:

cryptesetup luksClose my_encrypted_partition
Şifrelemeyi Test Etme

Son olarak şifrelenmiş bölümümüzün güvenli olup olmadığını kontrol edeceğiz:

1. LUKS bölümünü açın

cryptsetup luksOpen /dev/sdb1 my_encrypted_partition

2. Parolanızı girin

3. Bölümü monte edin

mount /dev/mapper/my_encrypted_partition /mnt/enc

4. Bağlama noktasının içinde sahte bir dosya oluşturun.

echo “This is Part 3 of a 12-article series about the LFCE certification” > /mnt/enc/testfile.txt

5. Yeni oluşturduğunuz dosyaya erişebildiğinizi doğrulayın.

cat /mnt/enc/testfile.txt

6. Dosya sisteminin bağlantısını kesin.

umount /mnt/enc

7. LUKS bölümünü kapatın.

cryptsetup luksClose my_encrypted_partition

8. Bölümü normal bir dosya sistemi olarak bağlamayı deneyin. Bir hatayı belirtmelidir.

mount /dev/sdb1 /mnt/enc

Daha Fazla Güvenlik için Takas Alanını Şifreleyin

Şifrelenmiş bölümü kullanmak için daha önce girdiğiniz şifre, açıkken RAM belleğinde saklanır. Birisi bu anahtarı ele geçirirse verilerin şifresini çözebilecektir. Dizüstü bilgisayar söz konusu olduğunda bunu yapmak özellikle kolaydır, çünkü hazırda bekletme modundayken RAM içeriği takas bölümünde tutulur.

Anahtarınızın bir kopyasının hırsızların eline geçmesini önlemek için aşağıdaki adımları izleyerek takas bölümünü şifreleyin:

1 Takas olarak kullanılacak uygun boyutta bir bölüm oluşturun (bizim durumumuzda /dev/sdd1) ve bunu daha önce açıklandığı gibi şifreleyin. Kolaylık sağlamak için bunu yalnızca "takas" olarak adlandırın.'

2. Swap olarak ayarlayıp aktif hale getiriniz.

mkswap /dev/mapper/swap
swapon /dev/mapper/swap

3. Daha sonra /etc/fstab dosyasındaki ilgili girişi değiştirin.

/dev/mapper/swap none        	swap	sw          	0   	0

4. Son olarak /etc/crypttab dosyasını düzenleyin ve yeniden başlatın.

swap               /dev/sdd1         /dev/urandom swap

Sistem önyüklemeyi tamamladıktan sonra takas alanının durumunu doğrulayabilirsiniz:

cryptsetup status swap

Özet

Bu yazıda bir bölümün ve takas alanının nasıl şifreleneceğini araştırdık. Bu kurulumla verileriniz oldukça güvende olmalıdır. Denemekten çekinmeyin ve sorularınız veya yorumlarınız varsa bize geri dönmekten çekinmeyin. Aşağıdaki formu kullanmanız yeterli; sizden haber almaktan çok mutlu olacağız!