Zurück zum Blog

UFW Firewall: Anleitung für die Ubuntu-Firewall

Was ist UFW und wie nutzen Sie es? Firewall unter Ubuntu aktivieren, Port- und IP-Regeln, Regeln löschen, App-Profile, Rate Limiting, IPv6 und Docker.

Nodesty-Team6 Min. LesezeitSicherheit
Der Schriftzug UFW mit allow, deny und limit auf dunklem Nodesty-Hintergrund

UFW (Uncomplicated Firewall) ist ein Werkzeug, mit dem Sie die Firewall auf Ubuntu- und Debian-Servern mit einfachen Befehlen verwalten. Es setzt auf der Paketfilterung des Linux-Kernels auf und erlaubt es Ihnen, statt langer iptables-Regeln gut lesbare Befehle wie ufw allow 443/tcp zu verwenden. Eine richtig eingestellte Firewall sorgt dafür, dass auf Ihrem Server nur die Dienste von außen erreichbar sind, die Sie wirklich nutzen.

In dieser Anleitung erklären wir, wie Sie UFW sicher aktivieren, Port- und IP-Regeln anlegen, Regeln löschen, App-Profile und Rate Limiting nutzen, IPv6 und Logs einrichten und worauf Sie beim Einsatz zusammen mit Docker achten müssen. Wie Ports funktionieren, lesen Sie in unserem Artikel Was ist ein Port?.

Installation und sichere Aktivierung

Unter Ubuntu ist UFW meist vorinstalliert. Falls nicht:

sudo apt install ufw

Legen Sie vor dem Aktivieren die Standardregeln fest und erlauben Sie unbedingt SSH:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
  • default deny incoming: Blockiert alle eingehenden Verbindungen, die Sie nicht ausdrücklich erlauben.
  • default allow outgoing: Erlaubt dem Server, Verbindungen nach außen aufzubauen (Updates, APIs).
  • allow OpenSSH: Sorgt dafür, dass Ihre SSH-Verbindung nicht abbricht. Läuft SSH auf einem anderen Port, öffnen Sie diesen Port, etwa mit sudo ufw allow 2222/tcp.

Überspringen Sie diesen Schritt, bricht Ihre SSH-Verbindung nach dem Befehl enable ab. Haben Sie sich ausgesperrt, verbinden Sie sich über die Webkonsole Ihres Anbieters und fügen die Regel hinzu.

Status und Regeln zeigen Sie so an:

sudo ufw status verbose

Port-Regeln

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 25565/tcp
sudo ufw allow 27015/udp
sudo ufw allow 30120
sudo ufw allow 2456:2457/udp
  • Geben Sie ein Protokoll an (/tcp, /udp), wird nur dieses Protokoll geöffnet. Ohne Angabe (30120) wird der Port für TCP und UDP geöffnet.
  • Portbereiche werden mit Doppelpunkt geschrieben, und die Angabe des Protokolls ist Pflicht (2456:2457/udp).

Um einen Port ausdrücklich zu blockieren, verwenden Sie deny; um dem Verbindenden eine Ablehnung zu senden, statt die Pakete stillschweigend zu verwerfen, verwenden Sie reject.

Regeln nach IP-Adresse

Verwaltungsports nur für Ihre eigene IP-Adresse zu öffnen, ist eine der wirksamsten Sicherheitsgewohnheiten:

sudo ufw allow from 198.51.100.7 to any port 3306 proto tcp
sudo ufw allow from 198.51.100.0/24 to any port 22 proto tcp
sudo ufw deny from 203.0.113.50
  • Die erste Regel öffnet den MariaDB-Port nur für eine IP-Adresse.
  • Die zweite Regel öffnet SSH für einen IP-Bereich.
  • Die dritte Regel blockiert alle Verbindungen von einer IP-Adresse.

