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



