Update notes

This commit is contained in:
Valentin Brandl 2024-03-05 01:45:42 +01:00
parent 2b52055f09
commit 1ade999ca6
Signed by: vbrandl
GPG Key ID: CAD4DA1A789125F9

View File

@ -32,3 +32,66 @@
- [ ] Server aufräumen, ggf sogar mal wieder komplett sauber und neu aufsetzen
- [ ] Benchmarks: Welche Kombination bietet integrity, RAID, CoW/Snapshots, Verschlüsselung und die besten read/write raten
- [ ] Wiederherstellen testen
## Backupstrategie
- Server neu aufsetzen mit btrfs/zfs für snapshots
- Lokalen Snapshot erzeugen
- Backup aus snapshot erzeugen (pgdump/mysqldump) und sichern
- Daten sichern (eigenes subvolume und btrfs send/receive? borg?)
## Allgemeine Notizen
### Verschlüsselung
Die Platten sollten auf jeden Fall verschlüsselt sein. Ggf ein keyfile erzeugen
und an sichern Orten aufbewahren.
Offene Frage: Beim starten automatisch entschlüsseln (dann muss das Keyfile
effektiv auf unverschlüsseltem Speicher liegen), oder manuell (z.B. nach reboot
per SSH drauf und Passphrase eingeben).
Ersteres erlaubt unbeaufsichtigte reboots ist aber unsicherer, zweiteres
erfordert nach jedem reboot ein manuelles unlocken der Disks.
Hardware acceleration für AES auf dem RPI? Perfomanceverlust durch crypto?
### Integrity
Damit lässt sich prüfen, ob Daten korrupt sind (bitfehler o.ä. auf der Platte).
Im RAID kann man dann auch entscheiden, welche Platte die korrekten Daten hat
und den Stand auf der kaputten Platte automatisch fixen.
Integrity kann Teil der Verschlüsselung (Stichwort AEAD) sein und mit
`cryptsetup` umgesetzt werden
```bash
cryptsetup luksFormat -q --type luks2 --integrity hmac-sha256 disk1.img key.bin
```
Oder auch auf einer unverschlüsselten Platte (macht ohne RAID nur bedingt
Sinn...) mit `integritysetup` (verwendet wohl keinen LUKS Header für Metadaten
=> Parameter, Algorithmen, ... müssen explizit angegeben werden)
```bash
integritysetup format --integrity sha256 disk1.img
integritysetup open --integrity sha256 disk1.img disk1int
```
Integritycheck und fix starten mit
```bash
echo check > /sys/block/md127/md/sync_action
```
## Links
[dm-crypt + dm-integrity + dm-raid = awesome!](https://gist.github.com/MawKKe/caa2bbf7edcc072129d73b61ae7815fb)
[ZFS](https://wiki.archlinux.org/title/ZFS)
[ZFS/Virtual disks](https://wiki.archlinux.org/title/ZFS/Virtual_disks)
[Btrfs](https://wiki.archlinux.org/title/Btrfs)