Ho subito installato la Gentoo sul mio bel protatilino nuovo.
Dato che però il sistema viene fornito di base con lettore di impronte digitali e smartcard, perché non mettere l’intero sistema operativo su una bella partizione crittografata accessibile solamente se le credenziali sono confermate?! Risposta: perché sono un cretino che non sa quanto male mi sto per fare.
Prima di tutto ho avuto bisogno di una Ubuntu su disco esterno e un ciddì della Gentoo. La prima (ovviamente beta) per aver un sistema completo di rete, desktop e quant’altro visto i devices troppo recenti del portatile, mentre la seconda per supplire alla mancanza di EVMS della prima.
I passi da compiere:
- Boot della Ubuntu da disco esterno usb
- Copiare il file image.squashfs dal ciddì della gentoo sul disco e montarlo con
-
mount -o loop image.squashfs /mnt/livecd
-
- Eseguire evmsn
- Nella sezione Disk Segment:
- Brasare tutto il disco dove installare il sistema (sda nel mio caso)
- Creare una partizione normale primaria e bootabile per la cartella /boot (~128 Mb)
- Creare partizione globale (il resto del disco - anche primaria) sulla quale mettere LVM2
- Creare container LVM2 (nome master)
- Creare le varie regioni in LVM2 (ho un disco da 160 Gb)
- slash da 20 Gb (partizione root)
- swap da 6 Gb
- portage 5 Gb (/usr/portage)
- ccache 2.5 Gb (/var/tmp/ccache)
- tmpportage 7 Gb (/var/tmp/portage)
- home 100 Gb (/home)
- varcache 1 Gb (/var/cache)
- Per ogni regione, creare un corrispettivo Volume EVMS. Attenzione: mai dare nome “root” altrimenti all’avvio si sovrascrivono e succede un macello.
- Se non salva e dice che non trova il device, bisogna riavviare con il ciddì della Gentoo e usare l’evmsn da lì, salvare e riavviare.
- Generare le chiavi per le partizioni (anche se ne basterebbe una sola - uuencode è nel pacchetto sharutils):
-
for i in slash swap home tmpportage ccache portage varcache; do
-
head -c 256 /dev/random | uuencode -m - | head -n 2 | tail -n 1 > $i;
-
done
-
- Formattare le partizioni con LUKS:
-
for i in slash swap home tmpportage ccache portage varcache; do
-
cryptsetup -c aes-cbc-essiv:sha256 -s 256 luksFormat /dev/evms/$i /path/to/keys/$i;
-
done
-
- Aprire le partizioni:
-
for i in slash swap home tmpportage ccache portage varcache; do
-
cryptsetup -d /path/to/keys/$i luksOpen /dev/evms/$i decrypt-$i
-
done
-
- Formattare i vari decrypt-* con i filesystems, montare le varie cartelle, continuare con l’installazione seguendo l’handbook.
- Ricordarsi di copiare le chiavi sul disco e impostare /etc/conf.d/dmcrypt per usarle e decryptare le partizioni.
Per la mia installazione ho scelto di utilizzare xfs per slash, ext2 per boot, portage e varcache, jfs per la home e reiserfs per ccache. Scelte motivate da fattori apparenti di performance.
Per il boot invece ho utilizzato il comando genkernel dove nella cartella /usr/share/initramfs c’è l’overlay per il software v86d così da utilizzare un framebuffer recente in attesa che i driver per la intel vengano rilasciati:
-
genkernel –evms –luks –splash=natural_gentoo –initramfs-overlay=/usr/share/initramfs/ –all-initrd-modules –menuconfig –save-config –no-clean –kernel-config=… all
E i parametri di grub per il boot sono stati:
-
intel_iommu=off video=uvesafb:1440×900-32,mtrr:3,ywrap root=/dev/ram0 init=/linuxrc crypt_root=/dev/evms/slash root_key=rootkey root_keydev=/dev/evms/boot real_root=/dev/mapper/root splash=verbose,theme:natural_gentoo console=tty1 quiet doevms nodetect doload=aes-x86_64,cbc,sha256_generic,dm-crypt,ahci,sd_mod,ext2,xfs
Dove intel_iommu=off è relativo ad un bug del kernel presumo poi nodetect per evitare i caricamenti dei moduli inutili e infine doload racchiude i moduli necessari per l’avvio della macchina.
Tags: dell, gentoo, linux, sicurezza