Portál AbcLinuxu, 30. října 2025 00:03
Co takhle podívat se do howto speciálně pro Arch? Nějaká stránka z roku 2014 nemusí vůbec odpovídat dnešní realitě.
Máš tam nainstalované potřebné moduly? Nezapomněl jsi na GRUB_ENABLE_CRYPTODISK=y v /etc/default/grub nebo něco takového? Generuješ /boot/(efi/)?grub/grub.cfg automaticky, nebo se ho snažíš nějak sesmolit ručně?
insmod part_gpt insmod cryptodisk insmod luks insmod gcry_rijndael insmod gcry_rijndael insmod gcry_sha256 insmod btrfs cryptomount -u <magické číslo> set root='cryptouuid/<magické číslo>'
To magické číslo je UUID příslušného LUKS oddílu, zapsané bez pomlček. Je to totéž UUID, které máš například v /etc/crypttab pro ten oddíl. Nebo se dá zjistit pomocí blkid, lsblk -f a podobných příkazů.
Ale bacha, je tam pár nepříjemností, se kterými musíš počítat:
cryptsetup luksFormat o nějaké super hyper moderní nastavení. LUKS2 je bezva, řeší spoustu nedostatků původního LUKS, ale prostě teď v tuhle chvíli ho GRUB ještě nedovede číst.--iter-time! To je parametr cryptsetup, který se zadává u luksFormat a luksAddKey. Nechce se mi zacházet do podrobností, co dělá, takže stručně: Delší --iter-time znamená lepší zabezpečení v případě slabého hesla, ale odpovídajícím způsobem delší dobu pro dešifrování master klíče. Proč to u GRUBu vadí a jinde ne? Protože GRUB nepoužívá hardwarovou akceleraci šifrování (AES-NI). Takže něco, co se později v userspace spočítá třeba za sekundu, může v GRUBu trvat třeba 10 sekund. A GRUB má pevně stanovený timeout pro odemčení LUKS slotu, který je kolem 10–15 sekund nebo tak. Takže na běžném slabém notebookovém procesoru (a ve virtualizaci také!) se může klidně stát, že GRUB nestihne vypočítat master klíč do vypršení té své interní lhůty a prostě to vzdá. --iter-time 2000, který je momentálně implicitní, ale zkusit třeba starší implicitní volbu 500. Se silným heslem nebo s náhodným dlouhým klíčem v souboru to nemá absolutně žádný vliv na bezpečnost. Se slabým heslem je to samozřejmě jiná věc.--iter-time u již existujícího LUKS oddílu? To lze pomocí luksAddKey, luksKillSlot a luksDump (pro výpis seznamu slotů). Pozor, doba potřebná pro dešifrování master klíče disku se řídí podle slotu s nejdelším --iter-time. Takže --iter-time je třeba zkrátit všude; jinými slovy, je třeba napřed přidat pomocí luksAddKey sloty s kratším --iter-time (a se stejnými hesly nebo klíči, které už tam jednou jsou) a poté pomocí luksKillSlot odstranit původní sloty s delším --iter-time. Jinak se GRUB toho master klíče nedobere včas.Instructions at Pavel Kogan's blog show how to encrypt the /boot partition while keeping it on the main LUKS partition when using GRUBPostup na ArchWiki vidim totoznej, jen klic v /root a Kogan v / s tim ze mu nastavuje 000, a jeste vidim druhej rozdil ze v mkinitcpio.conf ma ArchWiki cestu v zavorce...
Závorka podle mě nehraje roli. Je to Bash a ten skript, který to celé interpretuje, je uzpůsobený tak, že se dají používat jak pole, tak i tokeny ve stringu. Konkrétně je tam toto (tedy všechno nakonec skončí jako pole):
arrayize_config() {
set -f
[[ ${MODULES@a} != *a* ]] && MODULES=($MODULES)
[[ ${BINARIES@a} != *a* ]] && BINARIES=($BINARIES)
[[ ${FILES@a} != *a* ]] && FILES=($FILES)
[[ ${HOOKS@a} != *a* ]] && HOOKS=($HOOKS)
[[ ${COMPRESSION_OPTIONS@a} != *a* ]] && COMPRESSION_OPTIONS=($COMPRESSION_OPTIONS)
set +f
}
Jinak ta zmínka o /boot partition je silně zavádějící; nemá žádný smysl mít oddělený /boot oddíl a na svých strojích nic takového nemám. K takovému dělení není důvod a ušetří to navíc obrovskou spoustu vrásek třeba v situaci, kdy se chrootnu do kořenového oddílu, chci tam něco poupravit — třeba po změně typu virtualizačního kontejneru nebo tak — a zapomenu namountovat ten /boot, protože jsem zvyklý na x-systemd.automount, který v chrootu nenastane. Inu, bez odděleného /boot oddílu celý tento nesmysl odpadá a bootuje se z běžného "hlavního" filesystému.
S heslem není žádný velký problém. LUKS kontejner má (jestli se nepletu) nějakých 8 slotů a v každém může být heslo nebo klíč. Aby se heslo zadávalo jenom jednou, stačí využít 2 sloty a princip je tento:
luksAddKey)./root nebo zkrátka tam, kam běžní uživatelé příliš nemůžou./etc/crypttab se přidá záznam, který odemyká příslušný LUKS oddíl pomocí toho souboru s klíčem, tedy bez nutnosti interakce s uživatelem./etc/crypttab jsou v initcpio archivu a jestli náhodou initcpio archiv není čitelný pro někoho jiného než roota.sd-encrypt do pole HOOKS v /etc/mkinitcpio.conf; typy a pořadí hooků jsou popsané zde. Právě tento hook zajišťuje přidání programu cryptsetup a souboru /etc/crypttab. Soubor s klíčem je třeba přidat ručně v poli FILES.Bootování funguje takto:
/etc/crypttab a také soubor s klíčem.sd-encrypt postará — na základě souboru s klíčem a /etc/crypttab, které jsou v initcpio dostupné — o regulérní otevření LUKS oddílu kernelem, aby se objevil v /dev/mapper/<zařyzeňy>.systemd v tom initramdisku) je pak schopen podle UUID filesystému (které je už známé, protože LUKS kontejner je otevřený a filesystém v něm je vidět) namountovat kořenový filesystém, přemountovat z initcpio na běžný filesystém a je vyhráno.Není to žádná věda; jen je třeba mít jasno v tom, co se tam děje a kde a proč.
/etc/crypttab je. V Archu píší, že se crypttab čte až systém nabootuje (druhý odstavec). A v tvém odkazu na Arch hned následující část popisuje, že klíč dáš do konfigurace mkinitcpio a do příkazové řádky grubu. Já mám v /etc/cryptab pouze další disky ne root oddíl.
Klíč v příkazové řádce GRUBu nemám.
Tady jsou detaily o crypttab.
Chcem sa spytat,ci je mozne zdielanie swap particie medzi niekolkymi linuxami.
Toto jsou dva nesmysly v jednom.
/home, nemít swap a /tmp mít v tmpfs na dobu, než se rozhodneš pro distribuci. A po rozhodnutí pro distribuci udělat solidní trvalou instalaci s šifrováním všeho, co potřebuješ. A vždy platí první bezpečnostní zásada: Definovat proti čemu obranu buduji.
sdilet datovej oddil nevim co by bylo za problem, viz

Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.