Härtung eines Linux-Endpunkts mit Firewall und Service-Management

CompTIABeginner
Jetzt üben

Einführung

Endpoint Hardening ist ein kritischer Prozess zur Sicherung jedes Computersystems. Es beinhaltet die Reduzierung der "Angriffsfläche" des Systems, wodurch es weniger anfällig für Sicherheitsbedrohungen wird. Zwei grundlegende Aspekte des Hardening eines Linux-Systems sind die Verwaltung laufender Dienste und die Implementierung einer Firewall.

In diesem Lab erhalten Sie praktische Erfahrung mit diesen wesentlichen Sicherheitspraktiken. Sie lernen, wie Sie:

  • Dienste identifizieren und deaktivieren, die für die Systemfunktion nicht unerlässlich sind.
  • Die Uncomplicated Firewall (UFW) installieren und konfigurieren, eine benutzerfreundliche Schnittstelle zur Verwaltung von Netzwerkfilterregeln unter Linux.

Am Ende dieses Labs werden Sie ein praktisches Verständnis dafür haben, wie grundlegende Hardening-Techniken auf einen Linux-Endpunkt angewendet werden.

Identifizieren und Deaktivieren unnötiger Dienste

In diesem Schritt lernen Sie, wie Sie aktive Dienste auf Ihrem Linux-System identifizieren und nicht benötigte Dienste deaktivieren. Die Reduzierung der Anzahl laufender Dienste minimiert die potenzielle Angriffsfläche, da jeder Dienst anfällig für Schwachstellen sein könnte.

Zuerst listen wir alle aktiven Dienste auf. In einigen Linux-Umgebungen, insbesondere in Containern, ist der Befehl systemctl nicht verfügbar. Wir können stattdessen den Befehl service als Alternative verwenden.

Führen Sie den folgenden Befehl in Ihrem Terminal aus, um den Status aller Dienste anzuzeigen:

service --status-all

Sie sehen eine Liste von Diensten. Ein [ + ] neben einem Dienstnamen zeigt an, dass er läuft, während ein [ - ] anzeigt, dass er gestoppt ist.

 [ - ]  acpid
 [ - ]  apparmor
 [ + ]  apache2
 [ - ]  atop
 [ - ]  atopacct
 [ + ]  cron
...

Beachten Sie, dass apache2, ein Webserver, läuft. Für einen Allzweck-Endpunkt, der keine Website hosten muss, ist dieser Dienst unnötig und sollte deaktiviert werden.

Um den Dienst apache2 zu stoppen, verwenden Sie den Befehl service mit stop. Sie benötigen sudo-Berechtigungen, um Systemdienste zu verwalten.

sudo service apache2 stop

Überprüfen Sie nun, ob der Dienst gestoppt wurde, indem Sie seinen Status erneut abfragen:

service apache2 status

Die Ausgabe bestätigt, dass der Apache2-Dienst nicht mehr läuft.

○ apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Tue 2025-08-05 14:44:53 CST; 2s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 5892 ExecStop=/usr/sbin/apachectl graceful-stop (code=exited, status=0/SUCCESS)
   Main PID: 4800 (code=exited, status=0/SUCCESS)
        CPU: 50ms

Durch das Deaktivieren unnötiger Dienste haben Sie einen einfachen, aber effektiven Schritt zur Härtung Ihres Systems unternommen.

Installation und Konfiguration der Uncomplicated Firewall (UFW)

In diesem Schritt installieren Sie die Uncomplicated Firewall (UFW). UFW ist ein benutzerfreundliches Frontend für die leistungsstarke, aber komplexe iptables-Firewall. Es bietet eine vereinfachte Methode zur Konfiguration gängiger Firewall-Regeln.

Aktualisieren Sie zunächst Ihre Paketliste und installieren Sie das Paket ufw.

sudo apt-get update && sudo apt-get install -y ufw

Nach Abschluss der Installation ist UFW installiert, aber noch nicht aktiv. Sie können den Status mit dem folgenden Befehl überprüfen:

sudo ufw status

Die Ausgabe zeigt an, dass die Firewall inaktiv ist:

Status: inactive

