5 einfache Tipps zur Sicherung Ihres Linux-Servers

Linux-Server sind das Rückgrat des modernen Internets. Heute läuft nahezu jede Website und jeder Dienst, auf den Sie über einen Webbrowser zugreifen können, auf einer Linux-Distribution. Hier zeigen wir Ihnen, wie Sie Ihren Linux-Server sichern können.
Inhaltsverzeichnis
- Entfernen Sie den Root-SSH-Zugriff
- Verwenden Sie ein Schlüsselpaar für den SSH-Zugriff
- Härtung der Firewall Ihres Linux-Servers
- Erstellen Sie einen neuen Benutzer für jeden Dienst
- Härtung des Kernels Ihres Servers
- Häufig gestellte Fragen
Hinweis: Dieses Tutorial wurde mit einem Ubuntu-Server erstellt, sollte aber auch für andere Linux-Distributionen gelten, einschließlich Ihres lokalen Webservers.
1. Entfernen Sie den Root-SSH-Zugriff
Eine der schnellsten Möglichkeiten, Ihren Ubuntu-Server zu sichern, besteht darin, Ihren SSH-Daemon abzusichern, indem Sie den Root-SSH-Zugriff deaktivieren. Standardmäßig erlaubt der OpenSSH-Server jedem eingehenden Verbindungsversuch, sich als Root-Benutzer anzumelden.
Zum Beispiel zeigt das Ausführen des folgenden Befehls auf einem unsicheren Server eine Loginaufforderung an:

Dies kann ein Problem darstellen, da es Ihren Server offen und anfällig für einen Passwort-Brute-Force-Angriff macht. Um dies zu beheben, melden Sie sich bei Ihrem Linux-Server an und aktualisieren Sie die Konfigurationsdatei Ihres SSH-Daemons.
Sobald Sie in Ihrem Linux-Server sind, bearbeiten Sie die SSH-Konfigurationsdatei:
sudonano/etc/ssh/sshd_config
Suchen Sie die Variable PermitRootLogin in GNU Nano, indem Sie Ctrl + W drücken und PermitRootLogin eingeben.

Ändern Sie den Wert von PermitRootLogin von „ja“ auf „nein“ und speichern Sie die Datei, indem Sie Ctrl + o und dann Ctrl + x drücken.
Um die neue Einstellung anzuwenden, laden Sie den SSH-Daemon des Servers über systemctl neu:
sudo systemctl restart ssh
2. Verwenden Sie ein Schlüsselpaar für den SSH-Zugriff
Eine weitere schnelle Möglichkeit, Ihren Linux-Server zu sichern, besteht darin, ein Schlüsselpaar zwischen Ihrem lokalen und dem SSH-Benutzerkonto zu erstellen. Dieser Ansatz überspringt den Passwortanmeldevorgang und authentifiziert Sie automatisch auf Ihrem Remote-Server.
Um ein Schlüsselpaar zu erstellen, müssen Sie zuerst den folgenden Befehl auf Ihrem lokalen Rechner ausführen:
ssh-keygenDas Programm keygen wird Sie nach verschiedenen Details zum Schlüssel fragen, den Sie erstellen möchten. Sie können diese Optionen sicher auf den Standardwerten belassen, indem Sie dreimal die Eingabetaste drücken.

Exportieren Sie Ihr neues Schlüsselpaar auf Ihren Remote-Server, indem Sie das Programm ssh-copy-id verwenden. Dies ist ein einfaches Dienstprogramm, das sowohl die lokalen als auch die Remote-Rechner für die Authentifizierung über öffentliche Schlüssel in SSH vorbereitet.
ssh-copy-id [email protected]
Melden Sie sich bei Ihrem Remote-Rechner an, indem Sie den folgenden Befehl ausführen:
Es ist auch möglich, Ihren Linux-Server weiter abzusichern, indem Sie die Loginaufforderung in SSH entfernen. Öffnen Sie die Konfigurationsdatei Ihres Daemons mit dem folgenden Befehl:
sudonano/etc/ssh/sshd_configSuchen Sie die Variable PasswordAuthentication und ändern Sie ihren Wert von „ja“ auf „nein“.

