Appunti sull'installazione di Mafalda
Go to file
2020-10-03 00:59:38 +02:00
create_pools.sh Init 2020-09-27 23:31:23 +02:00
guide_rosa.txt Init 2020-09-27 23:31:23 +02:00
install_zfsonlinux.sh Aggiunto scriptazzo hetzner 2020-09-28 23:34:35 +02:00
installazione.md Old school 2020-10-03 00:59:38 +02:00
login.md Old school 2020-10-03 00:59:38 +02:00
README.md README 2020-09-27 23:33:25 +02:00
zfs.patch Init 2020-09-27 23:31:23 +02:00

How to rosa

ATTENZIONE:

Se vuoi solo loggarti sulla macchina, vai qui.

Installazione debian base

Dal live system, usiamo imageinstall -e provvisto da Hetzner per installare un sistema debian buster base, in cui configuriamo i dischi con il seguente layout:

NAME             MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                8:0    0  2.7T  0 disk
├─sda1             8:1    0    1G  0 part
│ └─md0            9:0    0 1022M  0 raid1 /boot
├─sda2             8:2    0  2.7T  0 part
│ └─md1            9:1    0  2.7T  0 raid1
│   └─vg0-root     253:1    0  300G  0 lvm   /
└─sda3             8:3    0    1M  0 part
sdb                8:16   0  2.7T  0 disk
├─sdb1             8:17   0    1G  0 part
│ └─md0            9:0    0 1022M  0 raid1 /boot
├─sdb2             8:18   0  2.7T  0 part
│ └─md1            9:1    0  2.7T  0 raid1
│   └─vg0-root     253:1    0  300G  0 lvm   /
└─sdb3             8:19   0    1M  0 part

Il sistema provvede ad installare un sistema con ssh già avviato e l'utente root con la chiave ssh già configurata (se l'abbiamo impostata nel pannello del rescue system).

Cryptoroot

A questo punto, riavviamo di nuovo nel rescue system. Creiamo un disco in ram abbastanza grande da contenere il tarball di tutto il contenuto della root:

mkdir /ramdisk
mount -t tmpfs -o size=10G /ramdisk

Montiamo la root

mount /dev/vg0/root /mnt

Facciamo un backup della root

cd /mnt
tar czvf /ramdisk/root.tar.gz /mnt/*

Eliminiamo il contenitore vg0 (un volume group LVM) in questa brutale maniera, creando così uno strato di cifratura

cryptsetup luksFormat /dev/md1

Ci viene chiesta la conferma, e di immettere due volte la nuova passphrase. Dopo di questo, montiamo il nuovo contenitore cifrato

cryptsetup open /dev/md1 crypta

creiamo un nuovo volume group e un logical group per la partizione di root

vgcreate /dev/mapper/crypta vg0
lvcreate -L 300G --name root vg0

lo montiamo e ci riversiamo dentro il backup della root

mount /dev/vg0/root /mnt
tar xzvf /ramdisk/root.tar.gz -C /mnt

Il nuovo layout dovrebbe essere questo

NAME             MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                8:0    0  2.7T  0 disk
├─sda1             8:1    0    1G  0 part
│ └─md0            9:0    0 1022M  0 raid1 /boot
├─sda2             8:2    0  2.7T  0 part
│ └─md1            9:1    0  2.7T  0 raid1
│   └─crypta     253:0    0  2.7T  0 crypt
│     └─vg0-root 253:1    0  300G  0 lvm   /
└─sda3             8:3    0    1M  0 part
sdb                8:16   0  2.7T  0 disk
├─sdb1             8:17   0    1G  0 part
│ └─md0            9:0    0 1022M  0 raid1 /boot
├─sdb2             8:18   0  2.7T  0 part
│ └─md1            9:1    0  2.7T  0 raid1
│   └─crypta     253:0    0  2.7T  0 crypt
│     └─vg0-root 253:1    0  300G  0 lvm   /
└─sdb3             8:19   0    1M  0 part

(dove <uuid_di_dev_md0> si può ottenere da lsblk -o +UUID, alla riga corrispondente di /dev/md0). Montiamo tutto insieme e facciamo il chroot dentro

mount /dev/vg0/root /mnt
mount /dev/md0 /mnt/boot
mount -t proc /proc /mnt/proc
for fs in dev sys run; do mount --rbind /${fs} /mnt/${fs}; done
chroot /mnt /bin/bash --login

Ci assicuriamo che /etc/fstab abbia questa forma

proc /proc proc defaults 0 0
UUID=<uuid_di_dev_md0> /boot ext3 defaults 0 0
UUID= none swap sw 0 0
/dev/vg0/root  /  ext4  defaults 0 0

e che /etc/crypttab sia fatto così

# <target name>	<source device>		<key file>	<options>
crypta /dev/md1 none luks

Dropbear nell'initram

Installiamo dropbear nell'initramfs

apt install --yes dropbear-initramfs

Configuriamo dropbear per rispondere alla porta 4747 (morto-che-parla)

echo 'DROPBEAR_OPTIONS="-s -j -k -p 4747"' >> /etc/dropbear-initramfs/config

(-s disabilita password login; -j disabilita il local port forwarding; -k disabilita il remote port forwarding; -p è la porta a cui bindarsi)

Copiamo la chiave pubblica generata in /etc/dropbear-initramfs/authorized_keys (ATTENZIONE: non può essere una chiave ellittica, usate una RSA)

cat <LA_CHIAVE_PUBLICA> >> /etc/dropbear-initramfs/authorized_keys

Configuriamo la rete

echo 'IP="144.76.80.140::144.76.80.129:255.255.255.224:::off"' >> /etc/initramfs-tools/initramfs.conf

Infine, aggiorniamo l'initramfs e grub

update-initramfs -u -v
update-grub