Die Reihenfolge der Regeln ist wichtig. UFW prüft die Regeln von oben nach unten und wendet die erste passende Regel an. Möchten Sie eine bestimmte Adresse von einem öffentlich offenen Port aussperren, fügen Sie die Sperrregel am Anfang der Liste ein:

sudo ufw insert 1 deny from 203.0.113.50

Regeln auflisten und löschen

sudo ufw status numbered
sudo ufw delete 3

Der erste Befehl listet die Regeln mit Nummern auf, der zweite löscht die Regel mit der angegebenen Nummer. Sie können eine Regel auch löschen, indem Sie sie ausschreiben:

sudo ufw delete allow 80/tcp

Mit jeder gelöschten Regel ändern sich die Nummern; wenn Sie mehrere Regeln löschen, prüfen Sie die Liste jedes Mal neu. Um alle Regeln zu löschen und von vorn zu beginnen, verwenden Sie sudo ufw reset; dieser Befehl deaktiviert UFW auch.

App-Profile

Manche Pakete installieren fertige Profile für UFW. Die vorhandenen Profile zeigen Sie so an:

sudo ufw app list

Ist zum Beispiel Nginx installiert, öffnet das Profil Nginx Full die Ports 80 und 443 gemeinsam:

sudo ufw allow 'Nginx Full'

Dank der Profile müssen Sie sich nicht merken, welche Ports ein Dienst verwendet.

Rate Limiting: ufw limit

Die Regel limit sperrt eine IP-Adresse vorübergehend, wenn von ihr in kurzer Zeit viele Verbindungsversuche kommen. Standardmäßig werden Adressen gesperrt, die innerhalb von 30 Sekunden 6 oder mehr Verbindungsversuche unternehmen:

sudo ufw limit OpenSSH

Das bremst automatisierte Passwortangriffe auf SSH. Für einen flexibleren Schutz, der auf Logs basiert, werfen Sie einen Blick auf unsere Anleitung Fail2ban installieren; den eigentlichen Schutz bietet bei SSH aber die Anmeldung per Schlüssel.

IPv6

Stellen Sie sicher, dass UFW Regeln auch für IPv6 anwendet. In der Datei /etc/default/ufw:

IPV6=yes

Ist diese Einstellung aktiv, gilt jede Regel, die Sie hinzufügen, für beide Protokolle; in der Ausgabe von ufw status sehen Sie die mit (v6) markierten Regeln. Haben Sie die Einstellung geändert, führen Sie sudo ufw reload aus. Details finden Sie in unserem Artikel Was ist IPv6?.

Logs

Um die Verbindungen zu sehen, die UFW blockiert, aktivieren Sie das Logging:

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

Zeilen, die mit [UFW BLOCK] beginnen, zeigen blockierte Verbindungen. Das hilft sehr, wenn Sie herausfinden wollen, warum keine Verbindung zu einem Dienst zustande kommt. Den Log-Level stellen Sie mit Werten wie sudo ufw logging medium ein; hohe Stufen können die Festplatte schnell füllen.

Einsatz mit Docker

Wenn Sie Docker verwenden, ist das Wichtigste, was Sie wissen müssen: Von Docker veröffentlichte Ports umgehen die UFW-Regeln. Docker fügt für die Ports, die Sie mit -p oder ports: öffnen, selbst iptables-Regeln hinzu, und diese Regeln werden vor UFW verarbeitet. Deshalb kann ein Port, der in UFW geschlossen erscheint, im Internet offen sein.

Binden Sie Ports, die nur innerhalb des Servers erreichbar sein sollen, an die lokale Adresse:

ports:
    - '127.0.0.1:3306:3306'

Details finden Sie in unserer Anleitung Docker installieren.

Häufig verwendete Befehle

