Einführung
UFW steht für Uncomplicated Firewall. Es ist eine Frontend-Plattform, mit der Sie Ihre Firewall-Funktionen und -Befehle einfach verwalten können. Sie erhalten UFW als Standardoption mit Ihrem Ubuntu-Server. Die Maximierung des Potenzials der Befehle und Funktionen der Firewall kann schwierig sein, wenn Sie mit dem Tool noch nicht vertraut sind.
Unser Ziel ist es, Ihnen einen umfassenden Leitfaden an die Hand zu geben, den Sie als Anfänger nutzen können. Wir werden die Erklärungen mit Beispielen für verschiedene Aktionen ergänzen, die Sie mit UFW durchführen können. Viele der Regeln werden für alltägliche Dienste und Aktivitäten sehr nützlich sein. Lassen Sie uns anfangen!
Voraussetzungen
Bevor Sie weiterlesen, stellen Sie sicher, dass Ihr UFW auf den Standard-Regelsatz eingestellt ist. Das bedeutet, dass die Firewall ausgehenden Datenverkehr zulässt, aber eingehenden Datenverkehr blockiert. Der Vorteil dieser Standardeinstellung ist, dass Sie auswählen können, welchen Datenverkehr Sie durch die Firewall zulassen möchten. Wenn Sie sich über den Status des aktuellen Regelsatzes auf Ihrem UFW unsicher sind, verwenden Sie diesen Befehl zur Überprüfung: sudo ufw status. Sie können auch diesen Befehl verwenden:
|
1 |
sudo ufw status verbose |
Abgesehen davon steht es Ihnen frei, in den Abschnitt zu springen, der für Ihre Anforderungen am relevantesten ist. Sie müssen nicht zwingend jeden einzelnen in diesem Leitfaden bereitgestellten Befehl verwenden. Sie können sie je nach Ihren persönlichen Bedürfnissen kombinieren.
So blockieren Sie eine IP-Adresse
Beginnen wir mit einer der grundlegendsten Funktionen jeder Firewall: dem Blockieren von IP-Adressen. Es gibt einen sehr einfachen Befehl, mit dem Sie alle Netzwerkverbindungen blockieren können, die von einer bestimmten IP-Adresse ausgehen. Nehmen wir beispielsweise an, dass die spezifische IP-Adresse in unserem Fall 15.15.15.51 lautet. Sie können diesen Wert durch die IP-Adresse ersetzen, die Sie über Ihr UFW blockieren möchten. Dies ist der Befehl, den Sie für diesen Zweck verwenden würden:
|
1 |
sudo ufw deny from 15.15.15.51 |
Hier gibt 'from 15.15.15.51' nur die Quell-IP-Adresse an, also '15.15.15.51'. Wenn Sie stattdessen ein Subnetz angeben möchten, können Sie es wie folgt hinzufügen: 15.15.15.0/24. Der Befehl funktioniert genauso gut. Sie können diese Quell-IP-Adresse in jeder gewünschten Firewall-Regel angeben, wie z. B. der allow-Regel.
- Blockieren von Netzwerkschnittstellen-Verbindungen
Manchmal besteht die Anforderung darin, Netzwerkverbindungen zu blockieren, die von einer bestimmten IP-Adresse zu einer bestimmten Netzwerkschnittstelle führen. In diesem Fall müssen wir die Netzwerkschnittstelle zusammen mit der Quell-IP-Adresse angeben. Nehmen wir für dieses Beispiel an, dass die Quell-IP-Adresse 15.15.15.51 und die Netzwerkschnittstelle eth0 ist:
|
1 |
sudo ufw deny in on eth0 from 15.15.15.51 |
Ähnlich wie die Quell-IP-Adresse können Sie die Netzwerkschnittstelle auch in jeder Firewall-Regel angeben. Der Zweck dieser Spezifikationen besteht darin, die jeweilige Firewall-Regel nur auf ein bestimmtes Netzwerk oder eine bestimmte Verbindung zu beschränken.
So lassen Sie SSH-Verbindungen zu
Dieser Abschnitt ist für Sie relevant, wenn Sie einen Cloud-Server verwenden. Um eine Verbindung zu Ihrem Cloud-Server herstellen zu können, muss die Firewall eingehende SSH-Verbindungen zulassen. Diese SSH-Verbindungen erfolgen über Port 22. Sie können dieser Anleitung folgen, um zu erfahren, wie Sie SSH verwenden, um eine Verbindung zu einem Remote-Server in Ubuntu herzustellen.
Durch das Herstellen von SSH-Verbindungen können Sie Ihren Cloud-Server erfolgreich über Ihr lokales Gerät verwalten. Hier werden wir die verschiedenen Regeln behandeln, die für die SSH-bezogene Firewall-Konfiguration relevant sind:
- Zulassen von SSH
Verwenden Sie den folgenden Befehl, um alle eingehenden SSH-Verbindungen zuzulassen:
|
1 |
sudo ufw allow ssh |
Andererseits können Sie den Befehl auch ausführen, indem Sie stattdessen die Portnummer des SSH-Dienstes angeben:
|
1 |
sudo ufw allow 22 |
- Zulassen von eingehendem SSH von einer bestimmten IP-Adresse
Falls Sie eingehende SSH-Verbindungen nur von einer bestimmten IP-Adresse oder einem bestimmten Subnetz zulassen möchten, haben Sie die Möglichkeit, die Quelle anzugeben. Nehmen wir beispielsweise an, das Subnetz, das Sie zulassen möchten, ist 15.15.15.0/24. Hier ist der Befehl, den Sie ausführen müssen:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 22 |
- Eingehenden Rsync von einer bestimmten IP-Adresse zulassen
Rsync läuft auf Port 873 und ermöglicht es Ihnen, Dateiübertragungen von einem Computersystem auf ein anderes durchzuführen. Wenn Sie die Rsync-Verbindung nur von einer bestimmten IP-Adresse oder einem bestimmten Subnetz (in diesem Beispiel 15.15.15.0/24) zulassen möchten, können Sie dies mit folgendem Befehl tun:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 873 |
Dies bedeutet, dass das gesamte Subnetz 15.15.15.0/24 berechtigt ist, Rsync auf Ihren Server auszuführen. Hier ist auch eine umfassende Anleitung zur Nutzung von Rsync zur Synchronisierung lokaler und entfernter Verzeichnisse auf Ihrem Server.
So konfigurieren Sie Webserver-Anfragen
Als Nächstes fahren wir mit den Regeln für den Webserver-Dienst fort. Webserver wie Apache und Nginx nehmen in der Regel Anfragen für HTTP- und HTTPS-Verbindungen über zwei Ports entgegen: Port 80 und Port 443. Port 80 bedient HTTP-Anfragen. Port 443 ist für die HTTPS-Anfragen zuständig.
Wie in den Voraussetzungen besprochen, verwenden Sie den Standard-Regelsatz für UFW. Basierend auf diesem Regelsatz blockiert oder verweigert die Firewall den gesamten eingehenden Datenverkehr. Daher müssen Sie neue Regeln konfigurieren, die es dem Server ermöglichen, diese eingehenden Anfragen entgegenzunehmen und zu lesen.
- Allen HTTP-Verkehr zulassen
Wenn Sie alle HTTP-Verbindungen und -Anfragen zulassen möchten, die über Port 80 eingehen, verwenden Sie den Befehl:
|
1 |
sudo ufw allow http |
Sie können auch die Portnummer (Port 80) verwenden, um den HTTP-Dienst im Befehl anzugeben:
|
1 |
sudo ufw allow 80 |
- Allen HTTPS-Verkehr zulassen
Wenn Sie alle HTTPS-Verbindungen und -Anfragen zulassen möchten, die über Port 443 eingehen, führen Sie diesen Befehl aus:
|
1 |
sudo ufw allow https |
Ähnlich wie beim vorherigen Befehl können Sie „https“ durch die Portnummer des HTTPS-Dienstes ersetzen:
|
1 |
sudo ufw allow 443 |
- Sowohl HTTP als auch HTTPS zulassen
Falls Sie sowohl HTTP- als auch HTTPS-Anfragen zulassen möchten, können Sie eine gemeinsame Regel für beide verwenden. Mit diesem einzigen Befehl können Sie den eingehenden Datenverkehr sowohl von Port 80 als auch von Port 443 zulassen:
|
1 |
sudo ufw allow proto tcp from any to any port 80,443 |
Der Befehl „proto tcp“ ist erforderlich, wenn Sie mehrere Ports gleichzeitig angeben.
Sie können auch diesen detaillierten Anleitungen folgen, wie Sie Nginx und Apache mit Let’s Encrypt auf Ubuntu absichern.
So lassen Sie MySQL zu
MySQL-Verbindungen erfolgen über Port 3306. Sie müssen eine Regel verwenden, um den eingehenden Datenverkehr zuzulassen, wenn ein Client Ihre MySQL-Datenbank auf einem Remote-Server verwendet. Folgen Sie unserer Anleitung, um die Grundlagen von MySQL zu erlernen und zu erfahren, wie Sie MySQL auf einem Server einrichten.
- MySQL von einer bestimmten IP-Adresse zulassen
Wie wir bereits in den vorherigen Regeln gesehen haben, müssen Sie die Quelle angeben, um die eingehenden MySQL-Verbindungen zuzulassen. Ihre Quelle kann eine bestimmte IP-Adresse oder ein Subnetz sein. In unserem Beispiel verwenden wir das gesamte Subnetz 15.15.15.0/24, um den Befehl auszuführen:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 3306 |
- MySQL für eine bestimmte Netzwerkschnittstelle zulassen
Sie verwenden einen anderen Befehl, wenn Sie auch die Netzwerkschnittstelle angeben müssen, für die Sie die MySQL-Verbindungen zulassen. Nehmen wir an, die von Ihnen verwendete Netzwerkschnittstelle ist eine private Netzwerkschnittstelle namens eth1. Sie können diesen Wert durch den Namen Ihrer eigenen Netzwerkschnittstelle ersetzen:
|
1 |
sudo ufw allow in on eth1 to any port 3306 |
So lassen Sie PostgreSQL zu
Die PostgreSQL-Verbindungen erfolgen über Port 5432. Ähnlich wie bei den MySQL-Verbindungen müssen Sie den eingehenden Datenverkehr zulassen, wenn ein Client die PostgreSQL-Datenbank auf einem Remote-Server verwendet. Sie können dies mit den folgenden Befehlen tun.
- PostgreSQL von einer bestimmten IP-Adresse zulassen
Wenn Sie wissen, dass die PostgreSQL-Verbindungen von einem bestimmten Subnetz oder einer bestimmten IP-Adresse kommen, müssen Sie die Quelle angeben. Hier verwenden wir noch einmal das Beispiel des Subnetzes 15.15.15.0/24:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 5432 |
Falls Ihre OUTPUT-Richtlinie nicht auf ACCEPT eingestellt ist, müssen Sie einen zweiten Befehl ausführen. Dieser Befehl erlaubt den ausgehenden Datenverkehr bereits hergestellter PostgreSQL-Verbindungen.
- PostgreSQL für eine bestimmte Netzwerkschnittstelle zulassen
Ähnlich wie bei der vorherigen Regel erlauben wir die PostgreSQL-Verbindungen zu einer bestimmten Netzwerkschnittstelle. In unserem Fall ist es eth1:
|
1 |
sudo ufw allow in on eth1 to any port 5432 |
Falls Ihre OUTPUT-Richtlinie nicht auf ACCEPT eingestellt ist, müssen Sie einen zweiten Befehl ausführen. Dieser Befehl erlaubt den ausgehenden Datenverkehr bereits hergestellter PostgreSQL-Verbindungen. Sie können erfahren, wie Sie PostgreSQL auf Ubuntu einrichten, indem Sie unserer detaillierten Anleitung folgen.
So konfigurieren Sie Mailserver
Möglicherweise verwenden Sie auch Mailserver wie Sendmail und Postfix auf Ihrem System. Diese Server sind für mehrere Ports geöffnet. Die Ports, auf denen sie lauschen, hängen von den Protokollen ab, die für die E-Mail-Zustellung eingerichtet sind. Aus diesem Grund müssen Sie zunächst bestimmen, welche Protokolle Sie in Ihrem E-Mail-Zustellungssystem ausführen. Anschließend erlauben Sie die entsprechenden Arten von Datenverkehr basierend auf diesen Informationen.
- Blockieren von ausgehenden SMTP-E-Mails
Bevor wir zu den Befehlen übergehen, die eingehenden Datenverkehr für Ihre Mailserver zulassen, sehen wir uns an, wie Sie ausgehende SMTP-E-Mails blockieren können. Sie können diesen Befehl verwenden, wenn Sie nicht möchten, dass Ihr Server ausgehende E-Mails sendet. SMTP-E-Mails verwenden Port 25. Verwenden Sie diesen Befehl, um diesen Datenverkehr zu blockieren:
|
1 |
sudo ufw deny out 25 |
Als Ergebnis der Ausführung dieses Befehls verwirft Ihre Firewall den gesamten ausgehenden Datenverkehr auf Port 25. Wenn Sie einen anderen Port blockieren möchten, ersetzen Sie einfach Port „25“ durch die entsprechende Portnummer.
- Eingehendes SMTP zulassen
Da Sie nun wissen, wie Sie ausgehenden Datenverkehr blockieren, erscheint das Zulassen von eingehendem Datenverkehr ebenso einfach. Verwenden Sie diesen Befehl, um dem Server den Empfang von SMTP-Verbindungen auf Port 25 zu erlauben:
|
1 |
sudo ufw allow 25 |
- Eingehendes IMAP zulassen
Wenn Sie dem Server erlauben möchten, eine IMAP-Verbindung auf Port 143, zu etablieren, verwenden Sie den folgenden Befehl:
|
1 |
sudo ufw allow 143 |
- Eingehendes IMAPS zulassen
Verwenden Sie diesen Befehl, um dem Server zu erlauben, auf IMAPS-Verbindungen auf Port 993 zu antworten:
|
1 |
sudo ufw allow 993 |
- Eingehendes POP3 zulassen
Dieser Befehl ermöglicht es Ihrem Server, auf alle POP3-Verbindungen über Port 110 zu antworten:
|
1 |
sudo ufw allow 110 |
- Eingehendes POP3S zulassen
Schließlich können Sie Ihrem Server mit diesem Befehl erlauben, Anfragen von Port 995 für POP3S-Verbindungen zu empfangen:
|
1 |
sudo ufw allow 995 |
Fazit
Diese Anleitung hilft Ihnen, sich mit den grundlegenden UFW-Funktionen vertraut zu machen. Wir haben die wichtigsten Befehle behandelt, mit denen Sie vertraut sein müssen, um Ihre Firewall konfigurieren zu können. Sie können die Befehle auswählen, die Ihren spezifischen Anforderungen am besten entsprechen, um eine personalisierte Firewall-Lösung zu erstellen. Die flexible Natur von UFW ermöglicht eine solche Anpassung. Experimentieren Sie ein wenig, um herauszufinden, was für Sie am besten funktioniert.
Viel Spaß beim Computing!
Kommentare
Noch keine Kommentare. Schreiben Sie den ersten.