LVM ve LUKS bölümlerini otomatik şifreleme bölümü ile nasıl yapılandırabilirim?


21

Geçenlerde ubuntu server 11.04'ü tam lvm şifrelemesi ile kurdum (kurulumdan yükledim). Şimdi otomatik kilit açma yapmak için bir anahtar dosyası kullanmak istiyorum. Bu kılavuzu takip etmeye çalıştım http://ubuntuforums.org/showthread.php?t=837416

Bu komutla bir anahtar oluşturdum: sudo dd if=/dev/urandom of=/boot/grub/keyfile bs=1024 count=4

koydum /boot/grubçünkü şifreli olmadığını düşünüyorum. Bu virgül ile anahtarı eklemeye çalıştığımda sudo cryptsetup luksAddKey /dev/sdX /boot/grub/keyfile bana parola soruyor ve hiçbir şey olmadığında, ekrana hiçbir şey basılmıyor ! Bunu görmezden gelip diğerlerinin adımlarına devam edip yeniden başlatacağım ama hiçbir şey olmadı ve parola istendi.

Yardım için teşekkürler .


Parola girmeden şifre çözme mi demek istiyorsunuz? Önyükleme işlemi bunu yapabilirse, ses seviyesinin şifresini çözmek için gerekli anahtarların önyükleme sırasında erişilebilir bir yerde olması gerekir. Bunun sizi veri hırsızlığından korumasını nasıl beklersiniz?
James Henstridge

evet, anahtarı gizli bir bölüme veya bir usb flash sürücüye koyacağımı düşünüyorum. Mümkün mü ?
isoman

Buradaki sorun, eğer önyükleyici yükleyici anahtarı bulabilirse, (şifrelenmemiş) önyükleme kodunu kontrol eden birisinin de onu bulabilmesidir. Anahtarı bir USB çubuğunda saklarsanız, çubuğun bilgisayarla çalınmayacağından emin olmak istersiniz. Çubuğu yalnızca önyükleme sırasında takacaksanız, parola girmekten daha uygun değildir.
James Henstridge

Autodecrypt nasıl durdurulur: askubuntu.com/questions/615408/…
Ciro Santilli,

Yanıtlar:


27

Yeni ev sunucumda bu konuda çok şey yaşadım, çok fazla googling ve tahminde bulunuldu, ancak çalışmasını sağladım. Buradaki adımları tekrarlamaya çalışacağım. Ubuntu Server 11.10 kullanıyorum ve şifreli LVM kullanarak oldukça standart bir kurulumla başladım, bu yüzden sadece oradan yaptığım değişiklikleri ilişkilendireceğim.

Kurmak:

  • / dev / sda1 benim şifrelenmemiş / önyükleme bölümüm
  • / dev / sda5 benim her şeyimi içeren lvm bölümüm - root, swap ve home
  • / dev / sdc1, USB flash sürücümdeki ana dosyayı saklayacağım bölüm

İlk önce, sadece giriş dizinimde bir anahtar dosya oluşturdum:

dd if=/dev/urandom of=keyfile bs=512 count=4

(daha büyük bir anahtar boyutu veya daha büyük bir anahtar için sayma kullanabilirsiniz)

Cryptset'e yeni anahtarı ayarla (dosya adı değil, önemli olan içerik):

sudo cryptsetup luksAddKey /dev/sda5 keyfile

Sonra USB flash sürücümü ext2 ile biçimlendirdim ve bir etiket verdim. Bir etiket kullandım, böylece daha sonra bir etikete monte edebilirim ve bir sorun çıkarsa diye USB flash sürücüyü değiştirebilirim.

sudo mkfs -t ext2 /dev/sdc1
sudo e2label /dev/sdc1 KEYS

(elbette cihazınız değişebilir)

Şimdi, ana dosyayı 400 kök moduna sahip olan USB flash sürücüye kopyalayın:

mkdir KEYS
sudo mount /dev/sdc1 KEYS
sudo cp keyfile KEYS
sudo chown root KEYS/keyfile
sudo chmod 400 KEYS/keyfile

/ Etc / crypttab dosyasını değiştirin. Mine başlangıçta içerdiği

sd5_crypt UUID=(...) none luks

değiştirdiğim

sd5_crypt UUID=(...) /dev/disk/by-label/KEYS:/keyfile luks,keyscript=/lib/cryptsetup/scripts/passdev

Son olarak, initramfs’ı güncelleyin:

sudo update-initramfs -uv

Şimdi USB flash sürücüdeki ana dosyayı kullanarak önyükleme yapar. Flash sürücüyü çıkarırsam (örneğin tatile gittiğimde) önyükleme yapmaz ve verilerim güvendedir.

