26.12.2023

UFW de base (simple Firewall) commandes

Introduction

Le défaut firewall outil de configuration pour Ubuntu est ufw. Conçu pour simplifier iptables firewall configuration, ufw fournit un moyen pratique de créer un IPv4 ou basé sur l'hôte IPv6 firewall. Par défaut, UFW est désactivé.

Si votre version n'a pas installé ufw, vous pouvez l'installer en utilisant la commande :

sudo apt mise à jour && sudo apt installer ufw

Vérification de l'état UFW

Vérifiez que le firewall est allumé, utilisez cette commande :

statut de sudo ufw


Le résultat montrera si votre firewall est actif ou non.

Activer UFW

Si vous obtenez un Statut : inactif message lors de l'exécution de la commande ufw status, cela signifie que le firewall n'est pas encore activé sur le système. Vous devrez exécuter une commande pour l'activer.

Par défaut, lorsque UFW est activé, il bloque l'accès externe à tous les ports du serveur. En pratique, cela signifie que si vous vous connectez à un serveur via SSH et activez ufw avant d'autoriser l'accès sur le SSH port, vous serez déconnecté.

Pour activer UFW sur votre système, exécutez la commande :

sudo ufw activer

Vous verrez un résultat similaire à celui-ci.

Pour voir ce qui est actuellement bloqué ou autorisé, vous pouvez utiliser le verbeux parameter lors de la course statut de ufw comme indiqué ci-dessous:

sudo ufw statut verbeux

Éteindre l'UFW

Si pour une raison quelconque vous devez désactiver le firewall, vous pouvez le faire avec la commande suivante :

sudo ufw désactiver

Attention, cette commande désactivera complètement le firewall service sur votre système !

Empêcher une adresse IP d'être adressée

Pour bloquer toutes les connexions réseau d'originenatà partir d'une adresse IP spécifique, exécutez la commande suivante en remplaçant l'adresse IP allouée par l'adresse IP que vous souhaitez bloquer :

sudo ufw refuser de 91.198.174.190


Dans cet exemple, À partir de 91.198.174.190 ans indique l'adresse IP source "91.198.174.190".

statut de sudo ufw

Si vous exécutez cette commande, vous verrez que l'adresse IP spécifiée est sur la liste interdite :

Toutes les connexions, entrantes et sortantes, sont bloquées pour l'adresse IP spécifiée.

Bloquer le sous-réseau

Si vous devez bloquer l'intégralité du sous-réseau, vous pouvez utiliser l'adresse du sous-réseau comme parameter dans la commande ufw deny. Cela bloquera toutes les adresses IP dans l'exemple de sous-réseau 91.198.174.0/24 :

sudo ufw refuser de 91.198.174.0/24

Blocage des connexions entrantes à l'interface réseau

Pour bloquer les connexions entrantes d'une adresse IP spécifique vers une interface réseau spécifique, exécutez la commande suivante, en remplaçant l'adresse IP par l'adresse IP que vous souhaitez bloquer :

sudo ufw refuser sur eth0 à partir de 91.198.174.192

Le "in" parameter raconte le firewall pour appliquer la règle uniquement aux connexions entrantes, et le pa "on eth0"rameter lui indique que la règle ne s'applique qu'à l'interface eth0.

Cela peut être utile si vous avez un système avec plusieurs interfaces réseau (y compris des interfaces virtuelles) et que vous devez bloquer l'accès externe à certaines de ces interfaces, mais pas à toutes.

Autoriser les conversions d'adresse IP

Pour autoriser toutes les connexions réseau d'originenatà partir d'une adresse IP spécifique, exécutez la commande suivante en remplaçant l'adresse IP allouée par l'adresse IP à laquelle vous souhaitez autoriser l'accès :

sudo ufw autoriser à partir de 91.198.174.192

Si vous exécutez maintenant "sudo ufw status", vous verrez une sortie similaire à celle-ci, avec ALLOW à côté de l'adresse IP que vous venez d'ajouter.

statut de sudo ufw

Vous pouvez également autoriser les connexions à partir d'un sous-réseau entier en spécifiant le masque de sous-réseau approprié pour l'hôte, par exemple 91.198.174.0/24.

