User Tools

Site Tools


computer:neuaufbau_hermes

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 awake und ssmtp werden von cron mittels @reboot beim Start aus /config/install_packages installiert
  • config-, exclude- und pre_rsnapshot-Dateien in ~springm/docker/rsnapshot/config abgelegt, 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

NFS-Server

( https://wiki.ubuntuusers.de/NFS/ )

/home/springm/docker/web/data kudell.fritz.box(rw,async,no_subtree_check,crossmnt) denkbrett.fritz.box(rw,async,no_subtree_check,crossmnt)
computer/neuaufbau_hermes.1642418409.txt.gz · Last modified: by springm