GNU/Linux >> Znalost Linux >  >> Debian

Bezheslové šifrování kořenového oddílu Linuxu na Debianu 8 pomocí USB klíče

Zabezpečení důležitých dat na úložném zařízení (pevný disk, přenosná paměťová karta) je nezbytné, aby narušitel nemohl odcizit citlivé informace. V tomto tutoriálu se zaměřujeme na zabezpečení kořenového souborového systému Linuxu a odkládací oblasti. Bude použita výchozí funkce šifrování systému Linux „LUKS“, která při spouštění vyžaduje přístupovou frázi. Naším dalším cílem je proto automaticky poskytnout přístupovou frázi šifrovanému svazku při spouštění. Již existuje několik článků na stejné téma pro starší vydání distribuce Debian. V tomto tutoriálu je však verze Debain 8 (Jessie) nainstalována na virtuálním počítači VirtualBox.

Instalace operačního systému Debian 

V tomto tutoriálu je Debian Jessie nainstalován na virtuálním počítači a podrobnosti jsou zobrazeny na následujícím obrázku. Stejný postup bude fungovat i na "skutečném" serveru nebo ploše.

Přidejte iso soubor Debian net installer iso do virtuálního počítače a spusťte vm, objeví se výzva k instalaci. Výběrem možnosti „Instalovat“ zahájíte proces instalace.

Následujících několik obrazovek vás vyzve k základním nastavením Debianu. Vyberte požadovaný jazyk z daného seznamu.

Vyberte zemi nebo oblast, jak je znázorněno na následujícím obrázku.

Nakonfigurujte jazyk klávesnice.

Po základním nastavení instalační program načte další komponenty pro konfiguraci.

Během procesu instalace bude opět nakonfigurováno více základních nastavení.

1. Nastavení názvu hostitele

2. Konfigurace názvu domény

3. Nastavení hesla pro uživatele „root“.

4. Vytvoření nového uživatele jiného než root.

5. nastavte Časové pásmo

6. A konečně nejdůležitější částí je rozdělení disku.

Tento článek vyžaduje ruční rozdělení pevného disku na oddíly. Proto ve výše uvedené výzvě vyberte možnost „Manual“ a vyberte požadovaný pevný disk pro spuštění procesu.

Jak je znázorněno na obrázku výše, Debian se nainstaluje do virtuálního počítače. Stisknutím klávesy Enter zahájíte rozdělování vybraného pevného disku, jak je zobrazeno níže.

Po přijetí výše uvedené zprávy se zobrazí následující obrazovka. Jak ukazuje následující snímek obrazovky, na pevném disku v současné době není žádný oddíl.

Stiskněte "enter" pro vytvoření prvního oddílu na virtuálním pevném disku.

První oddíl, který jsme vytvořili na pevném disku, je „/dev/sda1“ pro bod připojení „/boot“.

Pro oddíl je vybrán primární nebo logický typ.

Je vybráno umístění nového oddílu.

Přípojný bod "/boot" je zobrazen na následujícím snímku obrazovky.

První oddíl byl úspěšně vytvořen na pevném disku. Linuxové jádro bude později umístěno do oddílu "/boot".

Druhý oddíl vytvořený na pevném disku virtuálního počítače je odkládací a velikost odkládacího oddílu by měla být dvojnásobkem velikosti RAM. Jak ukazuje následující snímek obrazovky, zbývající volné místo je vybráno pro odložení.

Nastavte velikost odkládacího oddílu.

Následující snímek obrazovky ukazuje, že oddíl je vybrán jako odkládací oblast.

Na virtuálním počítači je také vytvořen další oddíl.

Základní oddíl platformy Linux je vytvořen na zbývajícím prostoru pro / ("kořenový" bod připojení). Následující snímek ukazuje velikost „kořenového“ oddílu.

Vyberte možnost „fyzický svazek šifrování“ pro nový oddíl na pevném disku.