Um die Firewall zu aktivieren, müssen Sie sie einschalten. Dieser Befehl startet die Firewall und konfiguriert sie so, dass sie beim Systemstart automatisch ausgeführt wird.

Hinweis: Wenn Sie eine Firewall auf einem Remote-Server aktivieren, müssen Sie sicherstellen, dass eine Regel für den SSH-Zugriff vorhanden ist. Andernfalls könnten Sie ausgesperrt werden. Für diese Laborumgebung ist das weitere Vorgehen sicher.

Aktivieren Sie UFW jetzt:

sudo ufw enable

Sie werden aufgefordert, den Vorgang zu bestätigen. Der Befehl aktiviert die Firewall und kann bestehende Verbindungen unterbrechen.

Firewall is active and enabled on system startup

Überprüfen wir den Status erneut, diesmal mit der Option verbose, um detailliertere Informationen, einschließlich der Standardrichtlinien, anzuzeigen.

sudo ufw status verbose

Die Ausgabe zeigt nun an, dass die Firewall aktiv ist, und listet die Standardrichtlinien auf. Standardmäßig lehnt UFW jeglichen eingehenden Datenverkehr ab und erlaubt jeglichen ausgehenden Datenverkehr, was ein sicherer Ausgangspunkt ist.

Status: active
Logging: off
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

Da die Firewall nun aktiv ist und standardmäßig alle eingehenden Verbindungen blockiert, müssen wir den SSH-Zugriff erlauben, um die Verwaltung des Systems remote fortsetzen zu können.

Fügen Sie eine Regel hinzu, um SSH-Verbindungen zuzulassen:

sudo ufw allow ssh

Sie erhalten eine Bestätigung, dass die Regel hinzugefügt wurde:

Rule added
Rule added (v6)

Dies stellt sicher, dass der SSH-Zugriff weiterhin verfügbar ist, während die Firewall aktiv ist.

Erstellen und Testen grundlegender Firewall-Regeln

Nachdem UFW aktiv ist, lernen Sie, wie Sie Regeln zur Steuerung des Netzwerkverkehrs erstellen. Wir werden Regeln hinzufügen, um spezifische, notwendige Dienste zuzulassen und standardmäßig alles andere zu blockieren.

Stellen Sie zunächst sicher, dass unsere Standardrichtlinien korrekt eingestellt sind. Es ist eine gute Praxis, diese explizit zu definieren.

sudo ufw default deny incoming
sudo ufw default allow outgoing

Da wir bereits in der vorherigen Schritt SSH-Zugriff konfiguriert haben, fügen wir nun eine Regel für eine benutzerdefinierte Anwendung hinzu. Stellen Sie sich vor, wir betreiben eine benutzerdefinierte Webanwendung auf Port 8080. Wir müssen eine Regel erstellen, um den Datenverkehr zu diesem spezifischen Port zuzulassen.

sudo ufw allow 8080/tcp

Dieser Befehl erlaubt spezifisch eingehenden Datenverkehr auf TCP-Port 8080.

Rule added
Rule added (v6)

Um eine Liste der aktuellen Regeln anzuzeigen, können Sie ufw status mit der Option numbered verwenden. Dies erleichtert die spätere Verwaltung oder Löschung von Regeln.

sudo ufw status numbered

Die Ausgabe zeigt Ihre neuen Regeln mit einer Nummer neben jeder einzelnen an.

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 8080/tcp                   ALLOW IN    Anywhere
[ 3] 22/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 4] 8080/tcp (v6)              ALLOW IN    Anywhere (v6)

Sie haben nun die Firewall so konfiguriert, dass nur wesentlicher Datenverkehr zugelassen wird, was die Sicherheit Ihres Systems erheblich verbessert.

Überprüfung von Systemprotokollen auf Firewall-Aktivitäten

In diesem Schritt erfahren Sie, wie Sie die Protokollierung (Logging) von UFW aktivieren und überprüfen. Protokolle sind unerlässlich für die Überwachung des Netzwerkverkehrs, die Identifizierung potenzieller Sicherheitsbedrohungen und die Fehlerbehebung bei Verbindungsproblemen.

