So richten Sie eine Firewall auf einem Ubuntu-Server ein
Veröffentlicht: 15. Februar 2025 um 21:32:51 UTC
In diesem Artikel wird die Einrichtung einer Firewall unter GNU/Linux mit ufw (die Abkürzung für Uncomplicated FireWall) erläutert und anhand einiger Beispiele erläutert. Der Name ist passend, denn auf diese Weise können Sie wirklich ganz einfach sicherstellen, dass nicht mehr Ports als nötig geöffnet sind.
How to Set Up a Firewall on Ubuntu Server
Die Informationen in diesem Beitrag basieren auf Ubuntu Server 14.04 x64. Sie können für andere Versionen gültig sein oder nicht. (Update: Ich kann bestätigen, dass die Informationen in diesem Beitrag grundsätzlich noch gültig und funktionsfähig sind, wie es Ubuntu Server 24.04 vorsieht. In den letzten 10 Jahren ist ufw jedoch etwas „intelligenter“ geworden, da es Profile für gängige Serveranwendungen gibt (Sie können beispielsweise „Nginx full“ anstelle der Ports 80 und 443 separat aktivieren) und das Deaktivieren/Aktivieren der gesamten Firewall zum Anwenden neuer Regeln ist nicht mehr erforderlich.)
Als ich mit GNU/Linux (Ubuntu)-Servern anfing, musste ich zum Einrichten einer Firewall manuell eine möglicherweise komplexe Konfigurationsdatei für iptables erstellen und pflegen. Kürzlich habe ich jedoch ufw entdeckt, die Abkürzung für Uncomplicated Firewall – und das ist sie wirklich :-)
Bei meiner Installation von Ubuntu Server 14.04 war ufw bereits installiert. Wenn dies bei Ihnen nicht der Fall ist, installieren Sie es einfach aus den Repositories:
UFW ist eigentlich nur ein Tool, das die iptables-Konfiguration vereinfacht – hinter den Kulissen übernehmen weiterhin iptables und die Linux-Kernel-Firewall die Filterung, daher ist UFW weder weniger noch sicherer als diese. Da UFW die korrekte Konfiguration einer Firewall jedoch erheblich erleichtert, verringert es möglicherweise das Risiko menschlicher Fehler und ist daher möglicherweise sicherer für unerfahrene Administratoren.
Wenn Ihr Server sowohl mit IPv6 als auch mit IPv4 konfiguriert ist, stellen Sie sicher, dass dies auch für UFW aktiviert ist. Bearbeiten Sie die Datei /etc/default/ufw und suchen Sie nach einer Zeile mit IPV6=yes . Bei meiner Installation war sie bereits vorhanden, aber wenn nicht oder wenn dort „nein“ steht, sollten Sie sie bearbeiten.
Aktivieren Sie dann einfach in der Eingabeaufforderung die Ports, die Sie öffnen möchten. Wenn Sie per SSH mit Ihrem Server verbunden sind, stellen Sie sicher, dass Sie dies ebenfalls zulassen, da sonst Ihre Verbindung unterbrochen werden und Sie möglicherweise aus Ihrem Server ausgesperrt werden, wenn Sie es aktivieren – je nachdem, ob Sie physischen Zugriff auf den Server haben oder nicht, kann dies etwas unpraktisch sein ;-)
Wenn Sie beispielsweise SSH auf dem Standardport 22 verwenden und einen Webserver konfigurieren, der sowohl unverschlüsselte (HTTP auf Port 80) als auch verschlüsselte (HTTPS auf Port 443) Verbindungen unterstützt, würden Sie die folgenden Befehle ausgeben, um ufw zu konfigurieren:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Wenn Sie weitere Regeln benötigen, fügen Sie diese einfach wie oben beschrieben hinzu.
Wenn Sie eine statische IP-Adresse haben und nur von einem Standort aus eine SSH-Verbindung herstellen müssen, können Sie SSH-Verbindungen auch wie folgt auf eine einzelne Ursprungsadresse beschränken:
Geben Sie stattdessen natürlich Ihre eigene IP-Adresse ein.
Wenn Sie fertig sind, aktivieren Sie ufw durch Eingabe von:
Und fertig! Die Firewall läuft und wird automatisch gestartet, wenn Sie Ihren Server neu starten :-)
Wenn Sie Änderungen an der UFW-Konfiguration vornehmen, müssen Sie sie möglicherweise deaktivieren und erneut aktivieren, damit die Änderungen wirksam werden. Gehen Sie dazu wie folgt vor:
sudo ufw enable
Um die aktuelle Konfiguration anzuzeigen, geben Sie einfach ein:
Wenn ufw nicht aktiviert ist, wird einfach die Meldung „inaktiv“ angezeigt, andernfalls werden die aktuell definierten Regeln aufgelistet.