Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).
UFW-Firewall installieren und steuern¶
UFW steht für Uncomplicated Firewall. Das Werkzeug vereinfacht die Verwaltung der Linux-Firewall über verständliche Befehle. Im Hintergrund setzt UFW die Regeln des Systems um, ohne dass jede Firewall-Regel von Hand geschrieben werden muss.
Beschreibung¶
Eine Firewall entscheidet anhand von Regeln, welche Netzwerkverbindungen erlaubt oder abgewiesen werden. UFW eignet sich besonders für Ubuntu- und Debian-Systeme, auf denen nur bestimmte Dienste von außen erreichbar sein sollen.
Typische Aufgaben sind:
- eingehende Verbindungen standardmäßig blockieren,
- SSH, HTTP oder HTTPS gezielt freigeben,
- Zugriffe auf bestimmte IP-Adressen oder Netze begrenzen,
- ausgehende Verbindungen kontrollieren,
- abgewiesene Verbindungsversuche protokollieren.
Hinweis
UFW schützt Netzwerkports, ersetzt aber keine sicheren Passwörter, Updates, SSH-Schlüssel oder die Absicherung der jeweiligen Anwendung.
Einsatzgebiete¶
UFW ist für viele einzelne Linux-Rechner und Server geeignet:
| Einsatzgebiet | Beispiel |
|---|---|
| Webserver | Nur SSH, HTTP und HTTPS erlauben |
| Datenbankserver | Datenbankport nur für einen Anwendungsserver öffnen |
| Entwicklungsrechner | Eingehende Verbindungen blockieren, lokale Dienste schützen |
| Heimserver | Zugriff nur aus dem lokalen Netzwerk zulassen |
| Cloud-Server | Zusätzliche Firewall direkt auf dem Betriebssystem verwenden |
Für große Cluster, dynamische Container-Netzwerke oder zentral verwaltete Unternehmensnetze können spezialisierte Firewall- und Netzwerkwerkzeuge besser geeignet sein.
Installation¶
Auf Ubuntu wird UFW über die Paketverwaltung installiert:
Installation und aktuellen Zustand prüfen:
Der Status inactive bedeutet, dass UFW installiert, aber noch nicht aktiviert ist.
Sicher aktivieren¶
Achtung
Bei einem entfernten Server muss vor der Aktivierung der verwendete SSH-Port freigegeben werden. Andernfalls kann die bestehende SSH-Verbindung nach dem Trennen nicht erneut aufgebaut werden.
Standardrichtlinien setzen:
SSH freigeben und UFW aktivieren:
Wird SSH auf einem anderen Port betrieben, muss stattdessen dieser Port freigegeben werden. Beispiel für TCP-Port 2222:
Tipp
Eine bestehende SSH-Sitzung während der Einrichtung geöffnet lassen und die Anmeldung in einem zweiten Terminal testen.
UFW steuern¶
Status anzeigen¶
Die nummerierte Ansicht ist besonders hilfreich, wenn einzelne Regeln gelöscht werden sollen.
Firewall ein- und ausschalten¶
disable deaktiviert die Firewall, behält aber die konfigurierten Regeln bei.
Ports erlauben und blockieren¶
# HTTP und HTTPS erlauben
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Einen TCP-Port blockieren
sudo ufw deny 8080/tcp
# Einen UDP-Port erlauben
sudo ufw allow 51820/udp
Regeln können auch über einen Portbereich angelegt werden:
Anwendungsprofile verwenden¶
Installierte Programme können UFW-Profile bereitstellen. Verfügbare Profile anzeigen:
Ein Profil freigeben:
Profile sind lesbarer als einzelne Portnummern und fassen zusammengehörige Ports zusammen.
Zugriff nach IP-Adresse begrenzen¶
Zugriff von einer einzelnen IP-Adresse erlauben:
SSH nur aus einem internen Netz zulassen:
Zugriff einer bestimmten IP-Adresse blockieren:
Hinweis
Die Netze 192.168.0.0/16, 172.16.0.0/12 und 10.0.0.0/8 sind private Adressbereiche. Die Beispieladresse 203.0.113.10 ist ausschließlich für Dokumentationen reserviert und muss durch die tatsächliche Adresse ersetzt werden.
Regeln löschen und zurücksetzen¶
Regel anhand ihrer Nummer löschen:
Alternativ kann die ursprüngliche Regel angegeben werden:
Alle Regeln auf die Ausgangskonfiguration zurücksetzen:
Achtung
ufw reset entfernt sämtliche selbst angelegten Regeln und deaktiviert UFW. Auf entfernten Servern anschließend zuerst wieder SSH freigeben.
Protokollierung und Fehlerdiagnose¶
Logging aktivieren und die gewünschte Detailstufe setzen:
Protokolle mit systemd anzeigen:
Je nach System können Meldungen zusätzlich in /var/log/ufw.log oder /var/log/kern.log stehen.
Die Konfiguration neu laden:
Bei Problemen helfen folgende Prüfungen:
Dabei zeigt ss, ob die Anwendung tatsächlich auf dem erwarteten Port lauscht. Eine UFW-Freigabe startet keinen Dienst und öffnet keinen Port, auf dem kein Programm läuft.
Beispiel: Webserver absichern¶
Das folgende Beispiel erlaubt SSH sowie HTTP und HTTPS. Andere eingehende Verbindungen werden standardmäßig blockiert:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow "Nginx Full"
sudo ufw enable
sudo ufw status verbose
Wichtige Befehle im Überblick¶
| Aufgabe | Befehl |
|---|---|
| Status anzeigen | sudo ufw status verbose |
| Regeln nummerieren | sudo ufw status numbered |
| Aktivieren | sudo ufw enable |
| Deaktivieren | sudo ufw disable |
| Regel erlauben | sudo ufw allow PORT/PROTOKOLL |
| Regel blockieren | sudo ufw deny PORT/PROTOKOLL |
| Regel löschen | sudo ufw delete NUMMER |
| Konfiguration neu laden | sudo ufw reload |
| Alle Regeln zurücksetzen | sudo ufw reset |
Verwandte Themen¶
- Server und Infrastruktur
- Sicherheit und Datenschutz
- SSH-Tunnel: Portweiterleitung über SSH
- Nginx-Grundlagen
- Nginx-Hardening
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).