BefehlWas macht er?
sudo ufw status verboseZeigt den Status und alle Regeln an
sudo ufw allow 443/tcpÖffnet einen Port
sudo ufw allow from IP to any port NÖffnet einen Port nur für eine IP-Adresse
sudo ufw deny from IPBlockiert eine IP-Adresse
sudo ufw status numberedListet die Regeln mit Nummern auf
sudo ufw delete NLöscht die Regel mit der angegebenen Nummer
sudo ufw limit OpenSSHWendet ein Rate Limit auf SSH an
sudo ufw reloadLädt die Regeln neu
sudo ufw disableDeaktiviert die Firewall

Für die allgemeine Serversicherheit werfen Sie auch einen Blick auf unsere Checkliste Linux Server absichern.

Firewall auf Nodesty-Servern

Wählen Sie bei den Nodesty-Paketen AMD Ryzen 9 9950X vServer und AMD EPYC 7763 vServer Ubuntu oder Debian, richten Sie Ihre Firewall mit UFW in wenigen Befehlen ein. Auf virtuellen Servern blockieren wir Spieleports oder UDP-Verkehr standardmäßig nicht; Sie entscheiden, welche Ports offen sind. Der L3–L7-DDoS-Schutz durch nShield filtert Angriffe auf Netzwerkebene, bevor sie Ihren Server erreichen, und verlieren Sie den SSH-Zugang, erreichen Sie Ihren Server jederzeit über die Webkonsole in Ihrem Panel.

Häufig gestellte Fragen

Bricht meine SSH-Verbindung ab, wenn ich UFW aktiviere?

Ja, wenn Sie UFW aktivieren, ohne eine Regel für SSH hinzuzufügen; die Standardregel blockiert dann alle eingehenden Verbindungen. Führen Sie vor dem Aktivieren von UFW unbedingt den Befehl sudo ufw allow OpenSSH aus. Haben Sie sich ausgesperrt, verbinden Sie sich über die Webkonsole Ihres Anbieters mit dem Server und fügen die Regel hinzu.

Was ist der Unterschied zwischen UFW und iptables?

iptables und nftables sind Werkzeuge, die die Paketfilterung des Linux-Kernels direkt steuern; ihre Regeln zu schreiben ist komplizierter. UFW ist eine einfache Oberfläche, die auf dieser Infrastruktur aufsetzt, und erlaubt es Ihnen, dieselben Regeln mit viel kürzeren und besser lesbaren Befehlen zu schreiben.

Warum greift UFW nicht bei Ports, die Docker öffnet?

Docker fügt für die veröffentlichten Ports selbst iptables-Regeln hinzu, und diese Regeln werden vor den Regeln von UFW verarbeitet. Deshalb kann ein Port, der in UFW geschlossen erscheint, über Docker nach außen offen sein. Binden Sie Ports, die nur innerhalb des Servers erreichbar sein sollen, an die Adresse 127.0.0.1.

Bleiben meine UFW-Regeln nach einem Neustart erhalten?

Ja. UFW-Regeln sind dauerhaft und werden bei jedem Start des Servers automatisch angewendet, sofern UFW aktiv ist. Mit sudo ufw status verbose sehen Sie, ob UFW aktiv ist, und alle Regeln.

Kann ich UFW unter AlmaLinux verwenden?

Unter AlmaLinux und Rocky Linux ist firewalld die Standard-Firewall, und wir empfehlen, sie zu verwenden. Zwei Firewall-Werkzeuge gleichzeitig zu betreiben, kann zu Konflikten zwischen den Regeln führen.

Kann ich Verbindungen aus einem bestimmten Land blockieren?

UFW selbst bietet keine Sperre nach Ländern. Dafür werden ipset oder ähnliche Werkzeuge mit Listen der IP-Bereiche einzelner Länder verwendet. Diese Listen ändern sich jedoch ständig und halten Angreifer, die ein VPN nutzen, nicht auf; den grundlegenden Schutz bieten eine starke Authentifizierung und geschlossene Ports.

Nodesty

Über den Autor

Nodesty-Team · Infrastruktur und Support