Birisi USB flash sürücü eksikse parola sorma konusunda nasıl bilgi sahibi olacağını bilirse, bu bir geri dönüş olarak faydalı olacaktır. Bu yardımcı olur umarım, herhangi bir ekleme veya düzeltmelerden çok daha fazlası olur!


3
Parola isteminin nasıl alınacağından emin değilseniz, bir anahtar dosya arayan alternatif bir initramfs aracılığıyla yüklemek ve sabit diskte varsayılan önyükleme yapılmasını isteyen normal bir initramfs yüklemek için flash sürücüdeki önyüklenebilir bir bölüm kullanabilirsiniz. bir şifre.
Reinstate Monica - ζ--

1
@ 3pic Birkaç ay önce yaptığımdan beri% 100 emin değilim. Ancak Ubuntu sanal bir dosya sistemine girer. ona komut dosyası keyscript=/lib/cryptsetup/scripts/passdevekler passdev. Ve sonra update-initramfs -uvdosya sistemi arşivini yeniden oluşturur.
VarunAgw

1
@RandyOrrison bu gerçekten harika. İşe yarıyor. Ama ... initramdan geçtikten sonra, bir veya iki dakika boyunca A start job is running for dev-sda8:-keyfile.device (1min 18s...)vb. İle oturur. Geçer , her şey monte edilir, ancak bir süre daha takılır. Log, "dev-sda8: -sda7keyfile.device aygıtını beklerken zaman aşımına uğradı; sda7crypt için Crypto Setup bağımlılığı başarısız oldu." Tabii ki, zaten initram tarafından monte edildi, fakat .... Neyi yanlış yapıyorum?
07

1
Bazı nedenlerden dolayı systemd ile çalışmak / hoş görünmüyor; sadece keyscriptalanı tamamen görmezden gelecek .
Etienne Bruines

1
Ubuntu 17.10+ sürümünde, update-initramfs aracı, kök dosya sisteminiz bir luk birimi üzerindeyse ve bir anahtar dosyası varsa, bir lümen birimi önyükleyebilen bir initramfs görüntüsü oluşturmaz. Keyfile değeri olarak "none" bırakarak ve keyscript = / etc / my-keyscript, / etc / my-keyscript anahtarını basan bir kabuk betiği olacak seçenekleri ayarlayarak çalışmasını sağlayabilirsiniz.
Macil

6

Howtoforge.com adresinden gelen bu talimatlar beni otomatik olarak şifre çözme birimi ile çalıştırmaya başladı.

Nasıl yapılır: Bir Keyfile ile LUKS Şifrelenmiş Sürücüleri Otomatik Olarak Açma

1. Adım: Rasgele bir anahtar dosya oluşturun

sudo dd if=/dev/urandom of=/root/keyfile bs=1024 count=4

Adım 2: Anahtar dosyayı salt okunur duruma getirin

sudo chmod 0400 /root/keyfile

Bu, anahtar dosyayı yalnızca kök tarafından okunabilir hale getirir. Birisi bu anahtar dosyaya erişebilirse, o zaman yine de bilgisayarınızda daha büyük bir sorun yaşarsınız.

Alternatif olarak istediğiniz key dosyasını root'a kopyalayın: root ve / root klasörüne taşıyın

Adım 3: Ana dosyayı LUKS'a ekleyin

LUKS / dm_crypt etkin cihazlar 10 farklı anahtar dosya / şifre alabilir. Dolayısıyla, önceden ayarlanmış bir şifrenin yanında, bu anahtar dosyayı ek yetkilendirme yöntemi olarak ekleyeceğiz.

sudo cryptsetup luksAddKey /dev/sdX /root/keyfile

sdX elbette LUKS cihazınızdır.

İlk önce sürücünün kilidini açmak için (mevcut) bir şifre girmeniz istenir. Her şey yolunda giderse, bunun gibi bir çıktı almalısınız:

Enter any LUKS passphrase:
key slot 0 unlocked.
Command successful.

4. Adım: Eşleştirici oluşturun

LUKS cihazlarının daha sonra fstab'da referans alınabilecek bir eşleyici oluşturması gerekir. / Etc / crypttab dosyasını açın.

sudo nano /etc/crypttab

ve sonra böyle bir satır ekleyin:

sdX_crypt      /dev/sdX  /root/keyfile  luks

veya cihazın UUID'sini kullanabilirsiniz:

sdX_crypt      /dev/disk/by-uuid/247ad289-dbe5-4419-9965-e3cd30f0b080  /root/keyfile  luks

sdX_crypt, oluşturulan eşleştiricinin adıdır. Burada "müzik" veya "filmler" veya "sfdsfawe" gibi herhangi bir ismi kullanabilirsiniz.