Zvýrazněná možnost na následujícím snímku obrazovky je nutná k šifrování oddílu na platformě Linux.

Nastavení oddílu po výběru "fyzický svazek pro šifrování" je znázorněno na následujícím obrázku. Výchozí metoda šifrování je mapovač zařízení (dm-crypt), šifrovací algoritmus je AES s velikostí klíče 256.

Úspěšné vytvoření oddílu na virtuálním pevném disku je znázorněno na obrázku níže.

Zde je pokročilá konfigurace šifrovaných svazků v Debianu, která je vybrána na následujícím snímku obrazovky.

Následující výzva ukazuje, že aktuální schéma rozdělení se musí zapsat na pevný disk, než můžeme začít s konfigurací šifrovaného svazku.

Následující výzva ukazuje vytvoření šifrovaného svazku na platformě Debian.

Vyberte zařízení pro šifrovaný svazek. Nevybírejte spouštěcí zařízení "/dev/sda1" pro šifrovaný svazek, protože není povoleno šifrovat spouštěcí oddíl.

Jak ukazuje následující snímek obrazovky, pro šifrovaný svazek je vybrán pouze „/dev/sda3“ a toto je kořenový oddíl disku.

Po konfiguraci šifrovaného svazku vyberte dokončit pro použití změn.

Pokud však není pro šifrovaný svazek vybrán swapovací oddíl, zobrazí se následující chyba.

Proto pro šifrovaný svazek vybereme oba oddíly.

Nastavení oddílu pro odkládací šifrovaný svazek jsou uvedena níže.

Následující výzva ukazuje, že data budou vymazána na "sda2" (swap).

Mazání dat na „sda2“ a „sda3“ je zobrazeno níže.

Po dokončení procesu zadejte přístupové fráze pro oba šifrované oddíly.

Znovu zadejte stejnou přístupovou frázi.

Tabulka oddílů po úspěšné konfiguraci šifrovaných svazků na disku je uvedena níže.

Dokončete proces rozdělování, abyste zahájili instalaci OS Debian. Zobrazí se však následující chybové hlášení, protože přípojný bod "/" ještě není vybrán pro žádný oddíl.

Po výše uvedené chybové výzvě znovu nakonfigurujte šifrované svazky a nastavte bod připojení. V tomto článku je "sda3_crypt" kořenový systém souborů a "sda2_crypt" je oblast pro odkládání.

Výběr bodu připojení "/" pro šifrovaný svazek.

Výběr šifrovaného svazku „sda2_crypt“ jako odkládací oblasti.

Následující snímek obrazovky ukazuje konečnou tabulku oddílů pro šifrované svazky.

Formátování diskových oddílů je uvedeno níže.

Po dokončení procesu formátování bude nainstalován základní systém.

Následující snímek obrazovky ukazuje výběr archivního zrcadla pro balíčky Debianu.

Konfigurace správce balíčků je uvedena níže.

Zatím je nainstalován pouze základní nebo základní systém a další balíčky lze nainstalovat ze zobrazeného seznamu.

Vyberte desktopové prostředí a další balíčky ze seznamu.

Instalace vybraných balíčků je uvedena níže.

Instalace zavaděče Linuxu "GRUB" je zobrazena na následujícím snímku obrazovky.

Pro instalaci zavaděče je vybráno zařízení (sda).

Nakonec je proces instalace dokončen.

Po restartu zadejte heslo pro dešifrování disku sda3.

Zadejte přístupovou frázi pro dešifrování disku sda2, který je odkládací oblastí.

Úspěšně se přihlaste do nainstalovaného systému.

Konfigurace pro kořenový souborový systém bez hesla

Proces zadávání přístupové fráze při spouštění bude nyní automatizován pomocí USB paměti. Místo použití

přístupová fráze , tajný klíč na USB dešifruje zašifrované svazky. Připojte USB klíč k virtuálnímu počítači a vyhledejte jej pomocí příkazu „dmesg“. V mém virtuálním počítači je detekován jako „/dev/sdb“.

