This is an old revision of the document!
Neuaufbau Backup- und Medienserver 'hermes'
Hardware: Intel-MiniITX mit 4-Kern-Atom
OS: Ubuntu 20.03 Server
- Minimum-Installation nur SSD, 8TB-Platte nachträglich hinzugefügt
- Alle Updates
- docker.io installiert
- springm zur Gruppe docker hinzugefügt
8TB-Backupdisk hinzufügen
siehe auch https://wiki.zalmoxis.aberdoch.de/doku.php?id=computer:ubuntu:keyfile-based_luks_decryption
sudo dd if=/dev/urandom of=/root/.keyfile bs=1024 count=4 chmod 0400 /root/.keyfile cryptsetup luksOpen /dev/sdb1 backupdisk --key-file /root/.keyfile
/etc/crypttab erweitern ( UUID mit blkid ermitteln)
backupdisk UUID=efb4986f-ad45-4b80-af4d-13c2782393a8 /root/.keyfile luks,discard
/etc/fstab erweitern:
/dev/mapper/backupdisk /backupdisk btrfs defaults 0 2
mkdir /backupdisk mount -a
Boot-Disk verschlüsseln
Entsprechend c't-Artikel luks_verschluesselte_linux-systeme_ueber_ssh_entsperren_c_t_magazin.pdf
apt install dropbear-initramfs
Die ssh-public-keys liegen in /etc/dropbear-initramfs/authorized_keys. Nach Änderung muss das initramfs aktualisiert werden:
update‐initramfs ‐u
Entsperren mit ssh -v -p 20022 hermes.fritz.box (IP: 192.168.2.252)
Ubuntu-Cloud-Init entfernen
Prevent start
Create an empty file to prevent the service from starting
sudo touch /etc/cloud/cloud-init.disabled
Uninstall
Disable all services (uncheck everything except “None”):
sudo dpkg-reconfigure cloud-init
Uninstall the package and delete the folders
sudo apt-get purge cloud-init sudo rm -rf /etc/cloud/ && sudo rm -rf /var/lib/cloud/
Docker-Compose
apt update && apt upgrade && apt install docker.io sudo systemctl enable --now docker usermod -aG docker springm reboot
# check for latest version curl -L https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-`uname -s`-`uname -m` \ -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose docker-compose -v
Rsnapshot
from https://github.com/linuxserver/docker-rsnapshot/pkgs/container/rsnapshot / https://docs.linuxserver.io/images/docker-rsnapshot
- Backup-Platte gemounted auf /backupdisk
- Benötigte Pakete
awakeundssmtpwerden von cron mittels @reboot beim Start aus/config/install_packagesinstalliert - config-, exclude- und pre_rsnapshot-Dateien in
~springm/docker/rsnapshot/configabgelegt, Pfade angepasst - run_rsnapshot ebenfalls in /config abgelegt
Todo
- (rsnapshot-diffs könnten regelmäßig abgelegt werden.)
Traefik2
Alle Docker-Server-Daten sind in /srv. Docker-Konfiguration ist in ~springm/docker. Traefik-Logs sind in /srv/logs/traefik.log
Domain iris.aberdoch.de und CNAME *.iris sind bei cloudflare registriert. Achtung: iris.aberdoch.de darf im pihole keinen Eintrag haben, da sonst die Zertifikatsgenerierung mit letsencrypt nicht mehr funktioniert.
cd docker docker network create proxy sudo touch acme.json sudo chmod 0600 acme.json
Backup vom Backup
cryptsetup luksErase /dev/sdc1 # erstes Passwort cryptsetup -y -v luksFormat /dev/sdc1 # zweites Passwort cryptsetup -y -v luksAddkey /dev/sdc1 # Keyfile cryptsetup -v luksAddKey /dev/sdc1 /root/.keyfile
cryptsetup luksOpen /dev/sdc1 enc-backupCopy1 --key-file=/root/.keyfile