Autoriser les connexions entrantes à l'interface réseau

Pour autoriser les connexions entrantes d'une adresse IP spécifique vers une interface réseau spécifique, exécutez la commande suivante, en remplaçant l'adresse IP par celle que vous souhaitez autoriser :

sudo ufw autoriser eth0 à partir de 91.198.174.22

Le "in" parameter raconte le firewall pour appliquer la règle uniquement aux connexions entrantes et au pa "on eth0"rameter spécifie que la règle s'applique uniquement à l'interface "eth0".

statut de sudo ufw

Si vous exécutez la commande, vous verrez un résultat semblable à celui-ci :

Supprimer un firewall exclure

Pour supprimer une règle précédemment installée dans UFW, utilisez "ufw delete", puis saisissez la règle (autoriser/refuser) et la spécification cible. L'exemple suivant supprime une règle précédemment définie pour autoriser toutes les connexions à partir de l'adresse IP 91.198.174.192 :

sudo ufw supprimer autoriser de 91.198.174.192

Une autre façon de spécifier la règle que vous souhaitez supprimer consiste à spécifier l'ID de la règle. Ces informations peuvent être obtenues à l'aide de la commande suivante :

statut sudo ufw numéroté

À partir de la sortie, vous pouvez voir qu'il y a deux règles actives. La première règle refuse toutes les connexions provenant de l'adresse IP 91.198.174.190. La deuxième règle autorise les connexions sur l'interface eth0 provenant de l'adresse IP 91.198.174.22.

Puisque par défaut le firewall bloque déjà tous les accès externes à moins qu'ils ne soient explicitement autorisés, la première règle est redondante et peut donc être supprimée. Pour supprimer une règle en fonction de son ID, exécutez la commande :

sudo ufw supprimer 1

Vous serez invité à confirmer l'opération et à vous assurer que l'ID que vous spécifiez correspond à la bonne règle que vous souhaitez supprimer.

Si vous listez à nouveau vos règles avec le statut "sudo ufw", vous verrez que la règle a été supprimée.

Liste des profils d'application disponibles

Lors de l'installation d'applications reposant sur des communications réseau, il est courant de configurer un firewall profil qui peut être utilisé pour autoriser les connexions à partir d'adresses externes. C'est souvent la même chose que d'exécuter "ufw allow from", avec l'avantage qu'il s'agit d'un raccourci qui résume les numéros de port spécifiques utilisés par le service et fournit une nomenclature pratique pour les services de référence.

liste des applications sudo ufw

Si vous avez installé un service, tel qu'un serveur Web ou un autre logiciel dépendant du réseau, et que le profil n'était pas disponible dans le firewall, assurez-vous d'abord que le service est activé.

Pour les serveurs distants OuvrirSSH est généralement disponible :

Inclure un profil pour une application spécifique

Pour activer un firewall profil d'application, exécutez la commande "ufw allow" suivi du nom du profil d'application que vous souhaitez activer, qui peut être obtenu avec la commande :

liste des applications sudo ufw

Dans l'exemple suivant, nous activons l'OpenSSH profil, qui permettra à tous les entrants SSH connexions sur la norme SSH Port.

sudo ufw autoriser l'ouvertureSSH

Désactiver un profil pour une application spécifique

Pour désactiver un profil d'application que vous avez précédemment configuré dans le firewall, vous devez supprimer la règle correspondante. Par exemple, considérez la sortie suivante de "sudo ufw status"

statut de sudo ufw

Cette sortie indique que le "Nginx Le profil d'application complet" est actuellement activé, permettant toutes les connexions au serveur Web via les deux HTTP ainsi que le HTTPS.

Si vous souhaitez autoriser uniquement HTTPS requêtes à votre serveur Web, vous devez d'abord activer la règle la plus restrictive, qui dans ce cas est "Nginx HTTPS", puis désactivez la règle active "Nginx Complet":

sudo ufw autoriser "Nginx HTTPS"
sudo ufw supprimer autoriser "Nginx Complet"

N'oubliez pas que vous pouvez répertorier tous les profils d'application disponibles avec :

liste des applications sudo ufw

Activer SSH

