BW-EDV Logo

Proxmox VE: Anleitung zur Sicherheitshärtung

Entdecken Sie in unserer Proxmox VE-Anleitung zur Sicherheitshärtung bewährte Methoden, um Ihre virtuelle Umgebung zu schützen und potenzielle Bedrohungen abzuwehren.

Proxmox VE Logo mit der Überschrift Security Hardening, Server im Hintergrund, ein Linux Pinguin mit Schloss in der rechten Ecke

Veröffentlicht

11.8.2023

Letzte Änderung

11.1.2024

Lesedauer

4 min

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 = true
port = https,http,8006
filter = proxmox
backend = systemd
maxretry = 3
findtime = 2d
bantime = 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 deaktivieren
net.ipv4.ip_forward = 0
net.ipv6.conf.all.forwarding = 0
# Packet Redirect deaktivieren
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
# Routed Packets nicht akzeptieren
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0
# ICMP Redirects nicht akzeptieren
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
# Secure ICMP Redirects nicht akzeptieren
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
# Suspicious Packets müssen geloggt werden
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1
# Broadcast ICMP Requests müssen ignoriert werden
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Bogus ICMP Responses müssen ignoriert werden
net.ipv4.icmp_ignore_bogus_error_responses = 1
# Reverse Path Filtering aktivieren
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# TCP SYN Cookies müssen aktiviert werden
net.ipv4.tcp_syncookies = 1
# IPv6 Router Advertisements deaktivieren
net.ipv6.conf.all.accept_ra = 0
net.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 zulassen
ACCEPT tcp (Zielport: 22)
# Proxmox Web-UI zulassen
ACCEPT tcp (Zielport: 8006)

Die Übersicht sollte nun so aussehen:

Proxmox VE: Empfohlene Firewall EinstellungenProxmox VE: Empfohlene Firewall Einstellungen

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)

Janic Bellmann, im Wald stehend, lächelnd mit grün-gelber Jacke

Janic Bellmann

Geschäftsführender Gesellschafter bei BW-EDV

Teilen mit

Kontakt CTA Hintergrundbild

Wie können wir behilflich sein?

Wir freuen uns auf Ihre Anfrage!