Proxmox Ab-Härtung Debian Bullseye
Achtung
Achtung. Keine Garantie auf Vollständigkeit. Eingriffe an Linuxservern, können bei Unachtsamkeit oder Fehlern zu einem Datenverlust führen. Auch kann man sich aussperren, wenn man die Firewall, Ports, Netzwerke oder Konfigurationen falsch einstellt. Wenn du keine Erfahrung mit Linux hast, solltest du am besten zunächst die Finger davon lassen und dich erst mal an Linux rantasten. Die unten stehenden Anleitungen sind getestet und Funktionieren. Wenn du allerdings etwas nicht richtig machst, dann sperrst du dich womöglich im Bereich SSH oder Firewall aus!
Nach einer Installation von Proxmox auf Debian muss / sollte ein Proxmox-Server-System abgehärtet werden. Firewall, HTTPS, Kernelparameter, Anmeldeversuche und verschiedene andere Bedrohungen können mit der folgenden Anleitung recht gut gegen unerlaubte Nutzung abgesichert werden. Es ist allerdings unmöglich jede noch so kleine Möglichkeit abzubilden. Das A und O ist hier, informieren, nachlesen und immer am Ball bleiben.
IT-Sicherheit wird immer wichtiger
In der heutigen Zeit wird die IT-Sicherheit immer präsenter, immer wichtiger. Täglich erreichen uns Nachrichten, dass wieder ein Unternehmen, eine Gemeinde, Universitäten oder Privatpersonen gehackt wurden, dass Daten verschlüsselt wurden oder ähnliches. Wie kann man einen Linuxserver absichern? Wie kann man einen Proxmoxserver absichern? Gleich vorweg. Es gibt keine absolute Sicherheit. Aber man kann einiges tun, um es Angreifern schwer zu machen. Einmal solltest du Google oder eine Suchmaschine deiner Wahl nutzen und dich immer auf Stand halten. Dann halte deine Systeme auf dem neuesten Stand und lass die Kisten nicht einfach so laufen im Netz. Vielleicht die Server auch ausschalten wenn sie nicht gebraucht werden, bei Linux und Proxmox ist das Stichwort : crontab um Server zeitgesteuert zu starten und herunterzufahren.
Root-Rechte werden für die folgenden Eingriffe am System vorrausgesetzt. Entweder man verwendet die Shell auf einem Knoten in Proxmox, oder man wählt sich via SSH-Client auf dem Sevrer ein.
Fail2Ban - IPS zum Abwehren von unerlaubten Anmeldeversuchen
Fail2Ban ist in Python geschrieben und ein IPS (Intrusion Prevention System) welches anhand von Logdatei-Einträgen IP Adressen sperrt. Die Konfigurationsdatei von Fail2Ban hält alle möglichen Parameter bereit um z.B. Apache, PHP, MySQL, Postfix und viele, viele andere System vor Anmeldungsversuche wie zum Beispiel Brutforce-Atacken zu schützen. Hier die kurz die Anleitung um Proxmox abzusichern.
Fail2Ban installieren:
apt-get install fail2ban
Fail2Ban jail.conf Datei mit einem Editor öffnen, hier verwende ich nano, welcher in Debian bereits installiert ist. Es kann aber auch vi oder vim verwendet werden. Sollte kein Editor installiert sein, kann dieser ebenfalls über apt install bzw. apt-get install nachinstalliert werden. jail.conf öffnen:
nano /etc/fail2ban/jail.conf
Folgende Einträge in die Datei jail.conf einfügen:
[proxmox2] enabled = true port = https,http,8006 filter = proxmox2 logpath = /var/log/daemon.log maxretry = 7 bantime = 43200Dann die Datei proxmox2.conf anlegen. Sie wird bei Aufruf des folgenden Befehls erzeugt:
nano /etc/fail2ban/filter.d/proxmox2.conf
Die folgenden Einträge in die Datei proxmox2.conf schreiben, bzw kopieren:
[Definition] # Option: failregex # Notes.: regex to match the password failure messages in the logfile. The # host must be matched by a group named "host". The tag "Proxmox und Debian-Systeme ausschalten, wenn nicht benötigt
Alle Systeme die nicht benötigt werden, sollten ausgeschaltet / deaktiviert werden. Ich schalte folgende Systeme aus. Ob diese bei Dir benötigt werden kann ich nicht sagen. Das muss jeder selbst wissen.
NFS, Network File System ausschalten. Die Datei nfs-common öffnen: nano /etc/default/nfs-common Den Wert: NEED_STATD=no eintragen.
RPC, Remote Procedure Call mit folgendem Befehl ausschalten: systemctl disable --now rpcbind.service rpcbind.socket Server Reboot mit dem Befehl: reboot
IPv6, Internet Protocol Version 6 ausschalten. Die Datei sysctl.conf öffnen: nano /etc/sysctl.conf Den Wert: net.ipv6.conf.all.disable_ipv6 = 1 eintragen.
Postfix auf IPv4 festlegen. Die Datei main.cf öffnen: nano /etc/postfix/main.cf Den Wert: inet_protocols = ipv4 eintragen. Postfix neu Starten: systemctl restart postfix.service
SSH absichern - Achtung nicht für Anfänger!
Achtung
SSH, die Secure Shell wird unter anderem verwendet um sich auf einen Server einzuloggen und sich mit diesem zu verbinden. Die SSH gilt es gesondert abzusichern. Fail2Ban ist bereits installiert und wenn richtig eingestellt, schützt Fail2Ban SSH bereits.
Die Datei sshd_config öffnen: nano /etc/ssh/sshd_config Die Werte anpassen: PubkeyAuthentication yes -> SSH Key erzeugen und installieren PermitRootLogin no -> erst setzen wenn anderer User mit root Rechten ausgestattet wurde! PasswordAuthentication no -> erst setzen wenn SSH Keys vorliegen und installiert sind! Den SSH Port oberhalb Port, hier: 50100 verlegen. Der gewählte Port muss noch frei sein.
Kernelparameter nach Empfehlung vom BSI, Bundesamt für Sicherheit in der Informationstechnik
Die Datei sysctl.conf öffnen: nano /etc/sysctl.conf Die folgenden Werte kopieren und am Ende der Datei einfügen:
# 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 aktivieren werden net.ipv4.tcp_syncookies = 1
# IPv6 router advertisements deaktivieren net.ipv6.conf.all.accept_ra = 0 net.ipv6.conf.default.accept_ra = 0
Proxmox 2FA Zwei-Faktor-Authentisierung aktivieren
PVE Zwei-Faktor-Authentisierung in Proxmox einrichten und aktivieren.(Englisch)
Proxmox Firewall einsetzen
Achtung
Firewall auf Datacenter-Ebene: Klick auf Datacenter Klick auf Firewall Klick auf Options Auf der rechten Seite: Doppelklick auf Firewall, die Checkbox aktivieren Zunächst keine Quellports setzen. Nur Zielports. Sonst kann man sich aussperren. ACCEPT tcp Zielport: 50100 -> oben gewählter SSH Port ACCEPT tcp Zielport 8006 -> Proxmox Web UI
Kommentare powered by CComment