Tutorial

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

Published on March 19, 2021
Français
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.

Comment utiliser ce guide

  • 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 :

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

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

  1. sudo ufw allow ssh

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

  1. sudo ufw allow 22

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 :

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

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

  1. sudo ufw allow http

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

  1. sudo ufw allow 80

Autoriser tous les HTTP entrants

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

  1. sudo ufw allow https

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

  1. sudo ufw allow 443

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 :

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

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

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

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

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

  1. sudo ufw deny out 25

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 :

  1. sudo ufw allow 25

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 :

  1. sudo ufw allow 143

Autoriser tous les IMAPS entrants

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

  1. sudo ufw allow 993

Autoriser tous les POP3 entrants

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

  1. sudo ufw allow 110

Autoriser tous les POP3S entrants

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

  1. sudo ufw allow 995

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 !

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors
Default avatar

Developer Advocate

Dev/Ops passionate about open source, PHP, and Linux.



Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel