Hardened Repository aufsetzen
Kleiner Spickzettel für mich; eine Debian-VM so einrichten, dass sie ihren Speicher für Veeam zur Verfügung stellt. Der Speicher wird „hardened“ sein – es ist also für das Veeam, dass darauf zugreift, nicht möglich, Backups innerhalb von x Tagen nach dem Schreiben zu löschen.
Damit eignet sich das ganze super als Ransomware-Protection – dadurch, dass man z.B. Backups die ersten 8 Tage nach dem Schreiben „immutable“ macht, jeden Samstag eine Sicherung reinjuckelt und eine Retention Policy von 14 Tagen hat hat man immer garantiert ein Backup, dass Ransomware nicht kaputt machen kann; vorausgesetzt sie kommt nicht via SSH oder Hypervisor an die VM, in der die Backups liegen.
Als Host nehmen wir uns Debian Netinst, klickern das durch und installieren nur die Basis-Systemwerkzeuge sowie SSH. Nur die Partition für das OS einrichten (in meinem Fall z.B. / mit 6GB, 2GB SWAP).
Annahme: unter /dev/sdb steckt noch eine 6TB zweite Platte, auf die die Backups sollen. Ggf. musst du den Pfad anpassen.
XFS installieren:
apt-get install xfsprogs
XFS Dateisystem erstellen:
mkfs.xfs -b size=4096 -m reflink=1,crc=1 /dev/sdb
Die Ausgabe davon sieht z.B. wie folgt aus:
meta-data=/dev/sdb isize=512 agcount=6, agsize=268435455 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1 nrext64=0
data = bsize=4096 blocks=1610612730, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =Internes Protokoll bsize=4096 blocks=521728, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =keine extsz=4096 blocks=0, rtextents=0
Nun Volume ID herausfinden:
blkid | grep sdb
> /dev/sdb: UUID="39405a6a-43a0-40eb-a5c2-db3e2e2682dd" BLOCK_SIZE="512" TYPE="xfs"
Ein passenden Ordner für das Volume erstellen:
mkdir /repo
Und das XFS-Dateisystem in /etc/fstab
hinzufügen, damit es beim Boot automatisch gemountet wird:
UUID=39405a6a-43a0-40eb-a5c2-db3e2e2682dd /repo xfs nosuid,nodev,nofail,x-gvfs-show 0 0
Die Config reloaden:
systemctl daemon-reload
Und das Repo mounten:
mount /repo
Wenn wir nun, z.B. via df -h checken, ob das Dateisystem gemountet ist, sollte es dort als /dev/sdb
und /repo
drin stehen.
Veeam elevated später mit Hilfe von sudo; also installieren wir das:
apt-get install -y sudo
Erstellen wir den Benutzer:
adduser --shell /bin/bash --home /home/veeam veeam
Nach dem Befehl müssen wir ein Kennwort eingeben. Das tun wir dann natürlich auch. Den Rest an Nachfragen einfach skippen, juckt uns nicht.
Den erstellten Veeam-Benutzer fügen wir zur sudo-Gruppe hinzu
./usermod -a -G sudo veeam
Und geben ihm Zugriff auf das Repo:
chown -R veeam:veeam /repo
chmod -R 0700 /repo
Das wars nun vorerst auf dieser Seite. Anschließend können wir uns Veeam witmen.
In Veeam gehen wir in Infrastructure > Backup Repositories > Hardened Linux Repo. In dem Dialog können wir einen neuen Repository-Server hinzufügen.
IP angeben, Benutzername „veeam“, Kennwort haben wir weiter oben vergeben. Von da an kann eigentlich immer weiter geklickert werden.
Ist der Server hinzugefügt, können wir einen Pfad angeben; der ist in unserem Fall natürlich /repo. Die Checkbox „Fast cloning on XFS“ können wir guten Gewissens aktivieren, sowie eine Immutable einstellen, in denen Backups nicht gelöscht werden können.
Wer das ganze mit Bildern und Video haben möchte: gibt es im Veeam Cookbook. Prinzipiell ist das allerdings super einfach und sollte mit den kleinen Hinweisen in diesem Absatz flott funktionieren.
Ist das Repo hinzugefügt, können wir aus Sicherheitsgründen auf unserer Linux-Backup-VM den SSH-Dienst deaktivieren:
systemctl disable ssh sshd
systemctl stop ssh
Nun können wir nur noch physisch auf das Gerät zugreifen, und Veeam kann über seine eigens installierte Software das Repository verwalten. Die Backups auf dem Server werden von diesem für x Tage immutable, also nicht löschbar, gemacht.