One place for hosting & domains

      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

      Cómo configurar un firewall con UFW en Ubuntu 20.04


      Introducción

      UFW, o Uncomplicated Firewall, es una interfaz de gestión de firewall simplificada que oculta la complejidad de las tecnologías de filtrado de paquetes de nivel inferior, como iptables y nftables. Si desea comenzar a proteger su red y no está seguro respecto de la herramienta que debe utilizar, UFW puede ser la mejor opción .

      En este tutorial, verá la manera de configurar un firewall con UFW en Ubuntu 20.04.

      Requisitos previos

      Para este tutorial, necesitará lo siguiente:

      UFW viene instalado por defecto en Ubuntu. Si se desinstaló por alguna razón, puede instalarlo con sudo apt install ufw​​​2​​​.

      Paso 1: Utilizar IPv6 con UFW (opcional)

      Este tutorial se redactó teniendo en cuenta IPv4, pero funcionará para IPv6 siempre que lo habilite. Si su servidor de Ubuntu tiene IPv6 habilitado, compruebe que UFW esté configurado para que admitir IPv6 de modo que administre las reglas de firewall para IPv6 además de IPv4. Para hacerlo, abra la configuración de UFW con nano o su editor favorito.

      • sudo nano /etc/default/ufw

      A continuación, asegúrese de que el valor de IPV6 sea yes. Debería tener el siguiente aspecto:

      /etc/default/ufw excerpt

      IPV6=yes
      

      Guarde y cierre el archivo. Cuando UFW esté habilitado, se configurará para escribir reglas de firewall de IPv4 y IPv6. Sin embargo, antes de habilitar UFW, nos convendrá comprobar que su firewall esté configurado para que usted pueda establecer conexión a través de SSH. Empezaremos con la configuración de las políticas predeterminadas.

      Paso 2: Configurar políticas predeterminadas

      Si recién está dando los primeros pasos con su firewall, las primeras reglas que deben definirse son sus políticas predeterminadas. Estas reglas controlan el manejo del tráfico que no coincida de forma explícita con otras reglas. Por defecto, UFW está configurado para denegar todas las conexiones entrantes y permitir todas las conexiones salientes. Esto significa que quien intente establecer conexión con su servidor no podrá hacerlo, mientras que cualquier aplicación dentro del servidor podrá llegar al mundo exterior.

      Restableceremos los valores predeterminados de sus reglas de UFW para garantizar que podamos seguir con este tutorial. Para fijar los valores predeterminados utilizados por UFW, emplee estos comandos:

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

      Establecen los valores predeterminados para denegar las conexiones entrantes y permitir las salientes. Con solo estos valores predeterminados de firewall podría bastar para una computadora personal, pero normalmente los servidores deben responder a las solicitudes de usuarios externos. Lo veremos a continuación.

      Paso 3: Habilitar conexiones SSH

      Si habilitamos nuestro firewall de UFW ahora, denegaría todas las conexiones entrantes. Esto significa que deberemos crear reglas que permitan explícitamente las conexiones entrantes legítimas (SSH o HTTP, por ejemplo) si queremos que nuestro servidor responda a estos tipos de solicitudes. Si utiliza un servidor en nube, probablemente le convenga permitir las conexiones SSH entrantes para poder conectarse y administrar su servidor.

      Para configurar su servidor de modo que permita las conexiones SSH entrantes, puede utilizar este comando:

      Esto creará reglas de firewall que permitirán todas las conexiones en el puerto 22, que es el que escucha el demonio SSH por defecto. UFW registra el significado del puerto allow ssh porque está enumerado como servicio en el archivo /etc/services.

      Sin embargo, podemos escribir la regla equivalente especificando el puerto en vez del nombre del servicio. Por ejemplo, este comando funciona como el anterior:

      Si configuró su demonio SSH para utilizar un puerto diferente, deberá especificar el puerto apropiado. Por ejemplo, si su servidor SSH escucha en el puerto 2222 puede utilizar este comando para permitir las conexiones en ese puerto:

      Ahora que su firewall está configurado para permitir las conexiones SSH entrantes, podemos habilitarlo.

      Paso 4: Habilitar UFW

      Para habilitar UFW, utilice este comando:

      Recibirá una advertencia que indicará que el comando puede interrumpir las conexiones SSH existentes. Ya configuramos una regla de firewall que permite conexiones SSH. Debería ser posible continuar sin inconvenientes. Responda a la solicitud con y y presione ENTER.

      Con esto, el firewall quedará activo. Ejecute el comando sudo ufw status verbose para ver las reglas que se configuran. En el resto de este tutorial se abarca en mayor profundidad la forma de utilizar UFW. Se analizarán opciones como las de permitir o denegar diferentes tipos de conexiones.

      Paso 5: Habilitar otras conexiones

      En este momento, debería permitir el resto de las conexiones a las que su servidor debe responder. Las conexiones que debería permitir dependen de sus necesidades específicas. Afortunadamente, ya sabe cómo escribir reglas que permiten las conexiones basadas en un nombre de servicio o un puerto; ya lo hicimos para SSH en el puerto 22. También puede hacerlo para:

      • HTTP en el puerto 80, que es lo que utilizan los servidores web no cifrados, con sudo ufw allow http o sudo ufw allow 80
      • HTTPS en el puerto 443, que es lo que utilizan los servidores web cifrados, con sudo ufw allow https o sudo ufw allow 443

      Existen varias maneras de permitir otras conexiones, aparte de especificar un puerto o un servicio conocido.

      Intervalos de puerto específicos

      Puede especificar intervalos de puerto con UFW. Algunas aplicaciones utilizan varios puertos en vez de uno solo.

      Por ejemplo, para permitir las conexiones de X11 que utilizan los puertos 6000 a 6007, use estos comandos:

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

      Al especificar intervalos de puerto con UFW, debe definir el protocolo (tcp o udp) al que deberían aplicarse las reglas. No lo mencionamos antes porque cuando no se especifica el protocolo se permiten ambos de forma automática, lo cual está bien en la mayoría de los casos.

      Direcciones IP específicas

      Al trabajar con UFW, también puede especificar direcciones IP. Por ejemplo, si desea permitir las conexiones desde una dirección IP específica, como una dirección IP de trabajo o doméstica 203.0.113.4, debe definir from y luego la dirección IP:

      • sudo ufw allow from 203.0.113.4

      También puede especificar un puerto concreto al que la dirección IP pueda conectarse agregando to any port seguido del número de este. Por ejemplo, si desea permitir que 203.0.113.4 se conecte al puerto 22 (SSH), utilice este comando:

      • sudo ufw allow from 203.0.113.4 to any port 22

      Subredes

      Si desea permitir una subred de direcciones IP, puede hacerlo utilizando la notación CIDR para especificar una máscara de red. Por ejemplo, si desea permitir todas las direcciones IP de la 203.0.113.1 a la 203.0.113.254 podría utilizar este comando:

      • sudo ufw allow from 203.0.113.0/24

      Del mismo modo, también puede especificar el puerto de destino al que puede conectarse la subred 203.013.0/24. Una vez más, utilizaremos el puerto 22 (SSH) como ejemplo:

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

      Conexiones a una interfaz de red específica

      Si desea crear una regla de firewall que solo se aplique a una interfaz de red específica, puede hacerlo optando por “allow in on” seguido del nombre de la interfaz de red.

      Tal vez le convenga revisar sus interfaces de red antes de continuar. Para hacerlo, utilice este comando:

      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 . . .

      El resultado resaltado indica los nombres de la interfaz de red. Normalmente, tienen nombres similares a eth0 o enp3s2.

      Así, si su servidor tiene una interfaz de red pública llamada eth0, podría permitir el tráfico HTTP (puerto 80) hacia él con este comando:

      • sudo ufw allow in on eth0 to any port 80

      Al hacerlo permitiría que su servidor recibiera solicitudes HTTP desde la Internet pública.

      O bien, si desea que su servidor de base de datos de MySQL (puerto 3306) escuche las conexiones en la interfaz de red privada eth1, por ejemplo, podría utilizar este comando:

      • sudo ufw allow in on eth1 to any port 3306

      Esto permitiría que otros servidores de su red privada se conectaran a su base de datos de MySQL.

      Paso 6: Denegar conexiones

      Si no cambió la política predeterminada para las conexiones entrantes, UFW está configurado para denegarlas a todas. Generalmente, esto simplifica el proceso de creación de una política de firewall segura al exigirle crear reglas que permitan de forma explícita el acceso de puertos específicos y direcciones IP.

      Sin embargo, a veces le convendrá denegar conexiones específicas basadas en la dirección IP o subred de origen, quizás por saber que su servidor recibe ataques desde ellas. Además, si desea cambiar el valor su política entrante predeterminada a allow (no lo recomendamos), debería crear reglas deny para cualquier servicio o dirección IP cuyas conexiones no desee permitir.

      Para escribir reglas de deny, puede utilizar los comandos descritos anteriormente y sustituir allow por deny.

      Por ejemplo, para denegar conexiones HTTP, podría utilizar este comando:

      A su vez, si desea denegar todas las conexiones de 203.0.113.4 podría utilizar este comando:

      • sudo ufw deny from 203.0.113.4

      Ahora veremos la forma de eliminar reglas.

      Paso 7: Eliminar reglas

      Saber eliminar reglas de firewall es tan importante como saber crearlas. Existen dos maneras diferentes de especificar las reglas que se eliminarán: por número de regla o por regla real (se asemejan a la forma en que las reglas se especifican al crearse). Comenzaremos con el método de eliminación por número de regla porque es más sencillo.

      Por número de regla

      Si utiliza el número de regla para eliminar reglas de firewall, lo primero que le convendrá hacer es obtener una lista de reglas de firewall. El comando “UFW status” tiene una opción para mostrar números junto a cada regla, como se muestra aquí:

      Numbered Output:

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

      Si decidimos eliminar la regla 2, que permite las conexiones del puerto 80 (HTTP), podemos especificarlo en un comando “UFW delete”como este:

      Esto mostraría un mensaje de confirmación y eliminaría la regla 2, que permite conexiones HTTP. Tenga en cuenta que si tiene IPv6 habilitado, le convendría eliminar también la regla IPv6 correspondiente.

      Por regla real

      La alternativa a números de regla es especificar la regla real que se eliminará. Por ejemplo, si desea eliminar la regla allow http, podría escribir lo siguiente:

      • sudo ufw delete allow http

      También podría especificar la regla mediante allow 80 en vez de hacerlo por nombre de servicio:

      Con este método se eliminarán las reglas IPv4 y IPv6, si existen.

      Paso 8: Comprobar el estado y las reglas de UFW

      En cualquier momento, puede verificar el estado de UFW con este comando:

      Si UFW está desactivado, lo cual se aplica por defecto, verá algo como esto:

      Output

      Status: inactive

      Si UFW está activo, lo cual debería suceder si siguió el paso 3, en el resultado se indicará que está activo y se enumerará cualquier regla configurada. Por ejemplo, si el firewall está configurado para permitir conexiones SSH (puerto 22) desde cualquier parte, el resultado podría ser parecido a este:

      Output

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

      Utilice el comando status si desea verificar la configuración que UFW aplicó al firewall.

      Paso 9: Deshabilitar o reiniciar UFW (opcional)

      Si decide que no desea utilizar UFW, puede desactivarlo con este comando:

      Cualquier regla que haya creado con UFW dejará de estar activa. Siempre puede ejecutar sudo ufw enable si necesita activarla más adelante.

      Si ya configuró reglas de UFW y decide que desea empezar de nuevo, puede utilizar el comando “reset”:

      Con esto se desactivará UFW y se eliminará cualquier regla definida anteriormente. Tenga en cuenta que los ajustes originales de las políticas predeterminadas no se restablecerán si las modificó en algún momento. Esto debería permitirle empezar de nuevo con UFW.

      Conclusión

      De esta manera, su firewall quedará configurado para permitir conexiones SSH (al menos). Asegúrese de permitir cualquier otra conexión entrante que necesite su servidor y, al mismo tiempo, limitar cualquier conexión innecesaria, de modo que su servidor funcione y sea seguro.

      Para obtener información sobre más configuraciones comunes de UFW, consulte el tutorial Aspectos básicos de UFW: reglas y comandos comunes de firewall.



      Source link

      Como Configurar um Firewall com o UFW no Ubuntu 20.04


      Introdução

      O UFW, ou Uncomplicated Firewall, é uma interface de gerenciamento simplificado de firewall que esconde a complexidade das tecnologias de filtragem de pacotes de baixo nível, como iptables e nftables. Se você deseja começar a proteger sua rede, mas não tem certeza sobre qual ferramenta usar, o UFW pode ser a escolha certa para você.

      Este tutorial lhe mostrará como configurar um firewall com o UFW no Ubuntu 20.04.

      Pré-requisitos

      Para seguir este tutorial, você vai precisar do seguinte:

      O UFW vem instalado por padrão no Ubuntu. Se ele tiver sido desinstalado por algum motivo, você pode instalá-lo com sudo apt install ufw.

      Este tutorial foi escrito tendo o IPv4 em mente, mas funcionará também com o IPv6, contanto que você o habilite. Se seu servidor Ubuntu tiver o IPv6 habilitado, certifique-se de que o UFW esteja configurado para dar suporte ao IPv6, para que ele gerencie as regras de firewall do IPv6, além das regras do IPv4. Para fazer isso, abra a configuração UFW com o nano ou seu editor favorito.

      • sudo nano /etc/default/ufw

      Então, certifique-se de que o valor IPV6 seja yes. Deve se parecer com isto:

      /etc/default/ufw excerpt

      IPV6=yes
      

      Salve e feche o arquivo. Agora, quando o UFW estiver habilitado, ele será configurado para escrever regras de firewall para ambos IPv4 e IPv6. No entanto, antes de habilitar o UFW, nós vamos querer garantir que seu firewall esteja configurado para permitir que você se conecte via SSH. Vamos começar configurando as políticas padrão.

      Passo 2 — Configurando as políticas padrão

      Se você estiver apenas começando com seu firewall, as primeiras regras a definir são suas políticas padrão. Essas regras controlam a maneira de lidar com tráfego que não seja claramente compatível com quaisquer outras regras. Por padrão, o UFW é configurado para negar todas as conexões de entrada e permitir todas as conexões de saída. Isso significa que qualquer um que tentasse acessar o seu servidor não conseguiria conectar-se, ao passo que os aplicativos dentro do servidor conseguiriam alcançar o mundo exterior.

      Vamos retornar as regras do seu UFW para as configurações padrão, para que possamos ter certeza de que você conseguirá acompanhar este tutorial. Para definir os padrões usados pelo UFW, utilize estes comandos:

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

      Esses comandos configuram os padrões para negar as conexões de entrada e permitir as conexões de saída. Esses padrões do firewall poderiam suprir as necessidades de um computador pessoal Porém, os servidores normalmente precisam responder às solicitações que chegam de usuários externos. Vamos verificar isso a seguir.

      Passo 3 — Permitindo as conexões via protocolo SSH

      Se nós habilitássemos nosso firewall UFW agora, ele negaria todas as conexões de entrada. Isso significa que precisaremos criar regras que permitam de maneira explícita as conexões de entrada legítimas — conexões SSH ou HTTP, por exemplo — se quisermos que nosso servidor responda a esses tipos de pedidos. Se você estiver usando um servidor na nuvem, você provavelmente irá querer permitir conexões de entrada via protocolo SSH para que você consiga se conectar e gerenciar o seu servidor.

      Para configurar seu servidor para permitir as conexões de entrada via SSH, você pode utilizar este comando:

      Esse procedimento criará regras do firewall que permitirão todas as conexões na porta 22, que é a porta na qual o SSH daemon escuta por padrão. O UFW sabe o que a porta allow ssh significa porque ela está listada como um serviço no arquivo /etc/services.

      No entanto, podemos realmente escrever a regra equivalente, especificando a porta em vez do nome do serviço. Por exemplo, este comando funciona de forma semelhante ao anterior:

      Se você configurou seu SSH daemon para usar uma porta diferente, você terá que especificar a porta apropriada. Por exemplo, se seu servidor SSH estiver escutando na porta 2222, você pode usar este comando para permitir as conexões naquela porta:

      Agora que seu firewall está configurado para permitir as conexões de entrada via SSH, podemos habilitá-lo.

      Passo 4 — Habilitando o UFW

      Para habilitar o UFW, utilize este comando:

      Você receberá um aviso que diz que o comando pode interromper conexões via SSH existentes. Nós já configuramos uma regra de firewall que permite conexões via SSH, então tudo bem continuar. Responda ao prompt com y e tecle ENTER.

      O firewall agora está ativo. Execute o comando sudo ufw status verbose para ver as regras que foram definidas. O resto deste tutorial tratará de como usar o UFW em mais detalhes, como, por exemplo, permitir ou negar diferentes tipos de conexões.

      Passo 5 — Permitindo outras conexões

      Neste ponto, você deve permitir todas as outras conexões às quais seu servidor precisa responder. As conexões que você deve permitir dependem das suas necessidades específicas. Felizmente, você já sabe escrever regras que permitem conexões baseadas em um nome de serviço ou porta; já fizemos isso para o SSH na porta 22. Você também pode fazer isso para:

      • O HTTP na porta 80, que é a porta que os servidores Web não criptografados utilizam, usando sudo ufw allow http ou sudo ufw allow 80
      • O HTTPS na porta 443, que é a porta que os servidores Web criptografados utilizam, usando sudo ufw allow https ou sudo ufw allow 443

      Há várias outras maneiras de permitir outras conexões, além de especificar uma porta ou serviço conhecido.

      Faixas de portas específicas

      Você pode especificar faixas de portas com o UFW. Alguns aplicativos usam várias portas, em vez de uma única porta.

      Por exemplo, para permitir conexões via protocolo X11, que usam as portas 60006007, utilize esses comandos:

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

      Ao especificar as faixas de porta com o UFW, você deve especificar o protocolo (tcp ou udp) para o qual as regras devem aplicar-se. Nós não mencionamos isso antes porque não especificar o protocolo automaticamente permite ambos os protocolos, o que é OK na maioria dos casos.

      Endereços IP específicos

      Ao trabalhar com o UFW, você também pode especificar endereços IP. Por exemplo, se quiser permitir conexões de um endereço IP específico, como um endereço IP de trabalho ou domicílio de 203.0.113.4, você precisa especificar from, então o endereço IP:

      • sudo ufw allow from 203.0.113.4

      Você também pode especificar uma porta específica na qual o endereço IP tem permissão para se conectar, adicionando to any port seguido do número da porta. Por exemplo, se quiser permitir que o endereço 203.0.113.4 se conecte à porta 22 (SSH), utilize este comando:

      • sudo ufw allow from 203.0.113.4 to any port 22

      Sub-redes

      Se você quiser permitir uma sub-rede de endereços IP, você pode fazer isso usando uma notação CIDR para especificar uma máscara de rede. Por exemplo, se você quiser permitir todos os endereços IP na faixa de 203.0.113.1 a 203.0.113.254, você pode usar este comando:

      • sudo ufw allow from 203.0.113.0/24

      De maneira similar, você também pode especificar a porta de destino na qual a sub-rede 203.0.113.0/24 tem permissão para se conectar. Novamente, nós vamos usar a porta 22 (SSH) como um exemplo:

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

      Conexões a uma Interface de Rede Específica

      Se você quiser criar uma regra de firewall que se aplique apenas a uma interface de rede específica, você pode fazer isso especificando “allow in on” seguido do nome da interface de rede.

      Você pode querer verificar suas interfaces de rede antes de continuar. Para fazer isso, utilize este comando:

      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 . . .

      O resultado destacado indica os nomes de interfaces de rede. Normalmente, elas recebem nomes como eth0 ou enp3s2.

      Então, se o seu servidor tiver uma interface de rede pública chamada eth0, você pode permitir o tráfego HTTP (porta 80) nela, usando este comando:

      • sudo ufw allow in on eth0 to any port 80

      Fazer isso permitiria que seu servidor recebesse pedidos HTTP da internet pública.

      Ou, se você quiser que seu servidor de banco de dados MySQL (porta 3306) escute conexões na interface de rede privada eth1, por exemplo, você pode usar este comando:

      • sudo ufw allow in on eth1 to any port 3306

      Isso permitiria que outros servidores na sua rede privada se conectassem ao seu banco de dados MySQL.

      Passo 6 — Negando conexões

      Se você não tiver mudado a política padrão para conexões de entrada, o UFW está configurado para negar todas as conexões de entrada. Geralmente, isso simplifica o processo de criação de uma política de firewall segura ao exigir que você crie regras que permitam explicitamente portas e endereços IP específicos.

      No entanto, algumas vezes você irá querer negar conexões específicas baseadas no endereço IP ou na sub-rede da origem, talvez porque você saiba que seu servidor está sendo atacado a partir daí. Além disso, se você quisesse alterar sua política de entrada padrão para permitir (allow) (o que não é recomendado), você precisaria criar regras para negar (deny) quaisquer serviços ou endereços IP para os quais você não quisesse permitir conexões.

      Para escrever regras de deny, você pode usar os comandos descritos acima, substituindo allow por deny.

      Por exemplo, para negar conexões HTTP, você pode usar este comando:

      Ou se você quiser negar todas as conexões do endereço 203.0.113.4 você pode usar este comando:

      • sudo ufw deny from 203.0.113.4

      Agora, vamos ver como excluir regras.

      Passo 7 — Excluindo regras

      Saber como excluir regras do firewall é tão importante quanto saber como criá-las. Há duas maneiras diferentes para especificar quais regras excluir: pelo número da regra ou pela regra em si (semelhante ao modo como as regras foram especificadas quando foram criadas). Vamos começar com o método excluir pelo número da regra porque é mais fácil.

      Pelo número da regra

      Se você estiver usando o número da regra para excluir regras do firewall, a primeira coisa que você vai querer fazer é obter uma lista das regras do seu firewall. O comando status do UFW tem uma opção para mostrar números ao lado de cada regra, como demonstrado aqui:

      Numbered Output:

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

      Se decidirmos que queremos excluir a regra 2, aquela que permite conexões na porta 80 (HTTP), podemos especificar isso em um comando delete do UFW desta forma:

      Isso mostraria um prompt de confirmação e então excluiria a regra 2, que permite conexões HTTP. Note que se você tivesse o IPv6 habilitado, você iria querer excluir a regra correspondente ao IPv6 também.

      Pela regra

      A alternativa para os números das regras é especificar a regra propriamente dita a ser excluída. Por exemplo, se quiser remover a regra allow http, você pode escrever desta forma:

      • sudo ufw delete allow http

      Você também poderia especificar a regra por allow 80, em vez de pelo nome do serviço:

      Esse método irá excluir as regras do IPv4 e do IPv6, se houver.

      Passo 8 — Verificando o status e as regras do UFW

      A qualquer momento, você pode verificar o status do UFW com este comando:

      Se o UFW estiver desabilitado – o que acontece por padrão, você verá algo como isso:

      Output

      Status: inactive

      Se o UFW estiver ativo – o que deve ser o caso se você tiver seguido o Passo 3 – o resultado dirá que ele está ativo e listará quaisquer regras que estejam definidas. Por exemplo, se o firewall estiver configurado para permitir conexões via SSH (porta 22) de qualquer lugar, o resultado poderia parecer com este:

      Output

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

      Use o comando status, se quiser verificar como o UFW configurou o firewall.

      Passo 9 — Desabilitando ou redefinindo o UFW (opcional)

      Se você decidir que não quer usar o UFW, você pode desativá-lo com este comando:

      Quaisquer regras que você tenha criado com o UFW já não estarão mais ativas. Você sempre poderá executar sudo ufw enable se precisar ativá-lo mais tarde.

      Se você já tiver regras do UFW configuradas, mas decidir que quer começar novamente, você pode usar o comando de redefinição:

      Isso irá desabilitar o UFW e excluir quaisquer regras que tiverem sido definidas anteriormente. Lembre-se de que as políticas padrão não irão voltar para suas configurações originais se, em algum momento, você as tiver alterado. Isso deve dar a você um novo começo com o UFW.

      Conclusão

      Seu firewall agora está configurado para permitir (pelo menos) conexões via SSH. Certifique-se de permitir outras conexões de entrada necessárias para o seu servidor, ao mesmo tempo em que limita quaisquer conexões desnecessárias, para que seu servidor seja funcional e seguro.

      Para aprender sobre mais configurações comuns do UFW, verifique o tutorial Fundamentos do UFW: regras comuns de firewall e comandos.



      Source link