Das Nodesty-Team betreibt unsere Server, unser Netzwerk und unseren DDoS-Schutz im Alltag und beantwortet Support-Anfragen rund um die Uhr. Diese Ratgeber entstehen aus dieser Arbeit.

Verwandte Artikel

Starte deinen Server jetzt.

Erstellen, wachsen und skalieren Sie Ihre Projekte grenzenlos auf der Premium-Infrastruktur von Nodesty.

                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                             ············································                                                   
                                                ··································································································..........···························                                     
                                       ················..........................................................................................................................··············                             
                                  ·············.................::::::::::::::::::::::::::::::::::::::::::::::....................:::::::::::::::::::::::::::::::::::::::................···········                        
                             ············................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::............·········                     
                         ············.................:::::::::::::::::::::::::::::::::::::::::::::::::::------------::::::::::::::::::::::::::::::----------------:::::::::::::::::::::..........········                  
                    ············......................::::::::::::::::::::::::::::::::::::------------------------------------------------------------------------------------:::::::::::::.........········                
                ··········.............................................::::::::::::::::::-------------==========================================-----------------------------------:::::::::::........·······               
             ········..................:.....................................::::::::::--------=======+++++++++++++++++++++++++++++++++++++=========================------------------::::::::::.......·······              
           ······.........::::::::::::::::::::................................:::::::-----=====++++xxxxxx**************************xxxxxxxxx++++++++++++++===================------------::::::::.......·······             
          ·····.......:::::::::::::::::::::::::::.............................:::::----===+++xxx****%%%%&&&&&&#############&&&&&&&%%%%%*******xxxxxxxx++++++++++++++==============----------:::::::......······             
         ····......::::::::-------------:::::::::::..........................::::---===+++xx***%%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@####&&&&&%%%%*******xxxxxxxxx+++++++++++++===========--------::::::......·····             
        ····.....:::::::--------------------:::::::::.......................::::---===++xxx**%%&&&###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&%%%%%********xxxxxxxxxxx++++++++++++========------::::::.....······            
        ····.....:::::--------------------------::::::::....................::::---===++xx***%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&&%%%%%**********xxxxxxxxxxxxx+++++++++=======------:::::.....·····            
        ····....::::::-------=============---------:::::::::................:::::---===+++xx***%%%&&&#####@@@@@@@@@@@@@@@@@@@@@@@@@#####&&&&&%%%%%%*************xxxxxxxxxxxxxx+++++++++======-----:::::....·····            
         ····....:::::-------================---------:::::::::...............:::::----===++++xxx***%%%%&&&&&&#################&&&&&&%%%%%%%*******************xxxxxxxxxxxxxxxxx++++++++======----:::::....·····            
         ·····....:::::--------=================---------::::::::::..............:::::::-----====+++++xxxxxx**************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++=====-----::::....·····            
          ·····.....:::::--------=================----------:::::::::::.................:::::::::-------=============++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++======-----::::....·····            
            ·····.....:::::::----------===========-------------::::::::::::.........................::::::::::::::::::------------------=============+++++++++++++++++++++++++++++++++=======-----::::.....·····            
              ······......:::::::---------------------------------:::::::::::::........................................:::::::::::::::-----------============+++++++++++++++++++++========------:::::.....·····             
                 ······........:::::::::---------------------------:::::::::::::::::...........................................:::::::::::::------------=============================--------::::::.....······              
                    ·········.........:::::::::::::::-------------::::::::::::::::::::::::.......................................::::::::::::::::--------------------------------------::::::::......·······                
                          ··········............::::::::::::::::::::::::::::::::::::::::::::::::::................................::::::::::::::::::::::::::-------------:::::::::::::::.........········                   
                                  ············..................:::::::::::::::::::::::::::::::::::::::::::.........................:::::::::::::::::::::::::::::::::::::................···········                        
                                             ················.............................................................................................................·················                                 
                                                           ······················................................................................···························                                                
                                                                               ·········································································