Güvenlik & SSL

    LUKS ile Disk Şifreleme (At-Rest Encryption)

    LUKS ile disk şifrelemeyi, açma sürecini ve at-rest veri korumasını adım adım anlatan uygulamalı rehber.

    12 dk okuma Güncellendi: 10 Temmuz 2026

    Bir sunucunun ya da dizüstü bilgisayarın diski, üzerindeki veriyi düşündüğünüzden çok daha kolay ele verir. Makineyi kapatıp diski söktüğünüz an, işletim sisteminizin bütün kullanıcı parolaları, dosya izinleri ve erişim kontrolleri bir anda devre dışı kalır. Çalınan bir sunucu diski, arızalandığı için iade ettiğiniz bir SSD ya da veri merkezinden çıkarılıp imha edilmesi gereken bir HDD; hepsi başka bir makineye takıldığında içindeki her şeyi çıplak gözle okunur hâle getirir. Parola koymuş olmanız hiçbir işe yaramaz, çünkü o parolaları kontrol eden işletim sistemi artık çalışmıyordur.

    İşte tam bu noktada at-rest şifreleme (durağan veri şifrelemesi) devreye girer ve Linux dünyasında bunun standart aracı LUKS'tur. Bu rehberde LUKS'un neyi çözdüğünü, diskin fiziksel olarak başkasının eline geçmesinin neden bir felaket olmaktan çıktığını anlatacağım. Ardından cryptsetup luksFormat ile bir bölümü baştan sona şifreleyecek, açıp dosya sistemi oluşturacak, fstab ve crypttab ile açılışta otomatik bağlanmasını sağlayacağız. Son bölümlerde asıl işin bittiği yeri, yani parola ve anahtar dosyası yönetimini, yedek anahtar yuvasını ve şifrelemenin gerçek performans etkisini ele alacağız. Komutların tamamı çalışır durumdadır; boş bir test bölümü ya da yeni bir veri diski üzerinde sırayla uygulayabilirsiniz.

    At-Rest Şifreleme Neden Kritik?#

    Verinin üç farklı hâli vardır ve her biri farklı bir tehdit modeliyle gelir. Veri "hareket hâlinde" (in-transit) olduğunda, yani ağ üzerinden akarken, onu TLS/SSL şifreler. Veri "kullanımda" (in-use) olduğunda, yani RAM'de işlenirken, onu uygulama katmanı korur. Ama veri "durağan" (at-rest) olduğunda, yani diske yazılıp orada beklerken, çoğu sistem hiçbir koruma sağlamaz. Diskteki bloklar olduğu gibi, düz metin olarak durur. LUKS bu boşluğu kapatır.

    Bu neden bu kadar önemli? Çünkü bir saldırganın veriye ulaşmak için sisteminizi hacklemesi gerekmez; diske fiziksel olarak ulaşması yeterlidir. Aşağıdaki senaryoların hepsi at-rest şifreleme olmadan tam bir veri sızıntısıdır:

    • Veri merkezinden çalınan ya da yanlışlıkla başka bir müşteriye verilen bir disk.
    • Arızalanıp garanti kapsamında üreticiye iade edilen, ama içi silinemeyen bir SSD.
    • Kullanım ömrü biten ve düzgün imha edilmeden çöpe atılan sürücüler.
    • Yedeklerinizi tuttuğunuz harici disk veya sunucu diskinin kaybolması.
    • Bir hukuki el koyma sürecinde tüm disklerin kopyalanması.

    Şifreli bir diskte bunların hiçbiri veri kaybı anlamına gelmez. Disk başka bir makineye takıldığında, karşı taraf yalnızca anlamsız bir bit yığını görür; parolayı ya da anahtar dosyasını bilmeden içeriği çözmek pratikte imkânsızdır. Bu yüzden at-rest şifreleme, KVKK ve GDPR gibi düzenlemelerin de veri sorumluları için önerdiği temel bir teknik tedbirdir. Sunucularınızın genel güvenlik duruşunu güçlendirmek istiyorsanız, disk şifrelemeyi Linux sunucu güvenliği temelleri rehberindeki diğer sertleştirme adımlarıyla birlikte düşünmelisiniz.

    LUKS Nedir ve Nasıl Çalışır?#

    LUKS, Linux Unified Key Setup kelimelerinin kısaltmasıdır ve Linux çekirdeğindeki dm-crypt altyapısının üzerine oturan bir disk şifreleme standardıdır. Şifreleme işini asıl yapan çekirdek modülü dm-crypt'tir; LUKS ise bu ham şifrelemenin üzerine standart bir "başlık" (header) formatı, anahtar yönetimi ve birlikte çalışabilirlik ekler. Yani sadece dm-crypt ile de şifreleme yapabilirsiniz, ama anahtar değiştirme, birden fazla parola tanımlama ve taşınabilirlik gibi konularda LUKS size hazır bir düzen sunar.

    LUKS'un çalışma mantığını anlamanın anahtarı iki katmanlı anahtar yapısıdır. Diskteki veri, doğrudan sizin parolanızla şifrelenmez. Bunun yerine rastgele üretilen bir ana anahtar (master key) ile şifrelenir. Sizin parolanız ise bu ana anahtarı kilitleyen bir yuvada (key slot) saklanır. Bu ayrım çok kritiktir: parolanızı değiştirmek istediğinizde, koca diski yeniden şifrelemeniz gerekmez; sadece ana anahtarı yeni parolanızla tekrar kilitlersiniz. LUKS başlığında birden fazla anahtar yuvası (LUKS1'de 8, LUKS2'de 32'ye kadar) bulunur, dolayısıyla aynı disk için birden fazla parola ya da anahtar dosyası tanımlayabilirsiniz.

    KavramAçıklama
    dm-cryptÇekirdek düzeyinde şifreleme yapan modül
    LUKS başlığıBölümün başında duran, anahtar yuvalarını ve şifre parametrelerini tutan alan
    Ana anahtarVerinin gerçekte kendisiyle şifrelendiği rastgele anahtar
    Anahtar yuvasıParola veya anahtar dosyasının ana anahtarı açtığı slot
    PassphraseBir yuvayı açan kullanıcı parolası

    LUKS'un iki sürümü vardır. LUKS1 klasik ve çok yaygın desteklenen sürümdür; başlığı basittir. LUKS2 ise varsayılan hâle gelmiş yeni nesildir; anahtar türetme için argon2id algoritmasını kullanarak kaba kuvvet saldırılarına karşı çok daha dirençlidir, başlık yedekliliği sunar ve daha fazla yuva destekler. Yeni bir kurulum yapıyorsanız LUKS2 tercih edin; cryptsetup modern dağıtımlarda zaten varsayılan olarak LUKS2 oluşturur.

    cryptsetup ile Bölümü Şifreleme#

    Şifrelemeye başlamadan önce hangi diski ya da bölümü kullanacağınıza karar verin. Bu işlem hedefteki tüm veriyi kalıcı olarak siler, o yüzden boş bir disk ya da yeni bir veri bölümü seçin. Diskleri listelemek için lsblk kullanın:

    lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
    

    Diyelim ki /dev/sdb1 adında, henüz kullanılmayan bir bölümümüz var ve bunu şifreleyeceğiz. Önce cryptsetup'ın kurulu olduğundan emin olun:

    # Debian / Ubuntu
    sudo apt update && sudo apt install cryptsetup -y
    
    # AlmaLinux / Rocky / RHEL
    sudo dnf install cryptsetup -y
    

    Şimdi bölümü LUKS formatına dönüştürüyoruz. luksFormat komutu bölümün başına LUKS başlığını yazar ve ilk anahtar yuvasına gireceğiniz parolayı yerleştirir:

    sudo cryptsetup luksFormat --type luks2 /dev/sdb1
    

    Komut sizi büyük harflerle YES yazmaya zorlayan bir uyarı gösterir; bu, "bu bölümdeki her şey silinecek" onayıdır. Ardından iki kez parola sorar. Buraya güçlü bir parola girin, çünkü diskinizin güvenliği tamamen bu parolanın gücüne bağlıdır. Kısa ya da tahmin edilebilir bir parola, tüm şifrelemeyi anlamsız kılar; parola politikası konusunda titiz davranın.

    İsterseniz şifreleme algoritmasını ve anahtar boyutunu açıkça belirtebilirsiniz. Varsayılan aes-xts-plain64 çoğu senaryo için ideal olsa da, açıkça yazmak istediğinizde şöyle yaparsınız:

    sudo cryptsetup luksFormat --type luks2 \
      --cipher aes-xts-plain64 \
      --key-size 512 \
      --hash sha256 \
      --pbkdf argon2id \
      /dev/sdb1
    

    Format tamamlandığında başlığı inceleyerek her şeyin yerinde olduğunu doğrulayabilirsiniz. luksDump size sürümü, kullanılan şifreleme algoritmasını ve dolu anahtar yuvalarını gösterir:

    sudo cryptsetup luksDump /dev/sdb1
    

    Çıktıda Version: 2, kullandığınız cipher ve en az bir Keyslot göreceksiniz. Bu, bölümün artık şifreli olduğu ve kullanıma hazır olduğu anlamına gelir.

    Şifreli Bölümü Açma ve Biçimlendirme#

    Şifreli bir LUKS bölümünü doğrudan kullanamazsınız; önce onu "açmanız" gerekir. Açma işlemi parolayı doğrular, ana anahtarı çözer ve /dev/mapper/ altında şifresi çözülmüş bir sanal cihaz oluşturur. Bu sanal cihaz üzerinden yaptığınız her okuma/yazma, çekirdek tarafından anlık olarak şifrelenip çözülür; siz sadece normal bir disk kullanıyormuş gibi hissedersiniz.

    Bölümü açmak için luksOpen (veya kısaca open) kullanılır. Son parametre, oluşturulacak eşleştirici cihazın adıdır; burada veri_disk diyelim:

    sudo cryptsetup open /dev/sdb1 veri_disk
    

    Parolayı girdikten sonra artık /dev/mapper/veri_disk cihazı ortaya çıkar. İlk açtığınızda bu cihazın üzerinde henüz bir dosya sistemi yoktur, dolayısıyla bir tane oluşturmalısınız. ext4 yaygın ve güvenilir bir seçimdir:

    sudo mkfs.ext4 /dev/mapper/veri_disk
    

    Dosya sistemi hazır olunca artık bunu bir dizine bağlayabilirsiniz:

    sudo mkdir -p /mnt/guvenli
    sudo mount /dev/mapper/veri_disk /mnt/guvenli
    

    Bu andan itibaren /mnt/guvenli altına yazdığınız her şey şifreli olarak diske iner. İşiniz bittiğinde ya da makineyi kapatmadan önce diski güvenli biçimde kapatmak için önce bağlantıyı kaldırır, sonra LUKS cihazını kapatırsınız:

    sudo umount /mnt/guvenli
    sudo cryptsetup close veri_disk
    

    Cihaz kapatıldığı anda /dev/mapper/veri_disk kaybolur ve ana anahtar bellekten silinir. Artık disk yeniden yalnızca parolayla açılabilen şifreli bir bloktur. Bu manuel açma süreci geçici testler için idealdir; kalıcı sunucu kurulumlarında ise açılışta otomatik bağlamayı yapılandırmak istersiniz.

    fstab ve crypttab ile Otomatik Bağlama#

    Sunucu yeniden başladığında şifreli diskin otomatik olarak açılıp bağlanması için iki dosya birlikte çalışır: /etc/crypttab LUKS cihazının nasıl açılacağını, /etc/fstab ise açılan cihazın nereye bağlanacağını tanımlar. Sıralama önemlidir; önce crypttab cihazı açar, sonra fstab onu mount eder.

    Yapılandırmadan önce diskin UUID'sini almanız gerekir. Cihaz adları (/dev/sdb1) yeniden başlatmalarda değişebilir, ama UUID sabittir. Şifreli bölümün UUID'sini şöyle alırsınız:

    sudo blkid /dev/sdb1
    

    Çıktıdaki UUID="..." değerini kopyalayın. Şimdi /etc/crypttab dosyasına şu satırı ekleyin (UUID'yi kendi değerinizle değiştirin):

    # <isim>      <cihaz>                                  <anahtar>  <seçenekler>
    veri_disk  UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  none       luks
    

    Buradaki none, "anahtarı açılışta klavyeden sor" anlamına gelir; yani sunucu her açıldığında konsola parola girmeniz istenir. Sonraki bölümde bunun yerine bir anahtar dosyası kullanarak parolasız açmayı göstereceğim. Ardından /etc/fstab dosyasına, açılan /dev/mapper/veri_disk cihazının nereye bağlanacağını yazın:

    /dev/mapper/veri_disk  /mnt/guvenli  ext4  defaults  0  2
    

    Yeniden başlatmadan önce yapılandırmayı test etmek akıllıca olur, çünkü hatalı bir crypttab/fstab kombinasyonu sunucuyu açılışta askıda bırakabilir. Değişiklikleri şöyle sınayabilirsiniz:

    sudo systemctl daemon-reload
    sudo cryptdisks_start veri_disk   # Debian/Ubuntu
    sudo mount -a
    

    Her şey sorunsuz mount olduysa yapılandırmanız doğru demektir. Klavyeden parola sorma yöntemi fiziksel konsol erişiminiz olan sunucular için uygundur, ancak uzaktaki bir VDS'te her yeniden başlatmada elle parola girmek pratik değildir. Sürekli erişim gereken üretim sunucuları için Clou.TR sanal sunucularının konsol erişimini kullanabilir ya da bir sonraki bölümdeki anahtar dosyası yöntemini tercih edebilirsiniz.

    Passphrase ve Anahtar Dosyası Yönetimi#

    LUKS'un en güçlü yanlarından biri, bir bölüme birden fazla açma yöntemi tanımlayabilmenizdir. Her anahtar yuvası bağımsızdır; birini eklemek ya da silmek diğerlerini etkilemez ve hiçbiri diski yeniden şifrelemeyi gerektirmez. Bu esneklik, hem yedek erişim hem de otomasyon için kapı açar.

    Öncelikle yedek bir parola eklemenizi şiddetle öneririm. Tek parolanızı unutur ya da kaybederseniz, o disk sonsuza dek erişilemez hâle gelir; kurtarma yoktur. İkinci bir yuvaya yedek bir parola eklemek için luksAddKey kullanılır. Komut önce mevcut geçerli bir parolayı, sonra eklemek istediğiniz yeni parolayı sorar:

    sudo cryptsetup luksAddKey /dev/sdb1
    

    Otomasyon ve parolasız açılış için ise anahtar dosyası (keyfile) kullanılır. Bu, rastgele baytlardan oluşan bir dosyadır ve parola yerine geçer. Önce güvenli bir anahtar dosyası üretip izinlerini kısıtlayın:

    sudo dd if=/dev/urandom of=/root/veri_disk.key bs=512 count=4
    sudo chmod 400 /root/veri_disk.key
    

    Sonra bu anahtar dosyasını yeni bir LUKS yuvasına ekleyin:

    sudo cryptsetup luksAddKey /dev/sdb1 /root/veri_disk.key
    

    Artık crypttab satırındaki none yerine anahtar dosyasının yolunu yazarsanız, sunucu açılışta parola sormadan diski otomatik açar:

    veri_disk  UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  /root/veri_disk.key  luks
    

    Burada dikkat edilmesi gereken bir güvenlik dengesidir. Anahtar dosyası aynı diskin şifresiz bir bölümünde (örneğin kök dosya sisteminde) duruyorsa, o makineye erişen biri hem anahtarı hem şifreli diski birlikte ele geçirir. Bu yüzden anahtar dosyası yöntemi, asıl korunmak istenen şeyin diskin fiziksel olarak çalınması olduğu senaryolarda mantıklıdır: makine çalışırken güvenli ortamdadır, ama disk sökülüp götürülürse tek başına işe yaramaz. Aşağıdaki tablo yaygın anahtar yönetimi komutlarını özetliyor:

    Komutİşlevi
    luksAddKeyYeni bir parola veya anahtar dosyası yuvası ekler
    luksRemoveKeyBelirli bir parolayı/yuvayı siler
    luksKillSlotNumarasıyla belirli bir yuvayı iptal eder
    luksChangeKeyMevcut bir yuvanın parolasını değiştirir
    luksDumpBaşlığı ve dolu yuvaları listeler

    Son olarak, kritik bir uyarı: LUKS başlığı bozulursa (diskin ilk birkaç megabaytı zarar görürse) tüm veri erişilemez hâle gelir, çünkü ana anahtar orada saklıdır. Bu yüzden başlığın bir yedeğini alıp güvenli bir yerde saklayın:

    sudo cryptsetup luksHeaderBackup /dev/sdb1 \
      --header-backup-file /root/sdb1-luks-header.img
    

    Bu başlık yedeğini ve şifreli veriyi düzenli olarak dış bir konuma kopyalamak için rsync ile yedekleme yöntemini kullanabilirsiniz; şifreli veri zaten şifreli olduğu için ağ üzerinden taşınırken de güvendedir.

    Performans Etkisi ve Optimizasyon#

    Disk şifrelemeyi ilk kez kuranların en büyük endişesi performans kaybıdır. İyi haber şu: modern donanımda bu kayıp çoğu iş yükünde göz ardı edilebilir düzeydedir. Bunun nedeni, işlemcilerin neredeyse tamamında bulunan AES-NI (AES New Instructions) donanım hızlandırmasıdır. Bu komut seti, AES şifrelemeyi doğrudan işlemci içinde yaptığı için yazılımsal şifrelemeye göre kat kat hızlıdır.

    İşlemcinizin AES-NI desteğini şöyle kontrol edebilirsiniz; çıktıda aes bayrağını görmeniz gerekir:

    grep -m1 -o aes /proc/cpuinfo
    

    Sisteminizin çözebileceği ham şifreleme hızını cryptsetup benchmark ile ölçebilirsiniz. Bu komut hiçbir diske dokunmaz; sadece CPU'nun saniyede kaç MB şifreleyip çözebildiğini gösterir:

    cryptsetup benchmark
    

    AES-NI destekli tipik bir sunucuda aes-xts satırında saniyede birkaç GB'lık değerler görürsünüz; bu, çoğu SSD'nin okuma/yazma hızının çok üzerindedir; yani şifreleme darboğaz olmaz. Gerçek performans etkisini belirleyen birkaç faktör vardır:

    • AES-NI varlığı: Donanım hızlandırma varsa etki minimaldir, yoksa CPU tabanlı bölüme belirgin yük biner.
    • Depolama türü: Çok hızlı NVMe disklerde, şifreleme katmanı en belirgin gecikmeyi yaratan yerdir; buna rağmen fark genellikle küçük kalır.
    • İş yükü profili: Yoğun rastgele küçük okuma/yazma yapan veritabanları, büyük sıralı dosya transferlerine göre biraz daha fazla etkilenir.
    • İş parçacığı sayısı: dm-crypt paralel çalışabildiği için çok çekirdekli işlemciler yükü dağıtır.

    Pratikte, sıradan bir web sunucusu, dosya deposu ya da yedek diski için LUKS'un getirdiği yavaşlamayı kullanıcılar fark etmez. Aşırı yüksek IOPS gerektiren özel senaryolarda önce benchmark ile ölçüm yapmanız, sonra karar vermeniz en sağlıklısıdır. Kısacası güvenlik kazancı, neredeyse her zaman küçük performans bedeline değer.

    Sıkça Sorulan Sorular#

    LUKS ile şifrelenmiş bir diskin parolasını unutursam veriye ulaşabilir miyim?#

    Hayır, geçerli hiçbir anahtar yuvasına erişiminiz kalmadıysa veri kalıcı olarak erişilemez hâle gelir ve bir kurtarma yöntemi yoktur. LUKS'un tüm güvenlik modeli tam olarak buna dayanır; başkasının parolasız çözememesi, sizin de çözememeniz anlamına gelir. Bu yüzden en başından ikinci bir yedek parola veya anahtar dosyası yuvası eklemeli ve LUKS başlığının yedeğini güvenli bir yerde saklamalısınız.

    LUKS bölümünü veri kaybetmeden şifreli hâle getirebilir miyim?#

    cryptsetup luksFormat komutu hedef bölümü tamamen sildiği için doğrudan yapamazsınız. Var olan verili bir bölümü şifrelemenin yolu, cryptsetup reencrypt aracının yerinde şifreleme özelliğini kullanmaktır; ancak bu riskli bir işlemdir ve işlem sırasında elektrik kesintisi veriyi bozabilir. En güvenli yaklaşım, veriyi başka bir yere yedeklemek, bölümü sıfırdan LUKS ile formatlamak ve ardından yedeği geri yüklemektir.

    LUKS ile dosya bazlı şifreleme arasındaki fark nedir?#

    LUKS blok düzeyinde çalışır, yani diskin ya da bölümün tamamını şeffaf biçimde şifreler ve siz açtıktan sonra dosyalarla normal şekilde çalışırsınız. Dosya bazlı şifreleme (örneğin GPG) ise tek tek dosyaları ayrı ayrı şifreler ve her dosyayı kullanmadan önce elle çözmeniz gerekir. Sunucunun tüm veri diskini korumak için LUKS, tekil hassas dosyaları paylaşmak için dosya bazlı şifreleme daha uygundur.

    Şifreli bir sunucu her yeniden başladığında parola girmek zorunda mıyım?#

    Varsayılan crypttab yapılandırması açılışta konsoldan parola ister, ama bunu bir anahtar dosyası tanımlayarak parolasız hâle getirebilirsiniz. Anahtar dosyasını kök dosya sisteminde tuttuğunuzda sunucu kendi kendine açılır; bu, diskin fiziksel olarak çalınmasına karşı korur ama makineye erişen birine karşı korumaz. Yüksek güvenlik gereken ortamlarda TPM tabanlı açma ya da uzaktan anahtar sağlama gibi ileri yöntemler tercih edilir.

    Performans için hangi şifreleme algoritmasını seçmeliyim?#

    Neredeyse tüm modern senaryolarda varsayılan aes-xts-plain64 en iyi seçimdir, çünkü işlemcilerin AES-NI donanım hızlandırmasından doğrudan yararlanır ve hem güvenli hem hızlıdır. İşlemcinizde AES-NI yoksa xchacha20 gibi yazılımda hızlı çalışan alternatifler değerlendirilebilir. Karar vermeden önce cryptsetup benchmark komutunu çalıştırıp kendi donanımınızdaki gerçek hızları görmeniz en doğru yöntemdir.

    Kapanış#

    LUKS, Linux üzerinde durağan veri güvenliğini sağlamanın en olgun, en yaygın desteklenen ve en pratik yoludur. Bu rehberde bir bölümü baştan sona şifreledik, açıp dosya sistemi oluşturduk, crypttab ve fstab ile açılışta otomatik bağlanmasını yapılandırdık, birden fazla anahtar yuvasıyla yedek erişim tanımladık ve performans etkisinin modern donanımda ne kadar küçük olduğunu gördük. En kritik iki alışkanlığı unutmayın: mutlaka ikinci bir kurtarma anahtarı ekleyin ve LUKS başlığının yedeğini güvenli bir yerde saklayın; çünkü şifrelemenin gücü aynı zamanda affetmez katılığıdır.

    Verilerinizi güvenle barındıracağınız bir altyapı arıyorsanız Clou.TR olarak yanınızdayız. Tam kök erişimiyle LUKS gibi çözümleri özgürce kurabileceğiniz sanal sunucu (VDS) paketlerimizi inceleyebilir, güvenli yedekleme altyapısı için yedekleme hizmetlerimize göz atabilir ya da sunucunuzun sertleştirilmesi ve bakımı konusunda sunucu yönetimi desteğimizden faydalanabilirsiniz. Doğru yapılandırılmış bir şifreleme, çalınan bir diski değersiz bir metal parçasına dönüştürür; bu huzuru bugün kurmaya başlayın.

    ŞifrelemeLinuxDepolama

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.