Lorsque vous travaillez avec des serveurs distants, vous devez vous assurer que le SSH port est ouvert pour les connexions afin que vous puissiez vous connecter à distance à votre serveur.

La commande suivante activera l'OpenSSH profil de candidature pour le firewall et autoriser toutes les connexions à la valeur par défaut SSH port sur le serveur :

sudo ufw autoriser l'ouvertureSSH

Bien que moins convivial, un alternative syntaxe est de spécifier le numéro de port exact du SSH service, qui est généralement défini sur 22 par défaut :

sudo ufw autoriser 22

Autoriser les appels entrants SSH à partir d'une adresse IP ou d'un sous-réseau spécifique

Pour autoriser les connexions entrantes à partir d'une adresse IP ou d'un sous-réseau spécifique, vous incluez la directive "from" pour définir la source de la connexion. Cela nécessite que vous spécifiiez également la destinationnatadresse ionique avec le "to" parameter. Pour bloquer cette règle pour SSH seulement, limitez "proto" (protocole) à "tcp" puis utilisez le "port" paramet réglez-le sur 22, la valeur par défaut SSH Port.

La commande suivante permettra uniquement SSH connexions d'originenatdepuis l'adresse IP 91.198.174.33 :

sudo ufw autoriser de 91.198.174.33 proto tcp à n'importe quel port 22

Vous pouvez également utiliser l'adresse de sous-réseau comme adresse "de"rameter pour autoriser les entrées SSH connexions de l'ensemble du réseau :

sudo ufw autoriser de 91.198.174.0/24 proto tcp à n'importe quel port 22

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

Rsync, qui s'exécute sur le port 873, peut être utilisé 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 particulier, utilisez le from parameter pour spécifier l'adresse IP source et le port parameter pour définir la destination port sur 873. La commande suivante n'autorisera que les connexions Rsync provenant de l'adresse IP 91.198.174.33 :

sudo ufw permettre de 91.198.174.33 à n’importe quel port 873

Pour permettre à l'ensemble du sous-réseau 91.198.174.0/24 de se "rsynchroniser" avec votre serveur, exécutez la commande :

sudo ufw autorise de 91.198.174.0/24 à n'importe quel port 873

Autoriser Nginx HTTP / HTTPS

Lors de l'installation du Nginx serveur web, il installe plusieurs firewall profils à l'intérieur du serveur. Après avoir installé et activé Nginx en tant que service, exécutez la commande suivante pour déterminer les profils disponibles :

liste des applications sudo ufw | grep Nginx

Autoriser HTTP ainsi que le HTTPTrafic S, sélectionnez Nginx Full. Sinon, sélectionnez soit Nginx HTTP pour permettre HTTP seulement, ou Nginx HTTPS pour permettre HTTPS seulement.

La commande suivante permettra HTTP ainsi que le HTTPTrafic S sur le serveur (ports 80 et 443) :

sudo ufw autoriser "Nginx Complet"

Autoriser Apache HTTP / HTTPS

Lors de l'installation le Apache Le serveur Web installe plusieurs profils UFW différents sur le serveur. Après avoir installé et activé Apache en tant que service, exécutez la commande suivante pour déterminer les profils disponibles :

liste des applications sudo ufw | grep Apache

Autoriser HTTP ainsi que le HTTPTrafic S, sélectionnez "Apache Complet". Sinon, sélectionnez soit "Apache" pour HTTP ou "Apache Sécurisé" pour HTTPS.

La commande suivante permettra HTTP ainsi que le HTTPTrafic S sur le serveur (ports 80 et 443) :

sudo ufw autoriser "Apache Complet"

Autoriser tous les entrants HTTP (port 80)

des serveurs Web tels que Apache ainsi que le Nginx écoute normalement HTTP requêtes sur le port 80. Si votre stratégie par défaut pour le trafic entrant est définie sur rejeter ou refuser, vous devez créer une règle UFW pour autoriser l'accès externe au port 80. Vous pouvez utiliser soit le numéro de port, soit le nom du service (http) comme parameter de cette commande.

Pour autoriser tous les appels entrants HTTP connexions (port 80), exécutez la commande :

sudo ufw autoriser http

