Wie du Proxmox mit Fail2ban in nur 3 Schritten absicherst!

Brute-Force-Angriffe auf Server sind wahrlich nichts Neues. Immer wieder versucht ein Angreifer dabei ein Passwort zu erraten und sich so Zugang zum Server zu verschaffen. Besonders schlimme Folgen hat das bei einem Hypervisor. Die Geräte verfügen über massige Ressourcen und hosten noch dazu dutzende virtuelle Maschinen. Hier muss man also für Sicherheit sorgen.

Und dies gelingt dir mit der Open-Source-Software Fail2Ban. Diese überwacht die Protokolldateien von SSH oder Proxmox selbst auf gescheiterte Logins und sperrt nach einer bestimmten Anzahl von Versuchen die Quell-IP-Adresse aus. Damit ist dein Proxmox-Server aber nicht nur besser gesichert, sondern es werden auch die vorhandenen Ressourcen gegen Überlastung geschützt.

Die Installation und Konfiguration von Fail2Ban ist bei Proxmox schnell erledigt und noch dazu sehr einfach zu bewerkstelligen. Wie du im Detail vorgehen musst und welche Fallstricke du besser vermeidest, erfährst du in diesem Blogartikel.

Schritt 1: Installation von Fail2ban

Wie gewohnt lässt sich die Software über die Paketverwaltung installieren. Sollte es dabei zu Problemen kommen, dann prüfe kurz, ob die richtigen Repositorys für Proxmox und das Betriebssystem selbst hinterlegt sind. Die eigentliche Installation geschieht dann wie folgt:

apt-get update
apt-get install fail2ban

Natürlich ist es damit noch nicht ganz getan. Der Dienst muss natürlich noch in den Autostart gepackt werden und kann bei der Gelegenheit noch gestartet werden:

systemctl enable --now fail2ban

Schritt 2: Konfiguration von Fail2ban

Nach der Installation müssen wir die Konfiguration von Fail2ban anpassen, um unseren Proxmox-Server schützen zu können. Dafür erstellen wir erstmal eine Datei namens jail.conf im Verzeichnis /etc/fail2ban. Darin werden alle globalen und filterspezifischen Einstellungen vorgenommen. Wer sich nicht allzu gut mit Fail2Ban auskennt, kann einfach die jail.conf kopieren:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Anpassen muss man darin auch rein gar nichts. Es genügt vollkommen, die vorhandenen Zeilen noch etwas zu erweitern.

[proxmox]
enabled = true
port = https,http,8006
filter = proxmox
backend = systemd
maxretry = 3
findtime = 2d
bantime = 1h
[proxmox]
enabled = true
port = https,http,8006
filter = proxmox
logpath = /var/log/daemon.log
maxretry = 3
# 1 hour
bantime = 3600

Damit der neu hinzugefügte Filterseinen Dienst verrichten kann, muss man noch eine Definition für die Arbeitsweise unter /etc/fail2ban/filter.d/proxmox.conf festlegen. Dafür wird besagte Datei angelegt und diesem Inhalt befüllt:

[Definition]
failregex = pvedaemon\[.*authentication failure; rhost=<HOST> user=.* msg=.*
ignoreregex =

Bevor wir nun zum finalen Schritt kommen, sollten wir die korrekte Funktionsweise von Fail2Ban prüfen. Dafür versuchen wir uns in der GUI mit einem falschen Passwort oder User einzuloggen. Ob dies von unserem Brute-Force-Schutz auch korrekt erkannt wird, kann man dann ganz bequem testen:

fail2ban-regex /var/log/daemon.log /etc/fail2ban/filter.d/proxmox.conf

Du solltest jetzt mindestens die Einträge ‚Failregex: 1 total‘ sowie ‚1 matched‘ im Terminal sehen können. Weiterhin kann es nicht schaden die Logs unter /var/log/fail2ban.log zu kontrollieren.

Schritt 3: Feintuning der Parameter

Nicht zwingend notwendig, aber durchaus sinnvoll ist noch die Anpassung der Sperrzeit. Für den Proxmox-Filter selbst steht dieser Wert auf einer Stunde. Wird allerdings der SSH-Server angegriffen, liegt die Sperrzeit gerade einmal bei 10 Minuten. Das ist doch recht wenig. Zum Glück kann man die Sperrfrist global definieren. Die Werte der einzelnen Filter werden damit aber nicht überschrieben.

Suche in der jail.conf nach folgender Zeile und ändere den Wert ab:

# "bantime" is the number of seconds that a host is banned.
bantime  = 600

Dabei darfst du natürlich nicht vergessen, den Dienst neu zu starten und direkt im Anschluss zu prüfen, ob dieser immer noch korrekt läuft:

systemctl restart fail2ban
systemctl status fail2ban

Sollte dein Server bereits Opfer von Brute-Force-Angriffen geworden sein, kannst du zum Abschluss noch einen Blick auf die vorhandenen Firewall-Regeln werfen. Eventuell kannst du hier schon die ersten Deny-Regeln bestaunen. Da Proxmox auf die Firewall Iptables setzt, musst dafür folgenden Befehl nutzen:

iptables -L -v

Von Fabian Wüst

Er ist leidenschaftlicher Open-Source-Benutzer und ein begeisterter Technologie-Enthusiast. Als kreativer Kopf hinter Homelabtopia bringt Fabian hier seine umfangreiche Erfahrung als Linux-Admin ein. Um sicherzustellen, dass du aus seinen Beiträgen den größtmöglichen Nutzen ziehen kannst, führt er ausgiebige Tests durch und errichtet dafür immense Setups.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert