From 1ade999ca6424e9c13fc1125ae3e3928a33993eb Mon Sep 17 00:00:00 2001 From: Valentin Brandl Date: Tue, 5 Mar 2024 01:45:42 +0100 Subject: [PATCH] Update notes --- README.md | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/README.md b/README.md index 5924fa7..de1fb9d 100644 --- a/README.md +++ b/README.md @@ -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)