Laden Sie Ihren SSH-Daemon, indem Sie den folgenden Befehl ausführen:
sudo systemctl restart sshd3. Härten Sie die Firewall Ihres Linux-Servers
Neben der Einschränkung des SSH-Zugriffs können Sie auch die Sicherheit Ihres Linux-Servers verbessern, indem Sie Ihre Firewall konfigurieren. Standardmäßig akzeptiert ein neuer Linux-Rechner alle eingehenden Verbindungen von jedem Port.
Dies kann ein Problem darstellen, da es Ihren Server anfällig für einen Port-Scanning-Angriff macht. Zum Beispiel kann ein Angreifer Ihren Rechner nach unsicheren Ports durchsuchen und diese nutzen, um eine geeignete Ausnutzung zu finden.

Eine Möglichkeit, dies zu beheben, besteht darin, ufw zu installieren, einen einfachen Firewall-Client, der die Ports und Adressen kontrollieren kann, die für die Außenwelt verfügbar sind.
Führen Sie den folgenden Befehl aus, um ufw in Ubuntu zu installieren:
sudo apt install ufw
Setzen Sie die Standardregeln für ufw. Dies sind die Richtlinien, denen Ihre Firewall für jeden Port folgen wird, den Sie nicht anpassen. Es ist eine gute Praxis, sicherzustellen, dass Sie alle eingehenden Verbindungen blockieren:
sudo ufw default deny incoming
sudo ufw default allow outgoing
Konfigurieren Sie Ihre Firewall für die Dienste, die Sie auf Ihrer Maschine ausführen möchten. Zum Beispiel ermöglichen die folgenden Befehle die Anmeldung über SSH und das Hosten eines Webservers:
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443Letztendlich müssen Sie Ihre neue Firewall-Konfiguration aktivieren, indem Sie sudo ufw enable ausführen. Außerdem können Sie überprüfen, ob Ihre Firewall aktiv ist, indem Sie diesen Befehl ausführen:
sudo ufw status
4. Erstellen Sie einen neuen Benutzer für jeden Dienst
Standardmäßig gehört jede Datei und jedes Programm in einem Linux-System zu einem bestimmten Benutzer und einer bestimmten Gruppe. Um das System zu ändern, benötigen Sie die richtigen Berechtigungen für die richtigen Ordner.
Eine Möglichkeit, die Sicherheit Ihres Linux-Servers zu erhöhen, besteht darin, für jeden neuen Dienst ein neues Benutzerkonto zu erstellen. Dieser Ansatz ermöglicht es Ihnen, die Privilegien für jeden Dienst auf das jeweilige Benutzerkonto zu beschränken.

Führen Sie dazu die folgenden Befehle aus:
sudo useradd -s/bin/bash-d/home/new-service -m-Gsudo new-service
sudopasswd new-service- Der
-s-Schalter legt die Systemshell für das neue Benutzerkonto fest. In meinem Fall verwendet mein neues Konto Bash als Shell. - Sowohl der
-d- als auch der-m-Schalter legen das Standardbenutzerverzeichnis für das neue Konto fest. - Der
-G-Schalter fügt das neue Konto jedoch zu den sekundären Gruppen hinzu, die Sie angeben. Beispielsweise wird das Hinzufügen des neuen Kontos zur sudo-Gruppe es ihm ermöglichen, Superuser-Befehle auszuführen. - Der
passwd-Befehl ermöglicht es Ihnen, ein neues Passwort für das neue Benutzerkonto festzulegen.
Sobald dies erledigt ist, können Sie Ihr neues Benutzerkonto verwenden, indem Sie entweder von Ihrem aktuellen Konto abmelden oder su new-service ausführen.

5. Härten Sie den Kernel Ihres Servers
Der Kernel ist eines der wichtigsten Teile eines Linux-Systems und ist das Bindeglied zwischen der Hardware Ihrer Maschine und Ihrer Software. Zum Beispiel ermöglicht das Kompilieren Ihres eigenen Linux-Kernels die Unterstützung exotischer Hardware und Funktionen.

