5 einfache Tipps zur Sicherung Ihres Linux-Servers

Index
  1. 1. Entfernen Sie den Root-SSH-Zugriff
  2. 2. Verwenden Sie ein öffentliches Schlüsselpaar für den SSH-Zugriff
  3. 3. Härten Sie die Firewall Ihres Linux-Servers
  4. 4. Erstellen Sie für jeden Dienst einen neuen Benutzer
  5. 5. Härten Sie den Kernel Ihres Servers
  6. Häufig gestellte Fragen
    1. Ich habe meinen lokalen Rechner verloren. Ist es immer noch möglich, sich über SSH bei meinem Ubuntu-Server anzumelden?
    2. Mein Server hat sowohl iptables als auch ufw. Muss ich beide für meine Firewall konfigurieren?
    3. Ist es möglich, die Superuser-Rechte eines von mir erstellten Benutzers zu entfernen?

Linux-Server sind das Rückgrat des modernen Internets. Heutzutage läuft fast 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.

Notiz: 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 zu sichern, indem Sie Ihren Root-SSH-Zugriff deaktivieren. Standardmäßig lässt der OpenSSH-Server zu, dass sich jede eingehende Verbindung als Root-Benutzer anmeldet.

Wenn Sie beispielsweise den folgenden Befehl auf einem unsicheren Server ausführen, erhalten Sie eine Anmeldeaufforderung:

ssh [email protected]

Dies kann ein Problem darstellen, da Ihr Server dadurch offen und anfällig für einen Passwort-Brute-Force-Angriff bleibt. Um dies zu beheben, melden Sie sich bei Ihrem Linux-Server an und aktualisieren Sie die Konfigurationsdatei Ihres SSH-Daemons.

Sobald Sie sich auf Ihrem Linux-Server befinden, bearbeiten Sie die SSH-Konfigurationsdatei:

sudo nano /etc/ssh/sshd_config

Suchen Sie in GNU Nano nach der PermitRootLogin-Variablen, indem Sie Strg + W drücken und PermitRootLogin eingeben.

Ändern Sie den Wert von PermitRootLogin von „yes“ in „no“ und speichern Sie die Datei, indem Sie Strg + o und dann Strg + x drücken.

Um die neue Einstellung anzuwenden, laden Sie den SSH-Daemon des Servers über systemctl neu:

sudo systemctl ssh neu starten

2. Verwenden Sie ein öffentliches Schlüsselpaar für den SSH-Zugriff

Eine weitere schnelle Möglichkeit, Ihren Linux-Server zu sichern, besteht darin, ein öffentliches Schlüsselpaar zwischen Ihrem lokalen und Ihrem SSH-Benutzerkonto zu erstellen. Dieser Ansatz überspringt den Passwort-Anmeldeprozess und authentifiziert Sie automatisch bei Ihrem Remote-Server.

Um ein öffentliches Schlüsselpaar zu erstellen, müssen Sie zuerst den folgenden Befehl auf Ihrem lokalen Computer ausführen:

Das Keygen-Programm fragt Sie nach einer Reihe von Details über den Schlüssel, den Sie erstellen möchten. Sie können diese Optionen sicher auf den Standardeinstellungen belassen, indem Sie dreimal die Eingabetaste drücken.

Exportieren Sie Ihr neues öffentliches Schlüsselpaar mit dem Programm ssh-copy-id auf Ihren Remote-Server. Dies ist ein einfaches Dienstprogramm, das sowohl die lokalen als auch die Remote-Computer für die Public-Key-Authentifizierung über SSH vorbereitet.

ssh-copy-id [email protected]

Melden Sie sich bei Ihrem Remote-Computer an, indem Sie den folgenden Befehl ausführen:

ssh [email protected]

Es ist auch möglich, Ihren Linux-Server weiter zu sichern, indem Sie die Anmeldeaufforderung in SSH entfernen. Öffnen Sie die Konfigurationsdatei Ihres Daemons mit dem folgenden Befehl:

sudo nano /etc/ssh/sshd_config

Suchen Sie die Variable PasswordAuthentication und ändern Sie ihren Wert von „yes“ in „no“.

Laden Sie Ihren SSH-Daemon neu, indem Sie den folgenden Befehl ausführen:

sudo systemctl sshd neu starten

3. 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 Ihr Server dadurch anfällig für einen Port-Scanning-Angriff wird. Beispielsweise kann ein Angreifer Ihren Computer nach unsicheren Ports scannen und diese verwenden, um einen geeigneten Exploit 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:

Legen Sie die Standardregeln für ufw fest. Dies sind die Richtlinien, denen Ihre Firewall für jeden Port folgt, den Sie nicht anpassen. Es empfiehlt sich sicherzustellen, dass Sie alle eingehenden Verbindungen blockieren:

sudo ufw standard verweigert eingehende sudo ufw standard erlaubt ausgehende

Konfigurieren Sie Ihre Firewall für die Dienste, die Sie auf Ihrem Computer ausführen möchten. Wenn Sie beispielsweise die folgenden Befehle ausführen, können Sie sich über SSH anmelden und einen Webserver hosten:

