One place for hosting & domains

      UFW

      UFW Essentials : règles et commandes de pare-feu


      Introduction

      UFW est un outil de configuration de pare-feu pour les iptables qui est inclus dans Ubuntu par défaut. Sous forme d’aide-mémo, ce guide vous permettra de trouver rapidement les commandes UFW qui créeront des règles de pare-feu iptables qui sont utiles dans les scénarios classiques du quotidien. Ceci intègre des exemples UFW d’autorisation et de blocage de plusieurs services par port, interface de réseau ou adresse IP source.

      • S’il s’agit de vos premiers pas avec UFW pour la configuration de pare-feu, consultez notre introduction à UFW
      • La plupart des règles décrites ici supposent que vous utilisez le règlement UFW par défaut. En effet, il est configuré pour autoriser le trafic sortant et refuser le trafic entrant, par défaut. Par conséquent, vous pouvez autoriser le trafic de manière sélective par le biais des politiques par défaut.
      • Utilisez les sections suivantes pour réaliser ce que vous tentez de faire. La plupart des sections ne sont prédites sur aucune autre. Vous pouvez donc utiliser les exemples ci-dessous indépendamment
      • Utilisez le menu Contents sur le côté droit de cette page (sur les largeurs de page large) ou la fonction de recherche de votre navigateur pour localiser les sections dont vous avez besoin
      • Copiez et collez les exemples de ligne de commande donnés, en substituant les valeurs en rouge par vos propres valeurs

      N’oubliez pas que vous pouvez vérifier votre règlement UFW actuel avec sudo ufw status ou sudo ufw status verbose.

      Bloquer une adresse IP

      Pour bloquer toutes les connexions réseau qui proviennent d’une adresse IP spécifique, 15.15.15.51 par exemple, exécutez la commande suivante :

      • sudo ufw deny from 15.15.15.51

      Dans cet exemple, from 15.15.15.51 spécifie une adresse IP source de « 15.15.15.51 ». Si vous le souhaitez, vous pouvez spécifier ici un sous-réseau, tel que 15.15.15.0/24 à la place. L’adresse IP source peut être spécifiée dans toute règle de pare-feu, notamment une règle allow.

      Bloquer les connexions à une interface réseau

      Pour bloquer les connexions d’une adresse IP spécifique, par exemple 15.15.15.51 à une interface réseau spécifique, par exemple eth0, utilisez la commande suivante :

      • sudo ufw deny in on eth0 from 15.15.15.51

      C’est la même chose que dans l’exemple précédent, en ajoutant in on eth0. Vous pouvez spécifier l’interface réseau dans n’importe quelle règle de pare-feu. C’est un excellent moyen de limiter la règle à un réseau spécifique.

      Service : SSH

      Si vous utilisez un serveur cloud, vous voudrez probablement autoriser les connexions SSH entrantes (port 22) afin de pouvoir vous connecter à votre serveur et le gérer. Cette section vous montre de quelle manière configurer votre pare-feu avec plusieurs règles liées au SSH.

      Autoriser SSH

      Pour autoriser toutes les connexions SSH entrantes, exécutez la commande suivante :

      Voici une autre syntaxe qui vous permettra de spécifier le numéro de port du service SSH :

      Autoriser un SSH entrant à partir de l'adresse IP ou un sous-réseau spécifique

      Pour autoriser les connexions SSH entrantes à partir d'une adresse IP ou d'un sous-réseau spécifique, vous devez spécifier la source. Par exemple, si vous souhaitez autoriser l'intégralité du sous-réseau 15.15.15.0/24, vous devez exécuter la commande suivante :

      • sudo ufw allow from 15.15.15.0/24 to any port 22

      Autoriser un Rsync entrant à partir de l'adresse IP ou un sous-réseau spécifique

      Vous pouvez utiliser Rsync, qui fonctionne sur le port 873, pour transférer des fichiers d'un ordinateur à un autre.

      Pour autoriser les connexions rsync entrantes à partir d'une adresse IP ou d'un sous-réseau spécifique, vous devez spécifier l'adresse IP source et le port de destination. Par exemple, si vous souhaitez autoriser que l'intégralité du sous-réseau 15.15.15.0/24 soit en mesure de rsync sur votre serveur, exécutez la commande suivante :

      • sudo ufw allow from 15.15.15.0/24 to any port 873

      Service : serveur web

      Les serveurs Web, comme Apache et Nginx, écoutent généralement les requêtes des connexions HTTP et HTTPS sur le port 80 et 443, respectivement. Si votre politique pour le trafic entrant est configurée sur drop ou deny par défaut, il vous faudra créer des règles qui permettront à votre serveur de répondre à ces requêtes.

      Autoriser tous les HTTP entrants

      Pour autoriser toutes les connexions HTTP entrantes (port 80), exécutez la commande suivante :

      Vous pouvez également utiliser une autre syntaxe en spécifiant le numéro de port du service HTTP :

      Autoriser tous les HTTP entrants

      Exécutez la commande suivante pour autoriser toutes les connexions HTTPS entrantes (port 443) :

      Vous pouvez également utiliser une autre syntaxe en spécifiant le numéro de port du service HTTPS :

      Autoriser tout le trafic HTTP et HTTPS entrant

      Si vous souhaitez autoriser le trafic à la fois HTTP et HTTPS, vous pouvez créer une règle unique qui autorise les deux ports. Pour autoriser toutes les connexions HTTP et HTTPS entrantes (port 443), exécutez la commande suivante :

      • sudo ufw allow proto tcp from any to any port 80,443

      Notez que vous devez indiquer le protocole en utilisant proto tcp lorsque vous spécifiez plusieurs ports.

      Service : MySQL

      MySQL écoute les connexions des clients sur le port 3306. Si un client utilise votre serveur de base de données MySQL sur un serveur distant, vous devez avoir la garantie de bien autoriser ce trafic.

      Autoriser MySQL à partir de l'adresse IP ou un sous-réseau spécifique

      Pour autoriser les connexions MySQL entrantes à partir d'une adresse IP ou d'un sous-réseau spécifique, vous devez spécifier la source. Par exemple, si vous souhaitez autoriser l'intégralité du sous-réseau 15.15.15.0/24, vous devez exécuter la commande suivante :

      • sudo ufw allow from 15.15.15.0/24 to any port 3306

      Autoriser MySQL sur l'interface réseau spécifique

      Disons que vous disposez par exemple d'une interface réseau privée eth1, vous devez utiliser la commande suivante pour autoriser les connexions MySQL sur une interface réseau spécifique :

      • sudo ufw allow in on eth1 to any port 3306

      Service : PostgreSQL

      PostgreSQL écoute les connexions des clients sur le port 5432. Si un client utilise votre serveur de base de données PostgreSQL sur un serveur distant, vous devez avoir la garantie de bien autoriser ce trafic.

      PostgreSQL à partir d'une adresse IP ou un sous-réseau spécifique

      Pour autoriser les connexions PostgreSQL entrantes à partir d'une adresse IP ou d'un sous-réseau spécifique, vous devez spécifier la source. Par exemple, si vous souhaitez autoriser l'intégralité du sous-réseau 15.15.15.0/24, vous devez exécuter la commande suivante :

      • sudo ufw allow from 15.15.15.0/24 to any port 5432

      La deuxième commande qui autorise le trafic sortant des connexions PostgreSQL established, n'est nécessaire que si la politique OUTPUT n'est pas défini sur ACCEPT.

      Autoriser PostgreSQL sur une interface réseau spécifique

      Disons que vous disposez par exemple d'une interface réseau privée eth1, vous devez utiliser la commande suivante pour autoriser les connexions PostgreSQL sur une interface réseau spécifique :

      • sudo ufw allow in on eth1 to any port 5432

      La deuxième commande qui autorise le trafic sortant des connexions PostgreSQL established, n'est nécessaire que si la politique OUTPUT n'est pas défini sur ACCEPT.

      Service : Mail

      Les serveurs de courrier électronique, comme Sendmail et Postfix, écoutent sur une variété de ports en fonction des protocoles utilisés pour livrer les courriels. Si vous utilisez un serveur de messagerie, vous devez déterminer les protocoles que vous utilisez et autoriser les types de trafic applicables. Nous allons également vous montrer de quelle manière créer une règle pour bloquer les courriels SMTP sortants.

      Bloquer un courriel SMTP sortant

      Si votre serveur ne doit pas envoyer de courriel sortant, il vous faudra bloquer ce type de trafic. Pour bloquer les courriels SMTP sortants, qui utilise le port 25, exécutez la commande suivante :

      Vous configurez votre pare-feu de sorte qu'il drop tout le trafic sortant sur le port 25. Si vous devez rejeter un autre service en fonction de son numéro de port, vous pouvez l'utiliser à la place du port 25, vous devez simplement le remplacer.

      Autoriser tous les SMTP entrants

      Pour permettre à votre serveur de répondre aux connexions SMTP, port 25, exécutez la commande suivante :

      Remarque : il est courant que les serveurs SMTP utilisent le port 587 pour le courrier sortant.

      Autoriser tous les IMAP entrants

      Pour permettre à votre serveur de répondre aux connexions IMAP, port 143, exécutez la commande suivante :

      Autoriser tous les IMAPS entrants

      Pour permettre à votre serveur de répondre aux connexions IMAPS, port 993, exécutez la commande suivante :

      Autoriser tous les POP3 entrants

      Pour permettre à votre serveur de répondre aux connexions POP3, port 110, exécutez la commande suivante :

      Autoriser tous les POP3S entrants

      Pour permettre à votre serveur de répondre aux connexions POP3S, port 995, exécutez la commande suivante :

      Conclusion

      Ainsi, vous devriez couvrir plusieurs des commandes que l'on utilise couramment pour configurer un pare-feu en utilisant UFW. Bien entendu, UFW est un outil très flexible. N'hésitez pas à combiner les commandes avec différentes options selon vos besoins spécifiques si elles ne sont pas couvertes ici.

      Bonne chance !



      Source link

      Einrichten einer Firewall mit UFW unter Ubuntu 20.04


      Einführung

      UFW (oder Uncomplicated Firewall) ist eine vereinfachte Firewall-Verwaltungsschnittstelle, die die Komplexität von Paketfilterungstechnologie auf niedriger Ebene wie iptables und nftables versteckt. Wenn Sie mit dem Sichern Ihres Netzwerks beginnen möchten und Sie nicht sicher sind, welches Tool Sie verwenden sollen, könnte UFW die richtige Wahl für Sie sein.

      In diesem Tutorial erfahren Sie, wie Sie eine Firewall mit UFW unter Ubuntu 20.04 einrichten.

      Voraussetzungen

      Um dieser Anleitung zu folgen, benötigen Sie:

      UFW ist unter Ubuntu standardmäßig installiert. Wenn UFW aus einem bestimmten Grund deinstalliert wurde, können Sie UFW mit sudo apt install ufw installieren.

      Schritt 1 — Verwenden von IPv6 mit UFW (optional)

      Dieses Tutorial wurde für IPv4 verfasst, funktioniert aber auch für IPv6, solange es aktiviert ist. Wenn auf Ihrem Ubuntu-Server IPv6 aktiviert ist, muss UFW so konfiguriert sein, dass IPv6 unterstützt wird, um Firewall-Regeln nicht für IPv4, sondern auch für IPv6 zu verwalten. Öffnen Sie dazu die UFW-Konfiguration mit nano oder Ihrem bevorzugten Editor.

      • sudo nano /etc/default/ufw

      Stellen Sie dann sicher, dass der Wert von IPV6 yes lautet. Das sollte wie folgt aussehen:

      /etc/default/ufw excerpt

      IPV6=yes
      

      Speichern und schließen Sie die Datei. Wenn UFW aktiviert ist, wird es so konfiguriert, dass sowohl IPv4- als auch IPv6-Firewall-Regeln geschrieben werden. Bevor wir UFW aktivieren, wollen wir jedoch überprüfen, ob Ihre Firewall so konfiguriert ist, dass Verbindungen über SSH möglich sind. Beginnen wir mit der Einstellung der Standardrichtlinien.

      Schritt 2 — Einrichten von Standardrichtlinien

      Wenn Sie gerade mit der Verwendung Ihrer Firewall begonnen haben, sind Ihre Standardrichtlinien die ersten Regeln, die Sie definieren sollten. Diese Regeln steuern die Handhabung von Daten, die nicht ausdrücklich von anderen Regeln abgedeckt werden. Standardmäßig ist UFW so konfiguriert, dass alle eingehenden Verbindungen abgelehnt und alle ausgehenden Verbindungen zugelassen werden. So kann niemand, der versucht, Ihren Server zu erreichen, eine Verbindung herstellen, während jede Anwendung innerhalb des Servers nach außen kommunizieren kann.

      Lassen Sie uns Ihre UFW-Regeln zurück auf die Standardeinstellungen setzen, um sicherzugehen, dass Sie diesem Tutorial folgen können. Um die von UFW verwendeten Standardeinstellungen auszuwählen, verwenden Sie diese Befehle:

      • sudo ufw default deny incoming
      • sudo ufw default allow outgoing

      Diese Befehle legen die Standardeinstellungen fest: eingehende Verbindungen werden abgelehnt und ausgehende Verbindungen zugelassen. Die Standardeinstellungen der Firewall allein können für einen PC ausreichen, Server müssen aber normalerweise auf eingehende Anfragen von externen Benutzern reagieren. Das sehen wir uns als Nächstes an.

      Schritt 3 — Zulassen von SSH-Verbindungen

      Wenn wir unsere UFW-Firewall jetzt aktivieren würden, würde sie alle eingehenden Verbindungen ablehnen. Das bedeutet, dass wir Regeln erstellen müssen, die legitime eingehende Verbindungen (z. B. SSH- oder HTTP-Verbindungen) ausdrücklich zulassen, wenn unser Server auf diese Art von Anforderungen reagieren soll. Wenn Sie einen Cloud-Server verwenden, werden Sie wahrscheinlich eingehende SSH-Verbindungen zulassen wollen, damit Sie sich mit Ihrem Server verbinden und den Server verwalten können.

      Um Ihren Server so zu konfigurieren, dass eingehende SSH-Verbindungen zugelassen werden, können Sie diesen Befehl verwenden:

      Dadurch werden Firewall-Regeln erstellt, die alle Verbindungen an Port 22 zulassen; das ist der Port, an dem der SSH-Daemon standardmäßig lauscht. UFW weiß, was Port allow ssh bedeutet, da dies in der Datei /etc/services als Dienst aufgeführt wird.

      Wir können die äquivalente Regel jedoch auch schreiben, indem wir den Port anstelle des Dienstnamens angeben. Dieser Befehl funktioniert zum Beispiel genauso wie oben:

      Wenn Sie Ihren SSH-Daemon so konfiguriert haben, dass er einen anderen Port verwendet, müssen Sie den entsprechenden Port angeben. Wenn Ihr SSH-Server beispielsweise an Port 2222 lauscht, können Sie diesen Befehl verwenden, um Verbindungen an diesem Port zuzulassen:

      Nachdem Ihre Firewall nun so konfiguriert ist, dass eingehende SSH-Verbindungen zugelassen werden, können wir sie aktivieren.

      Schritt 4 — Aktivieren von UFW

      Um UFW zu aktivieren, verwenden Sie diesen Befehl:

      Sie erhalten eine Warnung, die besagt, dass der Befehl bestehende SSH-Verbindungen stören kann. Wir haben bereits eine Firewall-Regel eingerichtet, die SSH-Verbindungen zulässt. Daher sollte es in Ordnung sein, fortzufahren. Beantworten Sie die Eingabeaufforderung mit y und drücken Sie ENTER.

      Die Firewall ist jetzt aktiv. Führen Sie den Befehl sudo ufw status verbose aus, um die festgelegten Regeln anzuzeigen. Im Rest des Tutorials wird die Verwendung von UFW im Detail behandelt, wie das Zulassen oder Ablehnen verschiedener Verbindungen.

      Schritt 5 — Zulassen anderer Verbindungen

      Jetzt sollten Sie alle anderen Verbindungen zulassen, auf die Ihr Server reagieren soll. Die Verbindungen, die Sie zulassen sollten, sind von Ihren spezifischen Bedürfnissen abhängig. Glücklicherweise wissen Sie bereits, wie Sie Regeln schreiben, die Verbindungen anhand eines Dienstnamens oder Ports zulassen. Das haben wir bereits für SSH an Port 22 getan. Sie können es auch tun für:

      • HTTP an Port 80, was nicht verschlüsselte Webserver verwenden; mit sudo ufw allow http oder sudo ufw allow 80
      • HTTPS an Port 443, was verschlüsselte Webserver verwenden; mit sudo ufw allow https oder sudo ufw allow 443

      Es gibt weitere Möglichkeiten, um andere Verbindungen zuzulassen, abgesehen von der Angabe eines Ports oder bekannten Dienstes.

      Spezifische Portbereiche

      Sie können mit UFW spezifische Portbereiche angeben. Einige Anwendungen verwenden mehrere Ports anstelle eines einzelnen Ports.

      Um zum Beispiel X11-Verbindungen zuzulassen, die Ports 60006007 verwenden, nutzen Sie diese Befehle:

      • sudo ufw allow 6000:6007/tcp
      • sudo ufw allow 6000:6007/udp

      Wenn Sie mit UFW Portbereiche angeben, müssen Sie das Protokoll (tcp oder udp) angeben, für das die Regeln gelten sollen. Wir haben das vorher nicht erwähnt, da wir ohne Angabe des Protokolls automatisch beide Protokolle zulassen, was in den meisten Fällen in Ordnung ist.

      Spezifische IP-Adressen

      Beim Arbeiten mit UFW können Sie auch IP-Adressen spezifizieren. Wenn Sie zum Beispiel Verbindungen von einer bestimmten IP-Adresse zulassen möchten, wie einer Arbeits- oder privaten IP-Adresse unter 203.0.113.4, müssen Sie from und dann die IP-Adresse angeben:

      • sudo ufw allow from 203.0.113.4

      Sie können auch einen bestimmten Port angeben, mit dem die IP-Adresse eine Verbindung herstellen darf, indem Sie to any port (zu jedem Port) gefolgt von der Portnummer hinzufügen. Wenn Sie zum Beispiel 203.0.113.4 erlauben möchten, sich mit Port 22 (SSH) zu verbinden, verwenden Sie diesen Befehl:

      • sudo ufw allow from 203.0.113.4 to any port 22

      Subnetze

      Wenn Sie ein Subnetz von IP-Adressen zulassen möchten, können Sie CIDR-Notation verwenden, um eine Netzmaske anzugeben. Wenn Sie zum Beispiel alle IP-Adressen im Bereich von 203.0.113.1 bis 203.0.113.254 zulassen möchten, können Sie diesen Befehl verwenden:

      • sudo ufw allow from 203.0.113.0/24

      Außerdem können Sie auch den Zielport angeben, mit dem das Subnetz 203.0.113.0/24 eine Verbindung herstellen darf. Auch hier verwenden wir Port 22 (SSH) als Beispiel:

      • sudo ufw allow from 203.0.113.0/24 to any port 22

      Verbindungen zu einer spezifischen Netzwerkschnittstelle

      Wenn Sie eine Firewall-Regel erstellen möchten, die nur für eine bestimmte Netzwerkschnittstelle gilt, können Sie dazu „allow in on“ gefolgt vom Namen der Netzwerkschnittstelle angeben.

      Sie möchten möglicherweise Ihre Netzwerkschnittstellen überprüfen, bevor Sie fortfahren. Dazu verwenden Sie diesen Befehl:

      Output Excerpt

      2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state . . . 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default . . .

      Die hervorgehobene Ausgabe gibt die Namen der Netzwerkschnittstellen an. Sie haben typischerweise Namen wie eth0 oder enp3s2.

      Wenn Ihr Server eine öffentliche Netzwerkschnittstelle namens eth0 hat, könnten Sie HTTP-Verkehr (Port 80) dorthin mit diesem Befehl zulassen:

      • sudo ufw allow in on eth0 to any port 80

      Dadurch würden Sie zulassen, dass Ihr Server HTTP-Anfragen aus dem öffentlichen Internet empfängt.

      Oder wenn Sie möchten, dass Ihr MySQL-Datenbankserver (Port 3306) an der privaten Netzwerkschnittstelle eth1 nach Verbindungen lauschen soll, können Sie diesen Befehl verwenden:

      • sudo ufw allow in on eth1 to any port 3306

      Dadurch dürften andere Server in Ihrem privaten Netzwerk eine Verbindung mit Ihrer MySQL-Datenbank herstellen.

      Schritt 6 — Ablehnen von Verbindungen

      Wenn Sie die Standardrichtlinie für eingehende Verbindungen nicht geändert haben, ist UFW so konfiguriert, dass alle eingehenden Verbindungen abgelehnt werden. Das vereinfacht im Allgemeinen das Erstellen einer sicheren Firewall-Richtlinie, da Sie Regeln erstellen müssen, die bestimmte Ports und IP-Adressen explizit zulassen.

      Manchmal werden Sie jedoch einzelne Verbindungen auf Grundlage der Quell-IP-Adresse oder des Subnetzes ablehnen wollen, vielleicht weil Sie wissen, dass Ihr Server von dort angegriffen wird. Wenn Sie Ihre Richtlinie für eingehenden Datenverkehr in allow ändern möchten (was nicht empfohlen wird), müssten Sie für alle Dienste oder IP-Adressen, bei denen Sie keine Verbindung zulassen wollen, deny-Regeln erstellen.

      Um deny-Regeln zu schreiben, können Sie die oben beschriebenen Befehle verwenden und allow durch deny ersetzen.

      Um zum Beispiel HTTP-Verbindungen abzulehnen, können Sie diesen Befehl verwenden:

      Oder wenn Sie alle Verbindungen von 203.0.113.4 ablehnen möchten, können Sie diesen Befehl verwenden:

      • sudo ufw deny from 203.0.113.4

      Jetzt werfen wir einen Blick auf das Löschen von Regeln.

      Schritt 7 — Löschen von Regeln

      Zu wissen, wie man Firewall-Regeln löscht, ist genauso wichtig wie zu wissen, wie man sie erstellt. Es gibt zwei Wege, um anzugeben, welche Regeln gelöscht werden sollen: anhand der Regelnummer oder der tatsächlichen Regel (ähnlich wie beim Angeben der Regeln im Rahmen der Erstellung). Wir beginnen mit der Methode Löschen anhand von Regelnummer, da sie einfacher ist.

      Nach Regelnummer

      Wenn Sie die Regelnummer verwenden, um Firewall-Regeln zu löschen, wird eine Liste Ihrer Firewall-Regeln angezeigt. Der UFW-Statusbefehl hat eine Option, um neben jeder Regel eine Nummer anzuzeigen, wie hier gezeigt:

      Numbered Output:

      Status: active To Action From -- ------ ---- [ 1] 22 ALLOW IN 15.15.15.0/24 [ 2] 80 ALLOW IN Anywhere

      Wenn wir entscheiden, dass wir Regel 2, die Verbindungen an Port 80 (HTTP) zulässt, löschen möchten, können wir sie in einem UFW-Befehl wie diesem angeben:

      Dadurch würde eine Bestätigungsaufforderung angezeigt und Regel 2, die HTTP-Verbindungen zulässt, dann gelöscht. Beachten Sie, dass Sie bei aktiviertem IPv6 wahrscheinlich auch die entsprechende IPv6-Regel löschen möchten.

      Nach tatsächlicher Regel

      Die Alternative zu Regelnummern besteht darin, die tatsächlich zu löschende Regel anzugeben. Wenn Sie zum Beispiel die Regel allow http entfernen möchten, können Sie das wie folgt schreiben:

      • sudo ufw delete allow http

      Sie könnten die Regel auch anhand von allow 80 anstelle des Dienstnamens angeben:

      Diese Methode löscht sowohl IPv4- als auch IPv6-Regeln, falls vorhanden.

      Schritt 8 — Prüfen von UFW-Status und -Regeln

      Sie können den Status von UFW mit diesem Befehl jederzeit überprüfen:

      Wenn UFW deaktiviert ist, was standardmäßig der Fall ist, sehen Sie in etwa Folgendes:

      Output

      Status: inactive

      Wenn UFW aktiv ist, was der Fall sein sollte, wenn Sie Schritt 3 ausgeführt haben, teilt die Ausgabe mit, dass UFW aktiv ist; zudem werden alle festgelegten Regeln aufgelistet. Wenn Sie die Firewall beispielsweise so einrichten, dass SSH (Port 22)-Verbindungen überall zugelassen werden, könnte die Ausgabe ungefähr wie folgt aussehen:

      Output

      Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22/tcp ALLOW IN Anywhere

      Verwenden Sie den Befehl status, um zu prüfen, wie UFW die Firewall konfiguriert hat.

      Schritt 9 — Aktivieren oder Zurücksetzen von UFW (optional)

      Wenn Sie entscheiden, dass Sie UFW nicht mehr verwenden möchten, können Sie die Firewall mit diesem Befehl deaktivieren:

      Alle Regeln, die Sie mit UFW erstellt haben, sind dann nicht mehr aktiv. Sie können später jederzeit sudo ufw enable nutzen, um sie wieder zu aktivieren.

      Wenn Sie bereits UFW-Regeln konfiguriert haben, aber lieber neu anfangen möchten, können Sie den Befehl reset verwenden:

      Dadurch wird UFW deaktiviert und alle Regeln, die zuvor definiert wurden, werden gelöscht. Beachten Sie, dass die Standardrichtlinien nicht zu ihren ursprünglichen Einstellungen zurückkehren, wenn Sie sie irgendwann geändert haben. Jetzt sollten Sie mit UFW neu anfangen können.

      Zusammenfassung

      Ihre Firewall ist jetzt so konfiguriert, dass (mindestens) SSH-Verbindungen zugelassen werden. Achten Sie darauf, alle anderen eingehenden Verbindungen, die Ihr Server benötigt, zuzulassen und beschränken Sie alle unnötigen Verbindungen, sodass Ihr Server gleichzeitig funktional und sicher ist.

      Um mehr über gängige UFW-Konfigurationen zu erfahren, lesen Sie das Tutorial UFW-Grundlagen: Gängige Firewall-Regeln und -Befehle.



      Source link

      Comment mettre en place un pare-feu avec UFW sur Ubuntu 20.04


      Introduction

      UFW, ou Uncomplicated Firewall, est une interface de gestion de pare-feu simplifiée qui masque la complexité des technologies de filtrage de paquets de niveau inférieur telles que iptables et nftables. Si vous souhaitez commencer à sécuriser votre réseau, et vous n’êtes pas sûr de l’outil à utiliser, UFW peut être le bon choix pour vous.

      Ce tutoriel vous montrera comment mettre en place un pare-feu avec UFW sur Ubuntu 20.04.

      Conditions préalables

      Pour suivre ce tutoriel, vous aurez besoin de :

      UFW est installé par défaut sur Ubuntu. S’il a été désinstallé pour une raison quelconque, vous pouvez l’installer avec sudo apt install ufw.

      Étape 1 — Utilisation d’IPv6 avec UFW (facultatif)

      Ce tutoriel a été écrit en tenant compte d’IPv4, mais il fonctionnera aussi bien pour IPv6 pour autant que vous l’ayez activé. Si votre serveur Ubuntu a activé IPv6, assurez-vous qu’UFW est configuré pour prendre en charge IPv6 afin de gérer les règles de pare-feu pour IPv6 en plus d’IPv4. Pour ce faire, ouvrez la configuration UFW avec nano ou votre éditeur préféré.

      • sudo nano /etc/default/ufw

      Ensuite, assurez-vous que la valeur d’IPV6 est yes. Cela devrait ressembler à ceci :

      /etc/default/ufw excerpt

      IPV6=yes
      

      Enregistrez et fermez le fichier. Maintenant, lorsque l’UFW est activé, il sera configuré pour écrire les règles de pare-feu IPv4 et IPv6. Cependant, avant d’activer UFW, nous voulons nous assurer que votre pare-feu est configuré pour vous permettre de vous connecter via SSH. Commençons par définir les politiques par défaut.

      Étape 2 — Mise en place des politiques par défaut

      Si vous commencez tout juste à utiliser votre pare-feu, les premières règles à définir sont vos politiques par défaut. Ces règles contrôlent la manière de traiter le trafic qui ne correspond pas explicitement à d’autres règles. Par défaut, UFW est configuré pour refuser toutes les connexions entrantes et autoriser toutes les connexions sortantes. Cela signifie que toute personne essayant d’atteindre votre serveur ne pourra pas se connecter, tandis que toute application à l’intérieur du serveur pourra atteindre le monde extérieur.

      Remettons vos règles UFW à leur valeur par défaut afin que nous puissions être sûrs que vous pourrez suivre ce tutoriel. Pour définir les valeurs par défaut utilisées par UFW, utilisez ces commandes :

      • sudo ufw default deny incoming
      • sudo ufw default allow outgoing

      Ces commandes définissent les valeurs par défaut pour refuser les connexions entrantes et autoriser les connexions sortantes. Ces paramètres par défaut du pare-feu peuvent suffire pour un ordinateur personnel, mais les serveurs doivent généralement répondre aux demandes entrantes d’utilisateurs extérieurs. Nous verrons cela plus loin.

      Étape 3 — Autoriser les connexions SSH

      Si nous activions notre pare-feu UFW maintenant, il refuserait toutes les connexions entrantes. Cela signifie que nous devrons créer des règles qui autorisent explicitement les connexions entrantes légitimes – connexions SSH ou HTTP, par exemple – si nous voulons que notre serveur réponde à ce type de demandes. Si vous utilisez un serveur cloud, vous voudrez probablement autoriser les connexions SSH entrantes afin de pouvoir vous connecter à votre serveur et le gérer.

      Pour configurer votre serveur afin d’autoriser les connexions SSH entrantes, vous pouvez utiliser cette commande :

      Cela créera des règles de pare-feu qui autoriseront toutes les connexions sur le port 22, qui est le port que le démon SSH écoute par défaut. UFW sait quel port allow ssh désigne parce qu’il est listé comme un service dans le fichier /etc/services.

      Cependant, nous pouvons réellement écrire la règle équivalente en spécifiant le port au lieu du nom du service. Par exemple, cette commande fonctionne de la même manière que celle ci-dessus :

      Si vous avez configuré votre démon SSH pour utiliser un port différent, vous devrez spécifier le port approprié. Par exemple, si votre serveur SSH écoute sur le port 2222, vous pouvez utiliser cette commande pour autoriser les connexions sur ce port :

      Maintenant que votre pare-feu est configuré pour autoriser les connexions SSH entrantes, nous pouvons l’activer.

      Étape 4 — Activation d’UFW

      Pour activer UFW, utilisez cette commande :

      Vous recevrez un avertissement qui indique que la commande peut perturber les connexions SSH existantes. Nous avons déjà mis en place une règle de pare-feu qui autorise les connexions SSH, donc nous pouvons continuer. Répondez à l’invite avec y et appuyez sur ENTER.

      Le pare-feu est maintenant actif. Exécutez la commande sudo ufw status verbose pour connaître les règles fixées. Le reste de ce tutoriel explique plus en détail comment utiliser UFW, par exemple en autorisant ou en refusant différents types de connexions.

      Étape 5 — Autoriser d’autres connexions

      À ce stade, vous devez autoriser toutes les autres connexions auxquelles votre serveur a besoin de répondre. Les connexions que vous devez autoriser dépendent de vos besoins spécifiques. Heureusement, vous savez déjà comment écrire des règles qui autorisent les connexions basées sur un nom de service ou un port ; nous l’avons déjà fait pour SSH sur le port 22. Vous pouvez également le faire pour :

      • HTTP sur le port 80, qui est ce qu’utilisent les serveurs web non cryptés, en utilisant sudo ufw allow http ou sudo ufw allow 80
      • HTTPS sur le port 443, qui est ce qu’utilisent les serveurs web cryptés, en utilisant sudo ufw allow https ou sudo ufw allow 443

      Il existe plusieurs autres moyens d’autoriser d’autres connexions, outre la spécification d’un port ou d’un service connu.

      Plages de ports spécifiques

      Vous pouvez spécifier des plages de ports avec UFW. Certaines applications utilisent plusieurs ports, au lieu d’un seul.

      Par exemple, pour autoriser les connexions X11 qui utilisent les ports 60006007, utilisez ces commandes :

      • sudo ufw allow 6000:6007/tcp
      • sudo ufw allow 6000:6007/udp

      Lorsque vous spécifiez des plages de ports avec UFW, vous devez spécifier le protocole (tcp ou udp) auquel les règles doivent s’appliquer. Nous n’avons pas mentionné cela auparavant car le fait de ne pas spécifier le protocole autorise automatiquement les deux protocoles, ce qui est correct dans la plupart des cas.

      Adresses IP spécifiques

      Lorsque vous travaillez avec UFW, vous pouvez également spécifier des adresses IP. Par exemple, si vous souhaitez autoriser les connexions à partir d’une adresse IP spécifique, comme une adresse IP professionnelle ou personnelle de 203.0.113.4, vous devez spécifier from, puis l’adresse IP :

      • sudo ufw allow from 203.0.113.4

      Vous pouvez également spécifier un port spécifique auquel l’adresse IP est autorisée à vous connecter en ajoutant to any port suivi du numéro de port. Par exemple, Si vous souhaitez autoriser 203.0.113.4 à se connecter au port 22 (SSH), utilisez cette commande :

      • sudo ufw allow from 203.0.113.4 to any port 22

      Sous réseaux

      Si vous souhaitez autoriser un sous-réseau d’adresses IP, vous pouvez le faire en utilisant la notation CIDR pour spécifier un masque de réseau. Par exemple, si vous souhaitez autoriser toutes les adresses IP allant de 203.0.113.1 à 203.0.113.254 vous pourriez utiliser cette commande :

      • sudo ufw allow from 203.0.113.0/24

      De même, vous pouvez également spécifier le port de destination auquel le sous-réseau 203.0.113.0/24 est autorisé à se connecter. Une fois encore, nous utiliserons le port 22 (SSH) comme exemple :

      • sudo ufw allow from 203.0.113.0/24 to any port 22

      Connexion à une interface réseau spécifique

      Si vous souhaitez créer une règle de pare-feu qui s’applique uniquement à une interface réseau spécifique, vous pouvez le faire en spécifiant « allow in on » suivi du nom de l’interface.

      Vous pouvez consulter vos interfaces réseau avant de continuer. Pour ce faire, utilisez cette commande :

      Output Excerpt

      2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state . . . 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default . . .

      Le résultat mis en évidence indique les noms d’interface réseau. Elles sont généralement nommées par quelque chose comme : eth0 ou enp3s2.

      Donc, si votre serveur a une interface réseau publique appelée eth0, vous pouvez l’autoriser à recevoir du trafic HTTP (port 80) avec cette commande :

      • sudo ufw allow in on eth0 to any port 80

      Cela permettrait à votre serveur de recevoir des requêtes HTTP de l’Internet public.

      Ou, si vous voulez que votre serveur de base de données MySQL (port 3306) écoute les connexions sur l’interface de réseau privé eth1, par exemple, vous pourriez utiliser cette commande :

      • sudo ufw allow in on eth1 to any port 3306

      Cela permettrait à d’autres serveurs de votre réseau privé de se connecter à votre base de données MySQL.

      Étape 6 — Refuser les connexions

      Si vous n’avez pas modifié la politique par défaut des connexions entrantes, UFW est configuré pour refuser toutes les connexions entrantes. En général, cela simplifie le processus de création d’une politique de pare-feu sécurisée en vous obligeant à créer des règles qui autorisent explicitement le passage de ports et d’adresses IP spécifiques.

      Cependant, il peut arriver que vous souhaitiez refuser des connexions spécifiques en fonction de l’adresse IP source ou du sous-réseau, peut-être parce que vous savez que votre serveur est attaqué à partir de là. De plus, si vous souhaitez modifier votre politique d’entrée par défaut a allow (ce qui n’est pas recommandé), vous devrez créer des règles deny pour tous les services ou adresses IP pour lesquels vous ne souhaitez pas autoriser les connexions.

      Pour écrire des règles deny, vous pouvez utiliser les commandes décrites ci-dessus, en remplaçant allow par deny.

      Par exemple, pour refuser des connexions HTTP, vous pourriez utiliser cette commande :

      Ou si vous souhaitez refuser toutes les connexions à partir de 203.0.113.4 vous pouvez utiliser cette commande :

      • sudo ufw deny from 203.0.113.4

      Examinons maintenant comment supprimer des règles.

      Étape 7 — Suppression de règles

      Savoir comment supprimer des règles de pare-feu est tout aussi important que de savoir comment les créer. Il existe deux façons différentes de spécifier les règles à supprimer : par le numéro de la règle ou par la règle elle-même (de la même façon que les règles ont été spécifiées lors de leur création). Nous commencerons par la méthode delete by rule number, car elle est plus facile.

      Par numéro de règle

      Si vous utilisez le numéro de règle pour supprimer des règles de pare-feu, la première chose que vous voudrez faire est d’obtenir une liste de vos règles de pare-feu. La commande UFW status permet d’afficher des numéros à côté de chaque règle, comme illustré ici :

      Numbered Output:

      Status: active To Action From -- ------ ---- [ 1] 22 ALLOW IN 15.15.15.0/24 [ 2] 80 ALLOW IN Anywhere

      Si nous décidons que nous voulons supprimer la règle 2, celle qui autorise les connexions sur le port 80 (HTTP), nous pouvons la spécifier dans une commande de suppression UFW comme celle-ci :

      Cela affichera une demande de confirmation puis supprimera la règle 2, qui autorise les connexions HTTP. Notez que si vous avez activé IPv6, vous voudrez également supprimer la règle IPv6 correspondante.

      Par règle réelle

      L’alternative aux numéros de règle est de spécifier la règle réelle à supprimer. Par exemple, si vous voulez supprimer la règle allow http, vous pouvez l’écrire comme ceci :

      • sudo ufw delete allow http

      Vous pouvez également spécifier la règle par allow 80, au lieu de par nom de service :

      Cette méthode supprimera les règles IPv4 et IPv6, si elles existent.

      Étape 8 — Vérification de l’état et des règles d’UFW

      À tout moment, vous pouvez vérifier le statut d’UFW avec cette commande :

      Si UFW est désactivé, ce qui est le cas par défaut, vous verrez quelque chose comme ceci :

      Output

      Status: inactive

      Si UFW est actif, ce qui devrait être le cas si vous avez suivi l’étape 3, la sortie indiquera qu’il est actif et énumérera toutes les règles qui sont définies. Par exemple, si le pare-feu est configuré pour autoriser les connexions SSH (port 22) de n’importe où, la sortie pourrait ressembler à ceci :

      Output

      Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22/tcp ALLOW IN Anywhere

      Utilisez la commande status si vous souhaitez vérifier comment UFW a configuré le pare-feu.

      Étape 9 – Désactivation ou réinitialisation d’UFW (facultatif)

      Si vous décidez que vous ne voulez pas utiliser UFW, vous pouvez le désactiver avec cette commande :

      Toutes les règles que vous avez créées avec UFW ne seront plus actives. Vous pourrez toujours exécuter la commande sudo ufw enable si vous devez l’activer plus tard.

      Si vous avez déjà configuré des règles UFW mais que vous décidez de tout recommencer, vous pouvez utiliser la commande reset :

      Cela désactivera l’UFW et supprimera toutes les règles qui ont été définies précédemment. Gardez à l’esprit que les règles par défaut ne retrouveront pas leurs paramètres d’origine, si vous les avez modifiées à un moment quelconque. Cela devrait vous permettre de repartir à zéro avec UFW.

      Conclusion

      Votre pare-feu est maintenant configuré pour autoriser (au moins) les connexions SSH. Veillez à autoriser toutes les autres connexions entrantes dont votre serveur a besoin, tout en limitant les connexions inutiles, afin que votre serveur soit fonctionnel et sécurisé.

      Pour en savoir plus sur les configurations UFW les plus courantes, consultez le tutoriel UFW Essentials : Règles et commandes communes de pare-feu.



      Source link