2020-10-03 00:59:38 +02:00
|
|
|
# How to rosa
|
2020-09-27 23:31:23 +02:00
|
|
|
|
2020-10-03 00:59:38 +02:00
|
|
|
## ATTENZIONE:
|
2020-09-28 23:34:35 +02:00
|
|
|
|
2020-10-03 00:59:38 +02:00
|
|
|
Se vuoi solo loggarti sulla macchina, vai [qui](./login.md).
|
2020-09-27 23:31:23 +02:00
|
|
|
|
|
|
|
### Installazione debian base
|
|
|
|
|
2020-10-03 00:59:38 +02:00
|
|
|
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:
|
2020-09-27 23:31:23 +02:00
|
|
|
|
|
|
|
```
|
2020-10-03 00:59:38 +02:00
|
|
|
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
|
2020-09-27 23:31:23 +02:00
|
|
|
```
|
|
|
|
|
2020-10-03 00:59:38 +02:00
|
|
|
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).
|
2020-09-27 23:31:23 +02:00
|
|
|
|
2020-10-03 00:59:38 +02:00
|
|
|
### Cryptoroot
|
2020-09-27 23:31:23 +02:00
|
|
|
|
2020-10-03 00:59:38 +02:00
|
|
|
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:
|
2020-09-27 23:31:23 +02:00
|
|
|
|
|
|
|
```
|
2020-10-03 00:59:38 +02:00
|
|
|
mkdir /ramdisk
|
|
|
|
mount -t tmpfs -o size=10G /ramdisk
|
2020-09-27 23:31:23 +02:00
|
|
|
```
|
|
|
|
|
2020-10-03 00:59:38 +02:00
|
|
|
Montiamo la root
|
2020-09-27 23:31:23 +02:00
|
|
|
|
|
|
|
```
|
2020-10-03 00:59:38 +02:00
|
|
|
mount /dev/vg0/root /mnt
|
2020-09-27 23:31:23 +02:00
|
|
|
```
|
|
|
|
|
2020-10-03 00:59:38 +02:00
|
|
|
Facciamo un backup della root
|
2020-09-27 23:31:23 +02:00
|
|
|
|
|
|
|
```
|
2020-10-03 00:59:38 +02:00
|
|
|
cd /mnt
|
|
|
|
tar czvf /ramdisk/root.tar.gz /mnt/*
|
2020-09-27 23:31:23 +02:00
|
|
|
```
|
|
|
|
|
2020-10-03 00:59:38 +02:00
|
|
|
Eliminiamo il contenitore vg0 (un volume group LVM) in questa brutale maniera,
|
|
|
|
creando così uno strato di cifratura
|
2020-09-27 23:31:23 +02:00
|
|
|
|
|
|
|
```
|
2020-10-03 00:59:38 +02:00
|
|
|
cryptsetup luksFormat /dev/md1
|
2020-09-27 23:31:23 +02:00
|
|
|
```
|
|
|
|
|
2020-10-03 00:59:38 +02:00
|
|
|
Ci viene chiesta la conferma, e di immettere due volte la nuova passphrase. Dopo
|
|
|
|
di questo, montiamo il nuovo contenitore cifrato
|
2020-09-27 23:31:23 +02:00
|
|
|
|
|
|
|
```
|
2020-10-03 00:59:38 +02:00
|
|
|
cryptsetup open /dev/md1 crypta
|
2020-09-27 23:31:23 +02:00
|
|
|
```
|
|
|
|
|
2020-10-03 00:59:38 +02:00
|
|
|
creiamo un nuovo volume group e un logical group per la partizione di root
|
2020-09-27 23:31:23 +02:00
|
|
|
|
|
|
|
```
|
2020-10-03 00:59:38 +02:00
|
|
|
vgcreate /dev/mapper/crypta vg0
|
|
|
|
lvcreate -L 300G --name root vg0
|
2020-09-27 23:31:23 +02:00
|
|
|
```
|
|
|
|
|
2020-10-03 00:59:38 +02:00
|
|
|
lo montiamo e ci riversiamo dentro il backup della root
|
2020-09-27 23:31:23 +02:00
|
|
|
|
|
|
|
```
|
2020-10-03 00:59:38 +02:00
|
|
|
mount /dev/vg0/root /mnt
|
|
|
|
tar xzvf /ramdisk/root.tar.gz -C /mnt
|
2020-09-27 23:31:23 +02:00
|
|
|
```
|
|
|
|
|
2020-10-03 00:59:38 +02:00
|
|
|
Il nuovo layout dovrebbe essere questo
|
2020-09-27 23:31:23 +02:00
|
|
|
|
|
|
|
```
|
2020-10-03 00:59:38 +02:00
|
|
|
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
|
2020-09-27 23:31:23 +02:00
|
|
|
```
|
|
|
|
|
2020-10-03 00:59:38 +02:00
|
|
|
(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
|
2020-09-27 23:31:23 +02:00
|
|
|
|
|
|
|
```
|
2020-10-03 00:59:38 +02:00
|
|
|
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
|
2020-09-27 23:31:23 +02:00
|
|
|
```
|
|
|
|
|
2020-10-03 00:59:38 +02:00
|
|
|
Ci assicuriamo che `/etc/fstab` abbia questa forma
|
2020-09-27 23:31:23 +02:00
|
|
|
|
|
|
|
```
|
2020-10-03 00:59:38 +02:00
|
|
|
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
|
2020-09-27 23:31:23 +02:00
|
|
|
```
|
|
|
|
|
2020-10-03 00:59:38 +02:00
|
|
|
e che `/etc/crypttab` sia fatto così
|
2020-09-27 23:31:23 +02:00
|
|
|
|
|
|
|
```
|
2020-10-03 00:59:38 +02:00
|
|
|
# <target name> <source device> <key file> <options>
|
|
|
|
crypta /dev/md1 none luks
|
2020-09-27 23:31:23 +02:00
|
|
|
```
|
|
|
|
|
2020-10-03 00:59:38 +02:00
|
|
|
### Dropbear nell'initram
|
2020-09-27 23:31:23 +02:00
|
|
|
|
|
|
|
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`
|
2020-10-03 00:59:38 +02:00
|
|
|
(ATTENZIONE: **non** può essere una chiave ellittica, usate una RSA)
|
2020-09-27 23:31:23 +02:00
|
|
|
|
|
|
|
```
|
|
|
|
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
|
|
|
|
```
|
|
|
|
|
2020-10-03 00:59:38 +02:00
|
|
|
Infine, aggiorniamo l'initramfs e grub
|
2020-09-27 23:31:23 +02:00
|
|
|
|
|
|
|
```
|
|
|
|
update-initramfs -u -v
|
2020-10-03 00:59:38 +02:00
|
|
|
update-grub
|
2020-09-27 23:31:23 +02:00
|
|
|
```
|