Un alternative syntaxe est de spécifier le numéro de port du HTTP service:

sudo ufw autoriser 80

Autoriser tous les appels entrants HTTPS (port 443)

HTTPS s'exécute normalement sur le port 443. Si votre stratégie par défaut pour le trafic entrant est définie sur rejeter ou refuser, vous devez créer une règle UFW pour autoriser l'accès externe sur le port 443. Vous pouvez utiliser le numéro de port ou le nom du service (https) comme parameter de cette commande.

Pour autoriser tous les entrants HTTPLes connexions S (port 443) exécutent cette commande :

sudo ufw autoriser https

Un alternative syntaxe est de spécifier le numéro de port du HTTPService S :

sudo ufw autoriser 443

Autoriser tous les entrants HTTP ainsi que le HTTPS

Si vous souhaitez autoriser HTTP ainsi que le HTTPtrafic S, vous pouvez créer une règle qui autorise les deux ports. Cette utilisation nécessite que vous définissiez également le protocole à l'aide du "proto" parameter, qui dans ce cas doit être défini sur tcp.

Pour autoriser tous les appels entrants HTTP ainsi que le HTTPconnexions S (ports 80 et 443), lancez la commande :

sudo ufw autoriser proto tcp de n'importe quel port à n'importe quel port 80,443

Autoriser la connexion à MySQL à partir d'une adresse IP ou d'un sous-réseau spécifique

MySQL écoute cliconnexions ent sur le port 3306. Si votre MySQL serveur de base de données est utilisé par un client sur un serveur distant, vous devez créer une règle UFW pour autoriser un tel accès.

Pour autoriser les entrées MySQL connexions à partir d'une adresse IP ou d'un sous-réseau particulier, utilisez lerameter pour spécifier l'adresse IP source et le "port" parameter pour définir destinatport d'ions 3306.

La commande suivante permettra à l'adresse IP 91.198.174.33 de se connecter au MySQL port de serveur:

sudo ufw permettre de 91.198.174.33 à n’importe quel port 3306

Pour permettre à l'ensemble du sous-réseau 91.198.174.0/24 de se connecter à votre MySQL serveur, exécutez la commande :

sudo ufw autorise de 91.198.174.0/24 à n'importe quel port 3306

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

PostgreSQL écoute cliconnexions ent sur le port 5432. Si votre PostgreSQL serveur de base de données est utilisé par un client sur un serveur distant, vous devez autoriser ce trafic.

Pour autoriser les entrées PostgreSQL connexions à partir d'une adresse IP ou d'un sous-réseau particulier, spécifiez la source avec le de paramet réglez le port sur 5432 :

sudo ufw permettre de 91.198.174.33 à n’importe quel port 5432

Pour permettre à l'ensemble du sous-réseau 91.198.174.0/24 de se connecter à votre PostgreSQL serveur, exécutez la commande :

sudo ufw autorise de 91.198.174.0/24 à n'importe quel port 5432

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

Les serveurs de messagerie tels que Sendmail et Postfix utilisent normalement le port 25 pour le trafic SMTP. Si votre serveur n'est pas censé envoyer de courrier sortant, vous pouvez bloquer ce type de trafic. Pour bloquer les connexions SMTP sortantes, exécutez la commande :

sudo ufw nier 25

Cela configurera votre firewall pour bloquer tout le trafic sortant sur le port 25. Si vous devez rejeter les connexions sortantes sur un numéro de port différent, vous pouvez répéter cette commande et remplacer 25 par le numéro de port que vous souhaitez bloquer.

Conclusion

UFW est un outil puissant qui, lorsqu'il est configuré correctement, peut améliorer considérablement la sécurité de vos serveurs. Ce guide couvre certaines règles UFW courantes qui sont souvent utilisées pour configurer le firewall in Ubuntu. La plupart des commandes de ce guide peuvent être adaptées à différents cas d'utilisation et scénarios en changeant parameters tels que l'adresse IP source et/ou la destinationnatport ionique. Pour plus d'informations sur chaque commande parameter et les modificateurs disponibles, vous pouvez utiliser le man utilitaire pour vérifier le manuel UFW :

homme euh