Tajný klíč 8192 náhodných bajtů je extrahován z USB klíče pomocí příkazu dd.

dd if=/dev/sdb of=/root/secret.key bs=512 skip=4 count=16

Výše vygenerovaný tajný klíč se přidá k zašifrovaným svazkům pomocí příkazu „cryptsetup“. Ve výchozím nastavení je přístupová fráze zachována ve slotu 0. Proto bude slot 1 použit pro druhý tajný klíč.

Spusťte příkaz "blkid" pro získání podrobností o svazku na disku.

blkid

V tomto tutoriálu je tajný klíč pro dešifrování svazku přidán pouze do /dev/sda3. Lze jej však také přidat do oddílu „/dev/sda2“ (swap).

cryptsetup luksAddKey /dev/sda3 /root/secret.key --key-slot 1

Pro zařízení USB je vytvořeno jednoduché pravidlo udev v souboru /etc/udev/rules.d/99-custom-usb.rules, symbolický odkaz, který použijeme, je /dev/usbdevice.

SUBSYSTEMS=="usb", DRIVERS=="usb",SYMLINK+="usbdevice%n"

Znovu načtěte pravidla pomocí následujícího příkazu.

udevadm control --reload-rules

Zapojte zařízení USB a ověřte vlastní pravidlo.

K načtení tajného klíče ze zařízení USB a jeho poskytnutí do cryptsetup při spouštění je vyžadován skript shellu. Skript je vytvořen jako „/usr/local/sbin/openluksdevices.sh“ a je převzat z webu http://www.oxygenimpaired.com/.

#!/bin/sh
############taken from following link#########
###http://www.oxygenimpaired.com/debian-lenny-luks-encrypted-root-hidden-usb-keyfile

TRUE=0
FALSE=1

# flag tracking key-file availability
OPENED=$FALSE

if [ -b /dev/usbdevice ]; then
# if device exists then output the keyfile from the usb key
dd if=/dev/usbdevice bs=512 skip=4 count=16 | cat
OPENED=$TRUE
fi

if [ $OPENED -ne $TRUE ]; then
echo "FAILED to get USB key file ..." >&2
/lib/cryptsetup/askpass "Try LUKS password: "
else
echo "Success loading key file for Root . Moving on." >&2
fi

sleep 2

Nastavte oprávnění skriptu tak, aby jej bylo možné spustit.

 chmod a+x /usr/local/sbin/openluksdevices.sh

Podobně jako konfigurační soubor fstab obsahuje soubor crypttab informace o zašifrovaných svazcích na platformě Linux. Přidejte skript shellu pro šifrovaný oddíl sda3_crypt. Níže je uveden obsah konfiguračního souboru "/etc/crypttab" pro šifrovaný svazek.

sda3_crypt /dev/disk/by-uuid/c37a8128-5ea9-45c6-8890-d52f3d452ccc none luks,keyscript=/usr/local/sbin/openluksdevices.sh

Přidejte následující řádek do souboru "/etc/initramfs-tools/conf.d/cryptroot".

CRYPTROOT=target=sda3_crypt,source=/dev/disk/by-uuid/c37a8128-5ea9-45c6-8890-d52f3d452ccc

Ujistěte se, že „usb_storage“ je přidáno do souboru „/etc/initramfs-tools/modules“.

Následující skript shellu (/etc/initramfs-tools/hooks/udevusbkey.sh) je také převzat z externího zdroje. Používá se k přidání vlastního pravidla udev do dočasného souborového systému "initrd".

#!/bin/sh
# udev-usbkey script
###taken from
###http://www.oxygenimpaired.com/ubuntu-with-grub2-luks-encrypted-lvm-root-hidden-usb-keyfile
PREREQ="udev"
prereqs()
{
echo "$PREREQ"
}