Ctrl-x tuşlarına basarak dosyayı kaydedin ve kapatın, enter, enter. Ctrl-x nano'yu kapatır, ancak önce [yes = enter] dosyasını kaydetmeyi ister ve adın ne olacağını [aynı ad = enter] yapar.

Orada yaptığımız şey aslında sürücünün kilidini açmak için / root / keyfile dosyasının şifre girişi yerine kullanılması gerektiğini söylüyor.

Adım 5: Cihazı fstab'a monte edin

Şimdi, kilitsiz bir cihazımız var (henüz değil ama sistem başlatılırken) ve şimdi takmamız gerekiyor. / Etc / fstab dosyasını açın:

sudo nano /etc/fstab

ve şunun gibi yeni bir giriş ekleyin:

/dev/mapper/sdX_crypt  /media/sdX     ext3    defaults        0       2

4. adımda eklediğiniz doğru eşleyici adının bulunduğundan emin olun. Ayrıca bağlama noktası / klasörün bulunduğundan emin olun. Ekledikten sonra, dosyayı tekrar kaydedin ve kapatın (ctrl-x, enter, enter).

Adım 6: Yeniden başlat veya yeniden başlat

Bu kadar. Şimdi yeniden başlatabilirsiniz ve ek cihazların kilidi otomatik olarak açılmalı ve monte edilmelidir. Tüm aygıtları yeniden takarak da test edebilirsiniz:

sudo mount -a

1
güncellemeyi unuttun initramfs,% 100 gerekli
3pic

6

Randy Orrison'un cevabını iyileştirmek , işte yarattığım küçük bir senaryo. Bu, sistemin ana dosyayı bulamaması durumunda kullanıcıdan şifre istemesine geri dönmesini sağlayacak.

#!/bin/sh

ask_for_password () {
    cryptkey="Unlocking the disk $cryptsource ($crypttarget)\nEnter passphrase: "
    if [ -x /bin/plymouth ] && plymouth --ping; then
        cryptkeyscript="plymouth ask-for-password --prompt"
        cryptkey=$(printf "$cryptkey")
    else
        cryptkeyscript="/lib/cryptsetup/askpass"
    fi
    $cryptkeyscript "$cryptkey"
}

device=$(echo $1 | cut -d: -f1)
filepath=$(echo $1 | cut -d: -f2)

# Ask for password if device doesn't exist
if [ ! -b $device ]; then
    ask_for_password
    exit
fi

mkdir /tmp/auto_unlocker
mount $device /tmp/auto_unlocker

# Again ask for password if device exist but file doesn't exist
if [ ! -e /tmp/auto_unlocker$filepath ]; then
    ask_for_password
else
    cat /tmp/auto_unlocker$filepath
fi

umount /tmp/auto_unlocker

Bunun kaydet ve değiştir keyscript=/lib/cryptsetup/scripts/passdevde /etc/crypttabbu dosyaya ve kaçak yolu ile sudo update-initramfs -uvve bitirdiniz.


Çözümünüz usb sürücü için birden fazla anahtar dosya için çalışmıyor sanırım. Birden fazla şifreli bölüme sahipsem (ev, takas, kök). Cat komutundan sonra USB sürücüsünün bağlantısını kesmemesini önler. Nasıl düzeltileceği hakkında bir fikrin var mı?
Khamidulla

Bu benim için çalışıyor (Xubuntu 17.10) ancak grub düzenlemek ve "splash" ı kaldırmak zorunda kaldım. Ayrıca dosyayı uygun bir yere (/ lib / cryptsetup / scripts / unlock_custom) uygun bir yere kaydetmem ve 755 chmod yapmam gerekti. Belirli bir yerde sıçrama veya kopyalama yapmak benim için işe yarayıp yaramadığından emin değildi, ama daha önce işe yaramadı. Her neyse, işe yarıyor ama önyüklemede, aldıktan sonra Startet AppArmor initialization.: dev-keykeydevice (1m 30s) için bir başlangıç ​​işi başlıyor. 90'ların X'i başladıktan sonra ve sistemimi kullanabiliyorum ... bu başlangıç ​​işini nasıl düzelteceğimi bilmiyorum ...
firepol

1

@deitch @Randy Orrison gibi aynı kurulumu yaptım ve seninle aynı sorunu yaşadım ve sonuçta / etc / crypttab içindeki ilgili girişi bulduğunda / filesystem'i tekrar monte etmeye çalışan bir systemd hatası oluştu.

Bunu çözmek için, update-initramfs -uv komutu çalıştırıldığında sda5_crypt girişini / etc / crypttab dizininden kaldırdım.

Yeniden başlatma ve her şey amaçlandığı gibi iyi çalışıyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.