Einführung
UFW ist ein Firewall-Konfigurationstool für iptables, das standardmäßig in Ubuntu enthalten ist. Diese Anleitung im Cheat Sheet-Stil enthält eine kurze Referenz zu UFW-Befehlen, mit denen iptables-Firewallregeln erstellt werden. Diese sind in alltäglichen Szenarien nützlich. Dies umfasst UFW-Beispiele zum Zulassen und Sperren verschiedener Dienste nach Port, Netzwerkschnittstelle und Quell-IP-Adresse.
Verwendung dieses Handbuchs
-
Wenn Sie gerade erst mit der Konfiguration Ihrer Firewall mit UFW beginnen, lesen Sie unsere https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu -14-04 [Einführung in die UFW]
-
Die meisten der hier beschriebenen Regeln setzen voraus, dass Sie den Standard-UFW-Regelsatz verwenden. Das heißt, es ist so eingestellt, dass ausgehender und eingehender Datenverkehr über die Standardrichtlinien verweigert wird, sodass Sie selektiv Datenverkehr zulassen müssen
-
Verwenden Sie die nachfolgenden Abschnitte, die sich auf das beziehen, was Sie erreichen möchten. Die meisten Abschnitte basieren auf keinem anderen, sodass Sie die folgenden Beispiele unabhängig voneinander verwenden können
-
Verwenden Sie das Inhaltsmenü rechts auf dieser Seite (bei großen Seitenbreiten) oder die Suchfunktion Ihres Browsers, um die gewünschten Abschnitte zu finden
-
Kopieren Sie die angegebenen Befehlszeilenbeispiele, und fügen Sie sie ein. Ersetzen Sie dabei die Werte in Rot durch Ihre eigenen Werte
Denken Sie daran, dass Sie Ihren aktuellen UFW-Regelsatz mit "+ sudo ufw status " oder " sudo ufw status verbose +" überprüfen können.
Blockieren Sie eine IP-Adresse
Führen Sie zum Blockieren aller Netzwerkverbindungen, die von einer bestimmten IP-Adresse stammen, beispielsweise "+ 15.15.15.51 +" den folgenden Befehl aus:
sudo ufw deny from
In diesem Beispiel gibt "+ von 15.15.15.51 " eine * Quell * -IP-Adresse von "15.15.15.51" an. Wenn Sie möchten, können Sie stattdessen ein Subnetz wie ` 15.15.15.0 / 24 +` angeben. Die Quell-IP-Adresse kann in jeder Firewall-Regel angegeben werden, einschließlich einer * allow * -Regel.
Blockieren von Verbindungen zu einer Netzwerkschnittstelle
So blockieren Sie Verbindungen von einer bestimmten IP-Adresse, z. "+ 15.15.15.51 " an eine bestimmte Netzwerkschnittstelle, z. ` eth0 +`, benutze diesen Befehl:
sudo ufw deny in on eth0 from
Dies ist das gleiche wie im vorherigen Beispiel, mit dem Zusatz von "+ in on eth0 +". Die Netzwerkschnittstelle kann in jeder Firewall-Regel angegeben werden und ist eine hervorragende Möglichkeit, die Regel auf ein bestimmtes Netzwerk zu beschränken.
Service: SSH
Wenn Sie einen Cloud-Server verwenden, möchten Sie wahrscheinlich eingehende SSH-Verbindungen (Port 22) zulassen, damit Sie eine Verbindung zu Ihrem Server herstellen und diesen verwalten können. In diesem Abschnitt erfahren Sie, wie Sie Ihre Firewall mit verschiedenen SSH-Regeln konfigurieren.
Erlaube SSH
Führen Sie den folgenden Befehl aus, um alle eingehenden SSH-Verbindungen zuzulassen:
sudo ufw allow ssh
Eine alternative Syntax besteht darin, die Portnummer des SSH-Dienstes anzugeben:
sudo ufw allow 22
Eingehendes SSH von einer bestimmten IP-Adresse oder einem bestimmten Subnetz zulassen
Geben Sie die Quelle an, um eingehende SSH-Verbindungen von einer bestimmten IP-Adresse oder einem bestimmten Subnetz zuzulassen. Wenn Sie beispielsweise das gesamte Subnetz "+ 15.15.15.0 / 24 +" zulassen möchten, führen Sie den folgenden Befehl aus:
sudo ufw allow from to any port 22
Zulassen von eingehendem Rsync von einer bestimmten IP-Adresse oder einem bestimmten Subnetz
Rsync, das auf Port 873 ausgeführt wird, kann zum Übertragen von Dateien von einem Computer auf einen anderen verwendet werden.
Geben Sie die Quell-IP-Adresse und den Zielport an, um eingehende Rsync-Verbindungen von einer bestimmten IP-Adresse oder einem bestimmten Subnetz zuzulassen. Wenn Sie beispielsweise zulassen möchten, dass das gesamte Subnetz "+ 15.15.15.0 / 24 +" mit Ihrem Server synchronisiert werden kann, führen Sie den folgenden Befehl aus:
sudo ufw allow from to any port 873
Service: Webserver
Webserver wie Apache und Nginx lauschen normalerweise auf Port 80 und 443 nach HTTP- bzw. HTTPS-Verbindungen. Wenn Ihre Standardrichtlinie für eingehenden Datenverkehr auf Löschen oder Verweigern festgelegt ist, möchten Sie Regeln erstellen, mit denen Ihr Server auf diese Anforderungen reagieren kann.
Alle eingehenden HTTP zulassen
Führen Sie den folgenden Befehl aus, um alle eingehenden HTTP-Verbindungen (Port 80) zuzulassen:
sudo ufw allow http
Eine alternative Syntax besteht darin, die Portnummer des HTTP-Dienstes anzugeben:
sudo ufw allow 80
Alle eingehenden HTTPS zulassen
Führen Sie den folgenden Befehl aus, um alle eingehenden HTTPS-Verbindungen (Port 443) zuzulassen:
sudo ufw allow https
Eine alternative Syntax besteht darin, die Portnummer des HTTPS-Dienstes anzugeben:
sudo ufw allow 443
Alle eingehenden HTTP- und HTTPS-Nachrichten zulassen
Wenn Sie sowohl HTTP- als auch HTTPS-Verkehr zulassen möchten, können Sie eine einzige Regel erstellen, die beide Ports zulässt. Führen Sie den folgenden Befehl aus, um alle eingehenden HTTP- und HTTPS-Verbindungen (Port 443) zuzulassen:
sudo ufw allow proto tcp from any to any port 80,443
Beachten Sie, dass Sie das Protokoll mit "+ proto tcp +" angeben müssen, wenn Sie mehrere Ports angeben.
Dienst: MySQL
MySQL wartet auf Client-Verbindungen an Port 3306. Wenn Ihr MySQL-Datenbankserver von einem Client auf einem Remoteserver verwendet wird, müssen Sie sicherstellen, dass dieser Datenverkehr zugelassen wird.
Erlaube MySQL von einer bestimmten IP-Adresse oder einem bestimmten Subnetz
Geben Sie die Quelle an, um eingehende MySQL-Verbindungen von einer bestimmten IP-Adresse oder einem bestimmten Subnetz aus zuzulassen. Wenn Sie beispielsweise das gesamte Subnetz "+ 15.15.15.0 / 24 +" zulassen möchten, führen Sie den folgenden Befehl aus:
sudo ufw allow from to any port 3306
Ermöglichen Sie MySQL für bestimmte Netzwerkschnittstellen
Um MySQL-Verbindungen zu einer bestimmten Netzwerkschnittstelle zuzulassen, z. B. über eine private Netzwerkschnittstelle "+ eth1 +", verwenden Sie diesen Befehl:
sudo ufw allow in on to any port 3306
Dienst: PostgreSQL
PostgreSQL wartet auf Clientverbindungen an Port 5432. Wenn Ihr PostgreSQL-Datenbankserver von einem Client auf einem Remoteserver verwendet wird, müssen Sie sicherstellen, dass dieser Datenverkehr zugelassen wird.
PostgreSQL von einer bestimmten IP-Adresse oder einem bestimmten Subnetz
Geben Sie die Quelle an, um eingehende PostgreSQL-Verbindungen von einer bestimmten IP-Adresse oder einem bestimmten Subnetz aus zuzulassen. Wenn Sie beispielsweise das gesamte Subnetz "+ 15.15.15.0 / 24 +" zulassen möchten, führen Sie den folgenden Befehl aus:
sudo ufw allow from to any port 5432
Der zweite Befehl, der den ausgehenden Verkehr von * hergestellten * PostgreSQL-Verbindungen ermöglicht, ist nur erforderlich, wenn die Richtlinie "+ OUTPUT " nicht auf " ACCEPT +" gesetzt ist.
Ermöglichen Sie PostgreSQL für bestimmte Netzwerkschnittstellen
Um PostgreSQL-Verbindungen zu einer bestimmten Netzwerkschnittstelle zuzulassen, verwenden Sie beispielsweise den folgenden Befehl:
sudo ufw allow in on to any port 5432
Der zweite Befehl, der den ausgehenden Verkehr von * hergestellten * PostgreSQL-Verbindungen ermöglicht, ist nur erforderlich, wenn die Richtlinie "+ OUTPUT " nicht auf " ACCEPT +" gesetzt ist.
Service: Mail
Mailserver wie Sendmail und Postfix überwachen abhängig von den für die Mailzustellung verwendeten Protokollen eine Vielzahl von Ports. Wenn Sie einen Mailserver ausführen, ermitteln Sie, welche Protokolle Sie verwenden, und lassen Sie die entsprechenden Datenverkehrstypen zu. Wir zeigen Ihnen auch, wie Sie eine Regel zum Blockieren ausgehender SMTP-Mails erstellen.
Ausgehende SMTP-Mail blockieren
Wenn Ihr Server keine ausgehenden E-Mails senden soll, können Sie diese Art von Datenverkehr blockieren. Führen Sie den folgenden Befehl aus, um ausgehende SMTP-Mail zu blockieren, die Port 25 verwendet:
sudo ufw deny out 25
Dadurch wird Ihre Firewall so konfiguriert, dass der gesamte ausgehende Datenverkehr auf Port 25 * gelöscht * wird. Wenn Sie einen anderen Dienst anhand seiner Portnummer anstelle von Port 25 ablehnen müssen, ersetzen Sie ihn einfach.
Alle eingehenden SMTP zulassen
Führen Sie den folgenden Befehl aus, damit Ihr Server auf SMTP-Verbindungen an Port 25 antworten kann:
sudo ufw allow 25
Alle eingehenden IMAP zulassen
Führen Sie den folgenden Befehl aus, damit Ihr Server auf IMAP-Verbindungen, Port 143, antworten kann:
sudo ufw allow 143
Alle eingehenden IMAPS zulassen
Führen Sie den folgenden Befehl aus, damit Ihr Server auf IMAPS-Verbindungen, Port 993, antworten kann:
sudo ufw allow 993
Alle eingehenden POP3 zulassen
Führen Sie den folgenden Befehl aus, damit Ihr Server auf POP3-Verbindungen, Port 110, antworten kann:
sudo ufw allow 110
Alle eingehenden POP3S zulassen
Führen Sie den folgenden Befehl aus, damit Ihr Server auf POP3S-Verbindungen an Port 995 reagieren kann:
sudo ufw allow 995
Fazit
Dies sollte viele der Befehle abdecken, die häufig verwendet werden, wenn UFW zum Konfigurieren einer Firewall verwendet wird. Natürlich ist UFW ein sehr flexibles Tool. Sie können also die Befehle mit verschiedenen Optionen kombinieren, um sie an Ihre spezifischen Anforderungen anzupassen, wenn sie hier nicht behandelt werden.
Viel Glück!