case $1 in
prereqs)
prereqs
exit 0
;;
esac

. /usr/share/initramfs-tools/hook-functions

# Copy across relevant rules

cp /etc/udev/rules.d/99-custom-usb.rules ${DESTDIR}/lib/udev/rules.d/

exit 0

Změňte oprávnění skriptu.

 chmod a+x /etc/initramfs-tools/hooks/udevusbkey.sh

Některé změny jsou vyžadovány v konfiguraci zavaděče GRUB2. Přímé změny v konfiguračním souboru „/boot/grub/grub.cfg“ však nejsou povoleny. Změňte proto parametr "GRUB_CMDLINE_LINUX_DEFAULT" v konfiguračním souboru "/etc/default/grub". Jak je uvedeno níže, „rootdelay“ a „cryptopts“ jsou zahrnuty v parametru „GRUB_CMDLINE_LINUX_DEFAULT“.


GRUB_CMDLINE_LINUX_DEFAULT="rootdelay=20 cryptopts=target=sda3_crypt,source=/dev/disk/by-uuid/c37a8128-5ea9-45c6-8890-d52f3d452ccc,keyscript=/lib/cryptsetup/scripts/openluksdevices.sh"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtainsConclusion

Spusťte příkaz "update-grub" pro použití výše uvedených změn v konfiguračním souboru "/boot/grub/grub.cfg".

Po výše uvedeném příkazu byly v konfiguračním souboru "/boot/grub/grub.cfg" použity následující změny.

echo    'Loading Linux 3.16.0-4-686-pae ...'
linux   /vmlinuz-3.16.0-4-686-pae root=UUID=b30cdb22-8e3c-4ffd-a0c7-af96b90ba016 ro  rootdelay=20 cryptopts=target=sda3_crypt,source=/dev/disk/by-uuid/c37a8128-5ea9-45c6-8890-d52f3d452ccc,keyscript=/lib/cryptsetup/scripts/openluksdevices.sh
echo    'Loading initial ramdisk ...'
initrd  /initrd.img-3.16.0-4-686-pae

Spuštěním "update-initramfs -u"  aktualizujte dočasný soubor systému souborů pro všechna jádra.

Před restartem rozbalte newley vygenerovaný „initrd.img“ a ověřte, že keyscript byl zkopírován do adresáře „lib/cryptsetup/scripts“ a vlastní pravidlo udev do adresáře „lib/udev/rules.d/“.

cd /tmp/
zcat /boot/initrd.img-3.16.0-4-686-pae | cpio -iv

Keyscript je úspěšně zahrnut do skriptů initramfs.

Vlastní pravidlo USB je také zahrnuto v pravidlech udev.

Před testováním celého nastavení přidejte zařízení USB do nastavení virtuálního počítače.

Nakonec je tajný klíč úspěšně načten pro šifrovaný svazek.

Závěr

V tomto článku se šifrovaný oddíl otevře pomocí tajného klíče, který je uložen na paměťovém zařízení USB. K poskytnutí tajného klíče pro šifrovaný svazek při spouštění se používá automatický skript shellu.


Debian
  1. Jak vytvořit bootovací Windows 10 USB na Linuxu s novým WoeUSB

  2. Nainstalujte nejnovější OpenJDK 17, 16, 15, 13, 11 nebo 8 v Ubuntu, Debianu nebo RHEL pomocí sestavení Zulu OpenJDK

  3. Jak změnit heslo pro šifrování celého disku?

  1. Jak nainstalovat Arch Linux s Full Disk Encryption

  2. Obnovení velikosti USB disku (Linux)

  3. Dual boot Windows + Linux se šifrováním

  1. Nepodařilo se podepsat Csr pomocí kořenového klíče Ca?

  2. Linux – jak šifrovat Linux (debian 8) po instalaci a jaké jsou důsledky?

  3. Debian – Média změněna:Vložte prosím disk s označením „debian Gnu/linux?