Darüber hinaus dient der Kernel auch als der Root-Prozess des Betriebssystems. Die Sicherung des Kernels ist einer der wichtigsten Teile der Sicherung Ihres Linux-Servers.
Eine der schnellsten Möglichkeiten, Ihren Kernel abzusichern, besteht über sysctl. Dies ist ein integriertes Dienstprogramm, mit dem Sie die Laufzeiteinstellungen des Linux-Kernels anpassen können.

Es ist jedoch wichtig zu beachten, dass sysctl nicht den gesamten Härtungsprozess des Kernels abdeckt, da die Sicherung des Kernels weitgehend davon abhängt, was Sie von ihm benötigen.
In Anbetracht dessen können Sie die folgenden Befehle ausführen, um zu verhindern, dass Ihr Kernel Diagnosedaten meldet:
sudo sysctl kernel.kptr_restrict=2
sudo sysctl kernel.dmesg_restrict=1
sudo sysctl kernel.kexec_load_disabled=1
Sie können auch die folgenden Befehle ausführen, um dem Kernel mitzuteilen, dass er gefälschte Verbindungsanfragen an Ihren Server ignorieren soll:
sudo sysctl net.ipv4.tcp_syncookies=1
sudo sysctl net.ipv4.tcp_rfc1337=1
Diese Befehle hingegen zwingen den Kernel, jede eingehende Verbindung zur Maschine zu validieren:
sudo sysctl net.ipv4.conf.all.rp_filter=1
sudo sysctl net.ipv4.conf.default.rp_filter=1
Letztendlich verhindert die folgende Reihe von Befehlen, dass eingehende Verbindungen den Netzwerkverkehr an ein anderes Gateway umleiten. Dies wird verhindern, dass Ihre Maschine Opfer eines Man-in-the-Middle-Angriffs wird.
sudo sysctl net.ipv4.conf.all.accept_redirects=0
sudo sysctl net.ipv4.conf.default.accept_redirects=0
sudo sysctl net.ipv4.conf.all.secure_redirects=0
sudo sysctl net.ipv4.conf.default.secure_redirects=0
sudo sysctl net.ipv6.conf.all.accept_redirects=0
sudo sysctl net.ipv6.conf.default.accept_redirects=0
sudo sysctl net.ipv4.conf.all.send_redirects=0
sudo sysctl net.ipv4.conf.default.send_redirects=0
Tipps: Neben den oben genannten Tipps können Sie auch diese Open-Source-Tools verwenden, um Ihren Linux-Server abzusichern.
Häufig gestellte Fragen
Ich habe meinen lokalen Computer verloren. Ist es noch möglich, mich über SSH bei meinem Ubuntu-Server anzumelden?
Im Großen und Ganzen sollte es nicht möglich sein, sich über SSH anzumelden, wenn nur die öffentliche Schlüssel-Authentifizierung verwendet wird. Es könnte jedoch weiterhin möglich sein, auf die SSH-Eingabeaufforderung zuzugreifen, wenn Sie die Variable PasswordAuthentication nicht deaktiviert haben.
Darüber hinaus könnten Sie entweder physisch auf die Maschine zugreifen und „/etc/ssh/sshd_config“ aktualisieren oder auf die Root-Konsole Ihres VPS-Anbieters zugreifen.
Mein Server hat sowohl iptables als auch ufw. Muss ich beide für meine Firewall konfigurieren?
Nein! Sowohl iptables als auch ufw sind Firewall-Software, die die gleichen Adressbereiche und Ports steuert. Sie müssen nur eines von beiden konfigurieren, um eine funktionierende Firewall auf Ihrem Linux-Server zu haben.
Ist es möglich, die Superuser-Rechte eines Benutzers, den ich erstellt habe, zu entfernen?
Ja! Es ist möglich, einen vorhandenen Benutzer aus einer Gruppe zu entfernen. Verwenden Sie das Dienstprogramm usermod. Zum Beispiel wird der Befehl usermod -G video new-service den Benutzer „new-service“ aus der „sudo“-Gruppe entfernen und ihn zur „video“-Gruppe hinzufügen.
Bildquelle: Unsplash. Alle Änderungen und Screenshots von Ramces Red.