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 root@insecure.server.ip.address
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 drücken Strg + W und tippen PermitRootLogin.

Ändern Sie den Wert von PermitRootLogin von „yes“ in „no“ und speichern Sie dann die Datei, indem Sie drücken Strg + Ödann Strg + x.
Um die neue Einstellung zu übernehmen, laden Sie den SSH-Daemon des Servers neu durch systemctl:
sudo systemctl restart ssh

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:
ssh-keygen
Das Keygen-Programm fragt Sie nach einer Reihe von Details über den Schlüssel, den Sie erstellen möchten. Sie können diese Optionen bedenkenlos auf den Standardeinstellungen belassen, indem Sie auf drücken Eintreten drei Mal.

Exportieren Sie Ihr neues öffentliches Schlüsselpaar mithilfe von auf Ihren Remote-Server ssh-copy-id Programm. 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 ramces@my.server.ip.address

Melden Sie sich bei Ihrem Remote-Computer an, indem Sie den folgenden Befehl ausführen:
ssh ramces@my.server.ip.address
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
Finden Sie die PasswordAuthentication Variable und ändere ihren Wert von „yes“ auf „no“.

Laden Sie Ihren SSH-Daemon neu, 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 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:
sudo apt install ufw

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 default deny incoming sudo ufw default allow outgoing

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 allow 22 sudo ufw allow 80 sudo ufw allow 443
Zuletzt müssen Sie Ihre neue Firewall-Konfiguration aktivieren, indem Sie sie ausführen sudo ufw enable. Außerdem können Sie überprüfen, ob Ihre Firewall online ist, indem Sie diesen Befehl ausführen:
sudo ufw status

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
-sFlag setzt die System-Shell für das neue Benutzerkonto. In meinem Fall verwendet mein neues Konto Bash für seine Shell. - Beide
-dund-mFlags legen das Standardbenutzerverzeichnis für das neue Konto fest. - Das
-Gflag 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. - Das
passwdMit dem Befehl 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 ausführen su new-service.

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 durch sysctl. Dies ist ein integriertes Dienstprogramm, mit dem Sie die Laufzeitoptionen des Linux-Kernels optimieren können.

Es ist jedoch wichtig, dies zu beachten sysctl deckt nicht den gesamten Kernel-Härtungsprozess ab, 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 nicht deaktiviert haben PasswordAuthentication Variable.
Abgesehen davon können 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 die usermod Dienstprogramm. Laufen zum Beispiel usermod -G video new-service entfernt den Benutzer „new-service“ aus der Gruppe „sudo“ und fügt ihn der Gruppe „video“ hinzu.
Unterstützen Sie unsere Arbeit ❤️
Wenn Ihnen dieser Artikel gefallen hat, können Sie uns mit einem Trinkgeld unterstützen, damit wir weiterhin großartige Inhalte veröffentlichen können.

