Die Protokollierung von UFW ist standardmäßig nicht aktiviert. Sie können sie mit einem einfachen Befehl einschalten.

sudo ufw logging on

Sie erhalten eine Bestätigung, dass die Protokollierung aktiviert wurde.

Logging enabled

UFW-Protokolle werden in die Datei /var/log/ufw.log geschrieben. Beachten Sie, dass die Protokolldatei möglicherweise nicht sofort nach der Aktivierung der Protokollierung existiert; sie wird automatisch erstellt, sobald der erste Protokolleintrag geschrieben wird.

Sie können die Protokolldatei in Echtzeit anzeigen, indem Sie den Befehl tail mit dem Flag -f (follow) verwenden. Wenn die Datei noch nicht existiert, wartet der Befehl, bis sie erstellt wird:

sudo tail -f /var/log/ufw.log

Dieser Befehl zeigt die letzten Zeilen des Protokolls an und wartet auf neue Einträge. In einer Live-Umgebung würden Sie Protokolleinträge sehen, sobald die Firewall Verbindungen blockiert oder zulässt. Da diese Laborumgebung keinen externen Datenverkehr hat, der versucht, darauf zuzugreifen, sehen Sie möglicherweise keine neuen Einträge. Drücken Sie Ctrl+C, um das Verfolgen des Protokolls zu beenden.

Ein typischer Protokolleintrag für ein blockiertes Paket sieht wie folgt aus:

Sep 10 12:00:00 ubuntu kernel: [UFW BLOCK] IN=eth0 OUT= MAC=01:02:03:04:05:06:07:08:09:0a:0b:0c SRC=192.168.1.10 DST=192.168.1.20 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=12345 PROTO=TCP SPT=54321 DPT=23 WINDOW=0 RES=0x00 SYN URGP=0

Hier ist eine kurze Aufschlüsselung der wichtigen Felder:

  • [UFW BLOCK]: Zeigt die vom Firewall durchgeführte Aktion an.
  • SRC: Die Quell-IP-Adresse des Pakets.
  • DST: Die Ziel-IP-Adresse.
  • PROTO: Das Netzwerkprotokoll (z. B. TCP, UDP).
  • DPT: Der Zielport.

Sie können die Protokolldatei auch mit grep nach bestimmten Ereignissen durchsuchen. Um beispielsweise alle blockierten Verbindungsversuche zu finden, können Sie Folgendes ausführen:

sudo grep "UFW BLOCK" /var/log/ufw.log

Wenn die Protokolldatei noch nicht existiert oder leer ist, liefert dieser Befehl keine Ergebnisse, was normal ist. Sobald Firewall-Aktivitäten auftreten, werden Protokolleinträge geschrieben, die Sie dann durchsuchen können. Dieser Befehl filtert das Protokoll und zeigt nur die Zeilen an, die die Zeichenfolge "UFW BLOCK" enthalten, was äußerst nützlich ist, um Muster verdächtiger Aktivitäten zu identifizieren.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben dieses Lab zur Härtung eines Linux-Endpunkts erfolgreich abgeschlossen.

In diesem Lab haben Sie praktische Erfahrungen mit grundlegenden Sicherheitsaufgaben gesammelt. Sie haben gelernt, wie Sie:

  • Laufende Dienste auf einem Linux-System mit dem Befehl service identifizieren.
  • Nicht benötigte Dienste stoppen und deaktivieren, um die Angriffsfläche des Systems zu reduzieren.
  • Die Uncomplicated Firewall (UFW) installieren, aktivieren und konfigurieren.
  • Spezifische allow-Regeln für essentielle Dienste wie SSH und benutzerdefinierte Anwendungen erstellen.
  • UFW-Protokolle aktivieren und überprüfen, um Firewall-Aktivitäten zu überwachen und potenzielle Bedrohungen zu erkennen.

Dies sind grundlegende Fähigkeiten für jeden Systemadministrator oder Entwickler, der für die Wartung sicherer und robuster Linux-Umgebungen verantwortlich ist. Durch die Anwendung dieser Techniken können Sie die Sicherheit Ihrer Systeme erheblich verbessern.