Ohne eine Firewall gibt es keine Regeln oder Einschränkungen für Ihren Netzwerkverkehr, was zu einer Reihe negativer Folgen führt. Das Linux-System wird mit einem Standard-Firewall-Konfigurationstool geliefert, nämlich Uncomplicated Firewall (UFW). Aber wie richtet man eine UFW-Firewall ein? Lehnen Sie sich zurück und entspannen Sie sich, dieses Tutorial hat Sie abgedeckt!
In diesem Tutorial erfahren Sie, wie Sie UFW konfigurieren und eine Firewall auf Ihrem Linux-System einrichten, um Ihr Netzwerk zu schützen und böswillige Handlungen abzuwehren.
Bereit? Lesen Sie weiter, um loszulegen!
Voraussetzungen
Dieses Tutorial wird eine praktische Demonstration sein. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie Folgendes haben:
- Ein Ubuntu-Rechner – Dieses Tutorial verwendet Ubuntu 20.04 LTS, aber andere Linux-Distributionen funktionieren.
- Root-Rechte für Ihren Computer.
UFW installieren und IPv6-Verbindung aktivieren
Obwohl UFW mit Ihrem Ubuntu-System geliefert wird, wird UFW nicht standardmäßig installiert. Installieren Sie zuerst UFW mit dem apt
Paketmanager und konfigurieren Sie ihn so, dass er Verbindungen über IPv6 zulässt.
1. Öffnen Sie Ihr Terminal und führen Sie apt update
aus Befehl unten, um Ihren lokalen Paketindex zu aktualisieren. Der Befehl akzeptiert alle Eingabeaufforderungen (-y
) während des Updates für weniger Benutzereingriff.
sudo apt update -y
2. Führen Sie als Nächstes den folgenden Befehl aus, um UFW zu installieren (install uwf
) auf Ihrem System, während Sie alle Eingabeaufforderungen akzeptieren (-y
) während der Installation.
sudo apt install ufw -y
2. Öffnen Sie die UFW-Konfigurationsdatei (/etc/default/ufw ) mit Ihrem bevorzugten Texteditor. UFW unterstützt IPv6, aber Sie müssen sicherstellen, dass die Firewall so konfiguriert ist, dass sie Verbindungen über IPv6 akzeptiert.
Wenn Sie nur IPv4 aktiviert haben, sind Sie immer noch anfällig für IPv6-Angriffe.
4. Scrollen Sie nach unten zu IPV6 -Variable und setzen Sie den Wert auf yes , wie unten gezeigt, speichern Sie dann die Änderungen und beenden Sie den Editor
5. Führen Sie abschließend den folgenden Befehl aus, um UFW zu deaktivieren und erneut zu aktivieren. Der Befehl startet den UFW-Dienst neu, damit die Änderungen wirksam werden.
Nach Abschluss des Befehls kann Ihre Firewall nun sowohl IPv4- als auch IPv6-Firewall-Regelsätze schreiben.
sudo ufw disable && sudo ufw enable
Standardrichtlinien für Firewall-Regeln konfigurieren
Wenn Sie gerade erst mit UFW beginnen, wird empfohlen, eine Standardrichtlinie für Ihre Regeln einzurichten. Die Standardrichtlinien werden auf eine Kette angewendet, für die noch keine spezifischen Regeln definiert sind.
Richten Sie UFW so ein, dass alle eingehenden Verbindungen abgelehnt und alle ausgehenden Verbindungen zugelassen werden. Folglich wird jedem Versuch, von außen auf Ihren Computer zuzugreifen, der Zugriff verweigert, während Sie sich weiterhin ungehindert mit jeder Website oder jedem Server verbinden können.
Führen Sie ufw
aus Befehl unten an deny
alle incoming
Verbindungen durch default
.
sudo ufw default deny incoming
Führen Sie nun den folgenden Befehl zu allow
aus alle outgoing
Verbindungen über default
.
sudo ufw default allow outgoing
Zulassen von SSH-Verbindungen auf der UFW-Firewall
Sie haben gerade Standardrichtlinien auf Ihrer UFW-Firewall eingerichtet, um den gesamten eingehenden Datenverkehr abzulehnen, und die Regel „Alle zulassen – Alle ablehnen“ ist eine gute Einstellung für einen normalen Benutzer. Aber was ist, wenn Sie einen Server betreiben? Sie müssen bestimmten eingehenden und ausgehenden Datenverkehr zulassen. Das Zulassen einer SSH-Verbindung auf Ihrer UFW-Firewall reicht aus, um bestimmten ein- und ausgehenden Datenverkehr zuzulassen.
Sie richten einen SSH-Server ein, der eingehende SSH-Verbindungen auf Port 22 zulässt. Aber warum Port 22 und kein anderer Port? Auf Unix-ähnlichen Systemen lauscht der SSH-Daemon standardmäßig auf Port 22, daher empfiehlt es sich, den Standard-SSH-Port zu verwenden, um Ihnen das Leben ein wenig einfacher zu machen.
1. Führen Sie die folgenden Befehle aus, um den OpenSSH-Server zu installieren (install openssh-server
) auf Ihrem System und starten Sie einen OpenSSH-Server (start ssh
).
sudo apt install openssh-server -y
sudo systemctl start ssh
2. Führen Sie nun den folgenden Befehl aus, um eingehende SSH-Verbindungen zuzulassen. Ohne Angabe von Port 22 reicht es aus, da UFW weiß, welcher Port für SSH ist.
sudo ufw allow ssh
Die Datei /etc/services enthält eine Liste aller verfügbaren Dienste auf Ihrem System. Öffnen Sie die Datei in Ihrem Texteditor und scrollen Sie nach unten zu ssh und sehen Sie sich die Portnummer an (22 ) ist Teil der Servicebeschreibung, wie unten gezeigt.
Aber vielleicht möchten Sie lieber die Portnummer angeben (22
), um SSH zuzulassen. Führen Sie in diesem Fall stattdessen den folgenden Befehl aus.
sudo ufw allow 22
3. Führen Sie nun den folgenden Befehl aus, um UFW zu aktivieren.
sudo ufw enable
Geben Sie Y ein in der Bestätigungsaufforderung, wie unten gezeigt, und drücken Sie die Eingabetaste, um mit der Ausführung des Befehls fortzufahren. UFW beginnt nun mit dem Filtern von Paketen auf Ihrem System.
4. Führen Sie abschließend einen der folgenden Befehle aus, um den Status Ihrer UFW-Firewall zu überprüfen.
## Displays more detailed information, such as the interface and
## the packet's current progress
sudo ufw status verbose
## Shows each rule with a number and the corresponding allow or deny status
## The numbered mode is useful when you are trying to delete a rule set here and there
sudo ufw status numbered
Wenn Sie den Befehl mit dem verbose
ausführen Option, sehen Sie eine Ausgabe ähnlich der folgenden:
- Status:aktiv – Zeigt an, dass die Firewall derzeit ausgeführt wird.
- Protokollierung:an (niedrig) – Zeigt an, dass UFW alle Pakete protokolliert, die von der Firewall verarbeitet werden.
- Standard:ablehnen (eingehend), zulassen (ausgehend), deaktiviert (weitergeleitet) – Gibt an, dass die Standardrichtlinie darin besteht, alle eingehenden Verbindungen zu verweigern und alle ausgehenden Verbindungen zuzulassen.
- Neue Profile:überspringen – Zeigt an, dass die Firewall derzeit den Standardsatz von Regeln verwendet.
Wenn Sie den Befehl mit dem numbered
ausführen Option stattdessen sehen Sie die Ausgabe unten. Sie können eine Liste mit nummerierten Regeln und dem entsprechenden ERLAUBEN sehen oder VERWEIGERN Status.
Zulassen von HTTP- und HTTPS-Verbindungen
Zu diesem Zeitpunkt haben Sie nur SSH-Verbindungen auf Ihrer UFW-Firewall zugelassen, aber das schränkt die Fähigkeiten Ihres Servers ein. Erlauben Sie andere Verbindungsarten wie HTTP oder HTTPS und fügen Sie weitere Regeln zur UFW-Firewall hinzu.
Führen Sie einen der folgenden Befehle aus, um eingehende HTTP-Verbindungen zuzulassen.
## HTTP connection uses port 80 (not secure)
sudo ufw allow 80
sudo ufw allow http
Führen Sie nun einen der folgenden Befehle aus, um eingehende HTTPS-Verbindungen zuzulassen.
sudo ufw allow https
## HTTP connection uses port 443 (secure)
sudo ufw allow 443
Zulassen von Verbindungen von bestimmten Portbereichen und IP-Adressen
Einige Anwendungen verwenden mehrere Ports, um ihre Dienste bereitzustellen. Und vielleicht müssen Sie eine Reihe von Ports öffnen oder Sie müssen die Verbindung von einer bestimmten IP-Adresse zulassen. Fügen Sie in diesem Fall weitere UFW-Firewallregeln hinzu.
Führen Sie die folgenden Befehle aus, um eingehende Verbindungen auf den Ports 5001 bis 5009 zuzulassen. Sie sollten immer das Protokoll angeben (tcp
oder udp
) nach dem Portbereich, für den die Regeln gelten, da nicht alle Ports von beiden Protokollen verwendet werden.
Zu den häufig verwendeten TCP-Ports gehören beispielsweise 80 (HTTP) und 443 (HTTPS). Übliche UDP-Ports sind jedoch 53 (DNS) und 67/68 (DHCP).
sudo ufw allow 5001:5010/tcp
sudo ufw allow 5001:5010/udp
Führen Sie stattdessen den folgenden Befehl aus, wenn Sie lieber SSH-Verbindungen von einer bestimmten IP-Adresse zulassen möchten. Der Befehl erlaubt SSH-Verbindungen (port 22
) nur von 192.168.1.2
IP-Adresse.
sudo ufw allow from 192.168.1.2 to any port 22
Zulassen von Datenverkehr von einer bestimmten Netzwerkschnittstelle
Mit UFW können Sie auch Datenverkehr nur auf einer bestimmten Netzwerkschnittstelle zulassen, z. B. ist eth0 die erste Ethernet-Schnittstelle und wlan0 die erste Wi-Fi-Schnittstelle.
Führen Sie einen der folgenden Befehle aus, um HTTP-Verbindungen nur auf eth0
zuzulassen und wlan0
Schnittstellen.
## Allow HTTP connection only on the eth0 interface
sudo ufw allow in on eth0 to any port 80
## Allow HTTP connection only on the wlan0 interface
sudo ufw allow in on wlan0 to any port 80
Löschen von UFW-Firewallregeln
Vielleicht erfüllen einige UFW-Firewall-Regeln keinen Zweck mehr. In diesem Fall möchten Sie möglicherweise einige der Regeln aus UFW entfernen. Aber zuerst müssen Sie entweder die Nummer oder den Namen der zu löschenden Regel kennen.
1. Führen Sie den folgenden Befehl aus, um eine nummerierte Liste der Regeln zu erhalten, die zu UFW hinzugefügt wurden.
sudo ufw status numbered
Beachten Sie die Nummer oder den Namen der Regel in der Ausgabe, wie unten.
2. Führen Sie als Nächstes den folgenden Befehl zu delete
aus Regelnummer 4
, das ist der 5001:5010/tcp
Hafenbereich.
sudo ufw delete 4
3. Führen Sie den folgenden Befehl zu delete
aus eine Regel mit ihrem eigentlichen Namen mit dem allow
Status. In diesem Beispiel würden Sie http
löschen Regel, indem Sie den folgenden Befehl ausführen.
sudo ufw delete allow http
4. Führen Sie nun den folgenden Befehl zu delete
aus eine Regel durch Angabe einer Portnummer (443
) mit dem allow
Status.
sudo ufw delete allow 443
5. Führen Sie schließlich den folgenden Befehl erneut aus, wie Sie es in Schritt 1 getan haben, um alle Regeln aufzulisten.
sudo ufw status numbered
Wie unten zu sehen ist, gelten die Regeln für 5001:5010/tcp
Portbereich, der http
, und die 443
Port sind jetzt weg.
Zurücksetzen der UFW-Firewall
Es kann vorkommen, dass Sie UFW auf die Standardwerte zurücksetzen müssen, z. B. nach dem Konfigurieren eines großen Satzes von Regeln. Ein Update kann Ihre Konfiguration ändern, sodass Sie UFW neu konfigurieren und möglicherweise von vorne beginnen müssen.
Führen Sie ufw reset
aus Befehl unten, um alle Ihre Firewall-Regeln auf ihre Standardeinstellungen zurückzusetzen. Dieser Befehl deaktiviert UFW und löscht alle Ihre aktuellen Firewall-Regeln.
sudo ufw reset
Geben Sie „Y“ ein und drücken Sie die Eingabetaste, um mit dem Zurücksetzen Ihrer UFW-Firewall fortzufahren.
Nachdem das Zurücksetzen abgeschlossen ist, haben Sie eine Neuinstallation von UFW, die vollständig deaktiviert ist, und sogar Ihre Standardrichtlinien sind weg.
Führen Sie nun den folgenden Befehl aus, um UFW wieder zu aktivieren, und beginnen Sie mit der Konfiguration Ihrer Firewall-Regeln von Grund auf neu.
sudo ufw enable
Wenn Sie entscheiden, dass Sie UFW nicht mehr verwenden möchten, müssen Sie es nicht erneut aktivieren. Oder führen Sie den folgenden Befehl aus, um sicherzustellen, dass UFW deaktiviert ist.
sudo ufw disable
Schlussfolgerung
In diesem Tutorial haben Sie festgestellt, dass das Einrichten einer Firewall bei der Verwendung von UFW nicht allzu abschreckend ist. Sie sollten jetzt ein gutes Verständnis dafür haben, wie Sie Ihre eigenen Regeln mit UFW auf Ubuntu einrichten und implementieren.
Warum bauen Sie nun nicht auf diesem neu gewonnenen Wissen auf, indem Sie mehr über UFW und Docker Security auf einem Linux-Computer erfahren?