5 einfache Tipps zur Sicherung Ihres Linux-Servers

Sichere Ubuntu-Server-Tipps 00 Titelbild

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

    1. Entfernen Sie den Root-SSH-Zugriff
    1. Verwenden Sie ein Schlüsselpaar für den SSH-Zugriff
    1. Härtung der Firewall Ihres Linux-Servers
    1. Erstellen Sie einen neuen Benutzer für jeden Dienst
    1. 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:

Sichere Ubuntu-Server-Tipps 04 Unsicherer Root-Login

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

Sichere Ubuntu-Server-Tipps 07 Sshd-Konfigurationsstandard

Suchen Sie die Variable PermitRootLogin in GNU Nano, indem Sie Ctrl + W drücken und PermitRootLogin eingeben.

Sichere Ubuntu-Server-Tipps 08 Permitrootlogin-Variable

Ä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

Sichere Ubuntu-Server-Tipps 09 SSH-Server neu laden

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-keygen

Das 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.

Sichere Ubuntu-Server-Tipps 10 SSH-Schlüssel generieren

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]

Sichere Ubuntu-Server-Tipps 11 Ssh Copy Id-Server

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_config

Suchen Sie die Variable PasswordAuthentication und ändern Sie ihren Wert von „ja“ auf „nein“.

Sichere Ubuntu-Server-Tipps 13 Passwortauthentifizierung deaktivieren

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

sudo systemctl restart sshd

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 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.

Sichere Ubuntu-Server-Tipps 14 Beispielhafte Port-Scans

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

Sichere Ubuntu-Server-Tipps 15 Ufw installieren

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

Sichere Ubuntu-Server-Tipps 16 Ändern der Standardregeln

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 443

Letztendlich 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

Sichere Ubuntu-Server-Tipps 17 Ufw aktiver 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.

Sichere Ubuntu-Server-Tipps 18 Ordner mit mehreren Besitzern

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.

Sichere Ubuntu-Server-Tipps 19 Neuer Benutzer aktiv

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.

Sichere Ubuntu-Server-Tipps 20 Make Menuconfig

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.

Sichere Ubuntu-Server-Tipps 21 Sysctl-Handbuchseite

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

Sichere Ubuntu-Server-Tipps 22 Sysctl-Kernel-Anpassungen

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

Sichere Ubuntu-Server-Tipps 23 Sysctl-Netzüberflutungsanpassung

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

Sichere Ubuntu-Server-Tipps 24 Sysctl-Netzwerkverbindungen filtern

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

Sichere Ubuntu-Server-Tipps 25 Sysctl-Net-Mitm-Prävention

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.