sudo ufw erlauben 22 sudo ufw erlauben 80 sudo ufw erlauben 443

Zuletzt 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 online ist, indem Sie diesen Befehl ausführen:

4. Erstellen Sie für jeden Dienst einen neuen Benutzer

Standardmäßig gehört jede Datei und jedes Programm in einem Linux-System einem bestimmten Benutzer und einer bestimmten Gruppe. Um das System zu ändern, müssen Sie die richtigen Berechtigungen für die richtigen Ordner haben.

Eine Möglichkeit, die Sicherheit Ihres Linux-Servers zu erhöhen, besteht darin, für jeden neuen Dienst ein neues Benutzerkonto anzulegen. Dieser Ansatz ermöglicht es Ihnen, die Berechtigungen für jeden Dienst auf ein eigenes Benutzerkonto zu beschränken.

Führen Sie dazu die folgenden Befehle aus:

sudo useradd -s /bin/bash -d /home/new-service -m -G sudo new-service sudo passwd new-service

  • Das Flag -s legt die System-Shell für das neue Benutzerkonto fest. In meinem Fall verwendet mein neues Konto Bash für seine Shell.
  • Sowohl die Flags -d als auch -m legen das Standardbenutzerverzeichnis für das neue Konto fest.
  • Das Flag -G hingegen fügt das neue Konto allen von Ihnen angegebenen sekundären Gruppen hinzu. Wenn Sie beispielsweise das neue Konto zur sudo-Gruppe hinzufügen, kann es Superuser-Befehle ausführen.
  • Mit dem Befehl passwd können Sie ein neues Passwort für das neue Benutzerkonto festlegen.

Sobald Sie fertig sind, können Sie Ihr neues Benutzerkonto verwenden, indem Sie sich entweder von Ihrem aktuellen Konto abmelden oder su new-service ausführen.

5. Härten Sie den Kernel Ihres Servers

Der Kernel ist einer der wichtigsten Teile eines Linux-Systems und der Klebstoff, der die Hardware Ihres Computers mit Ihrer Software verbindet. Wenn Sie beispielsweise Ihren eigenen Linux-Kernel kompilieren, können Sie die Unterstützung für exotische Hardware und Funktionen aktivieren.

Abgesehen davon dient der Kernel auch als Root-Prozess des Betriebssystems. Das Sichern des Kernels ist einer der wichtigsten Teile beim Sichern Ihres Linux-Servers.

Eine der schnellsten Möglichkeiten, Ihren Kernel zu sichern, ist über sysctl. Dies ist ein integriertes Dienstprogramm, mit dem Sie die Laufzeitoptionen des Linux-Kernels optimieren können.

Es ist jedoch wichtig zu beachten, dass sysctl nicht den gesamten Kernel-Härtungsprozess abdeckt, da die Sicherung des Kernels weitgehend davon abhängt, was Sie davon benötigen.

Wenn Sie das wissen, können Sie die folgenden Befehle ausführen, um zu verhindern, dass Ihr Kernel Diagnoseinformationen 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 Ihren Kernel anzuweisen, alle gefälschten Verbindungsanforderungen an Ihren Server zu verwerfen:

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

Schließlich verhindert der folgende Befehlssatz jede eingehende Verbindung, um den Netzwerkverkehr an ein anderes Gateway umzuleiten. Dadurch wird verhindert, dass Ihre Maschine einem Man-in-the-Middle-Angriff zum Opfer fällt.

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: Abgesehen von den oben genannten Tipps können Sie auch diese Open-Source-Tools verwenden, um Ihren Linux-Server zu sichern.

Häufig gestellte Fragen

Ich habe meinen lokalen Rechner verloren. Ist es immer noch möglich, sich über SSH bei meinem Ubuntu-Server anzumelden?

In den meisten Fällen sollte es nicht möglich sein, sich über SSH anzumelden, wenn nur die Public-Key-Authentifizierung verwendet wird. Es ist jedoch möglicherweise immer noch möglich, auf die SSH-Eingabeaufforderung zuzugreifen, wenn Sie die PasswordAuthentication-Variable nicht deaktiviert haben.

Abgesehen davon könnten Sie entweder physisch auf die Maschine zugreifen und „/etc/ssh/sshd_config“ aktualisieren oder von Ihrem VPS-Anbieter aus auf die Root-Konsole 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 Kontrolle über dieselben Adressbereiche und Ports übernehmen. Sie müssen nur einen davon konfigurieren, um eine funktionierende Firewall auf Ihrem Linux-Server zu haben.

Ist es möglich, die Superuser-Rechte eines von mir erstellten Benutzers zu entfernen?

Ja! Es ist möglich, einen bestehenden Benutzer aus einer Gruppe zu entfernen. Verwenden Sie das usermod-Dienstprogramm. Wenn Sie beispielsweise usermod -G video new-service ausführen, wird der Benutzer „new-service“ aus der Gruppe „sudo“ entfernt und zur Gruppe „video“ hinzugefügt.

Schreibe einen Kommentar

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

Go up