Fail2Ban: Unerlaubte Anmeldeversuche abwehren
Fail2Ban, ein in Python geschriebenes Intrusion Prevention System (IPS), überwacht Logdatei-Einträge und sperrt IP-Adressen, die verdächtige Aktivitäten zeigen. Die umfassende Konfigurationsdatei von Fail2Ban stellt eine Vielzahl von Parametern bereit, um Systeme wie Apache, PHP, MySQL, Postfix und zahlreiche andere vor Bedrohungen wie Brute-Force-Angriffen zu schützen. Im Folgenden finden Sie eine kurze Anleitung zur Absicherung von Proxmox.
Fail2Ban installieren
apt install fail2ban -y
Die Fail2Ban Konfigurationsdatei (jail.conf) öffnen und bearbeiten
nano /etc/fail2ban/jail.conf
Diese Zeilen an das Ende der Datei einfügen
[proxmox]enabled = trueport = https,http,8006filter = proxmoxbackend = systemdmaxretry = 3findtime = 2dbantime = 1h
Die proxmox.conf Datei anlegen und bearbeiten
nano /etc/fail2ban/filter.d/proxmox.conf
Diesen Inhalt einfügen
[Definition]failregex = pvedaemon\[.*authentication failure; rhost=<HOST> user=.* msg=.*ignoreregex =
Fail2Ban neu starten und somit die Konfiguration aktivieren
systemctl restart fail2ban
Nun werden eingehende Loginversuche auf die Proxmox Weboberfläche von Fail2Ban überwacht und mögliche Angreifer bereits nach 3 ungültigen Anmeldeversuchen für eine Stunde gesperrt.
Nicht benötigte Protokolle deaktivieren
Das Deaktivieren von nicht verwendeten Protokollen spart nicht nur wertvolle System-Ressourcen, sondern erhöht auch erheblich die Sicherheit des Systems. Die nachfolgenden Empfehlungen können angewandt werden, sofern diese Dienste nicht benötigt werden.
Network File System abschalten
Das NFS (Network File System) ist ein Protokoll, das es ermöglicht, Dateisysteme über ein Netzwerk zu teilen und auf entfernten Systemen zu mounten, als wären sie lokal vorhanden. Es kann aus Sicherheitsgründen abgeschaltet werden, um unbefugten Zugriff oder Manipulation von Dateien und Verzeichnissen zu verhindern, insbesondere wenn es nicht ordnungsgemäß konfiguriert ist, da ungeschützte NFS-Freigaben ein potentielles Einfallstor für Angriffe auf sensible Daten darstellen können.
Die Konfigurationsdatei nfs-common öffnen und bearbeiten
nano /etc/default/nfs-common
Diesen Wert eintragen
NEED_STATD=no
Remote Procedure Call abschalten
Das RPC (Remote Procedure Call) ist ein Protokoll, das die Kommunikation zwischen entfernten Computern ermöglicht, indem es den Aufruf von Funktionen oder Prozeduren auf einem entfernten System erlaubt, als ob sie lokal ausgeführt werden. Es kann aus Sicherheitsgründen abgeschaltet werden, um unautorisierte Zugriffe zu verhindern, da unsachgemäße Konfiguration oder Schwachstellen in der Implementierung potenzielle Angriffsvektoren darstellen könnten.
Diesen Befehl ausführen, um den Service zu deaktivieren
systemctl disable --now rpcbind.service rpcbind.socket
Anschließend das System neu starten
reboot
Internet Protocol Version 6 abschalten
IPv6 (Internet Protocol Version 6) ist ein Netzwerkprotokoll, das die Identifizierung und Adressierung von Geräten im Internet ermöglicht, indem es einen deutlich größeren Adressraum als sein Vorgänger, IPv4, bereitstellt und somit das wachsende Internet der Dinge und die allgemeine Vernetzung unterstützt. Es kann aus Sicherheitsgründen abgeschaltet werden, wenn die Netzwerkadministration es für notwendig hält, um potenzielle Angriffsvektoren oder Komplexitäten im Zusammenhang mit der Koexistenz von IPv4 und IPv6 zu reduzieren, insbesondere wenn die Netzwerkumgebung nicht ordnungsgemäß auf IPv6 vorbereitet ist oder nur IPv4 Adressen verwendet werden.
Die sysctl Konfigurationsdatei öffnen und bearbeiten
nano /etc/sysctl.conf
Diesen Wert eintragen
net.ipv6.conf.all.disable_ipv6 = 1
Postfix auf IPv4 beschränken
Postfix ist ein Mail Transfer Agent (MTA), der unter Proxmox verwendet werden wird, um E-Mail-Nachrichten, z. B. bei Monitoring-Aufgaben oder Alerts, zu senden und zu empfangen. Dieser kann auf IPv4 beschränkt werden, um die Angriffsfläche zu minimieren und die Netzwerksicherheit zu erhöhen, indem die Komplexität der Konfiguration und die möglichen Sicherheitsrisiken im Zusammenhang mit der Verwendung von IPv6 im Netzwerk reduziert werden.
Die Postfix Konfigurationsdatei öffnen und bearbeiten
nano /etc/postfix/main.cf
Diesen Wert eintragen
inet_protocols = ipv4
Anschließend Postfix neustarten
service postfix restart
Kernelparameter nach Empfehlung des BSI
Das Bundesamt für Sicherheit in der Informationstechnik (BSI), welches unter anderem für den Schutz der Netze des Bundes, sowie die Erkennung und Abwehr von Angriffen auf die Regierungsnetze zuständig ist, gibt einige empfohlene Kernelparameter vor.
Die sysctl Konfigurationsdatei öffnen und bearbeiten
nano /etc/sysctl.conf
Diese Zeilen ergänzen
# Forwarding deaktivierennet.ipv4.ip_forward = 0net.ipv6.conf.all.forwarding = 0# Packet Redirect deaktivierennet.ipv4.conf.all.send_redirects = 0net.ipv4.conf.default.send_redirects = 0# Routed Packets nicht akzeptierennet.ipv4.conf.all.accept_source_route = 0net.ipv4.conf.default.accept_source_route = 0net.ipv6.conf.all.accept_source_route = 0net.ipv6.conf.default.accept_source_route = 0# ICMP Redirects nicht akzeptierennet.ipv4.conf.all.accept_redirects = 0net.ipv4.conf.default.accept_redirects = 0net.ipv6.conf.all.accept_redirects = 0net.ipv6.conf.default.accept_redirects = 0# Secure ICMP Redirects nicht akzeptierennet.ipv4.conf.all.secure_redirects = 0net.ipv4.conf.default.secure_redirects = 0# Suspicious Packets müssen geloggt werdennet.ipv4.conf.all.log_martians = 1net.ipv4.conf.default.log_martians = 1# Broadcast ICMP Requests müssen ignoriert werdennet.ipv4.icmp_echo_ignore_broadcasts = 1# Bogus ICMP Responses müssen ignoriert werdennet.ipv4.icmp_ignore_bogus_error_responses = 1# Reverse Path Filtering aktivierennet.ipv4.conf.all.rp_filter = 1net.ipv4.conf.default.rp_filter = 1# TCP SYN Cookies müssen aktiviert werdennet.ipv4.tcp_syncookies = 1# IPv6 Router Advertisements deaktivierennet.ipv6.conf.all.accept_ra = 0net.ipv6.conf.default.accept_ra = 0
Firewall einrichten und aktivieren
Um mögliche ungeschützte Dienste, die auf anderen Ports laufen abzusichern, sollte die Proxmox Firewall aktivert werden.
Links im Navigationsmenü unter Datacenter > Firewall > Add die folgende Konfiguration vornehmen:
# SSH zulassenACCEPT tcp (Zielport: 22)# Proxmox Web-UI zulassenACCEPT tcp (Zielport: 8006)
Die Übersicht sollte nun so aussehen:

Anschließend die Firewall unter Datacenter > Firewall > Options aktivieren, indem Firewall auf Yes gesetzt wird.
Nun werden alle eingehende Anfragen, welche nicht an SSH oder das Proxmox Web-UI gerichtet sind, automatisch blockiert.
Zwei-Faktor-Authentifizierung aktivieren
Zur weiteren Absicherung gegen unerwünschte Anmeldeversuche, kann weiterhin die Zwei-Faktor-Authentifizierung (2FA) von Proxmox aktiviert werden. Bei einem Login wird dann ggf. ein Login-Code an bspw. ein verknüpftes Smartphone gesendet.
Wie Sie diese Funktion aktivieren erfahren Sie in diesem Guide: PVE Admin Guide (Englisch)