Comment bloquer une adresse IP avec ufw sur le serveur Debian 11

Comment bloquer une adresse IP avec ufw sur le serveur Ubuntu Linux

jeJ’utilise UFW pour gérer le pare-feu sur mon serveur Ubuntu Linux 12.04/14.04/16.04/18.04/20.04 LTS. J’ai besoin d’empêcher une adresse IP spécifique d’accéder à mon serveur. Comment bloquer une adresse IP avec ufw ?

UFW (Uncomplicated Firewall) est un frontal pour la commande iptables /nftables et est particulièrement bien adapté pour un serveur unique ou des pare-feu basés sur l’hôte. C’est l’outil de configuration de pare-feu par défaut pour Ubuntu Linux. L’UFW a été développé pour un nouvel administrateur système avec une utilisation facile à l’esprit. C’est un moyen convivial de créer un pare-feu basé sur IPv4 ou IPv6 pour protéger le serveur. Voyons comment bloquer une adresse IP avec ufw sur le serveur Ubuntu.

Détails du tutoriel
Niveau de difficulté Facile
Privilèges root Non
Conditions Terminal Linux
Catégorie Pare-feu
Compatibilité du système d’exploitation Alma • Alpine Arch Debian Fedora Linux • Mint • openSUSE • Pop!_OS • RHEL • Rocky • Stream SUSE Ubuntu
Est. temps de lecture 5 minutes

ufw bloquer l’adresse IP spécifique

La syntaxe est la suivante :
$ sudo ufw deny from {ip-address-here} to any
pour bloquer ou refuser tous les paquets provenant de 192.168.1.5, entrez :
$ sudo ufw deny from 192.168.1.5 to any

Bloquer une adresse IP ufw

Au lieu de la règle de refus, nous pouvons rejeter la connexion à partir de n’importe quelle IP comme suit :
$ sudo ufw reject from 202.54.5.7 to any
Vous utilisez le rejet lorsque vous voulez que l’autre extrémité (attaquant) sache que le port ou l’IP est inaccessible. Cependant, nous utilisons deny pour les connexions aux attaquants (hôtes) que vous ne voulez pas que les gens voient du tout. En d’autres termes, le rejet envoie une réponse de rejet à la source, tandis que la cible de refus (DROP) n’envoie rien du tout.

Afficher l’état du pare-feu, y compris vos règles

Vérifiez les règles nouvellement ajoutées, entrez :
$ sudo ufw status numbered
OU
$ sudo ufw status

Fig.01 : état du pare-feu ufw

Fig.01 : état du pare-feu ufw

ufw bloque l’adresse IP et le numéro de port spécifiques

La syntaxe est :
$ sudo ufw deny from {ip-address-here} to any port {port-number-here}
Pour bloquer ou refuser l’adresse IP 202.54.1.5 des spammeurs au port 80, entrez :
$ sudo ufw deny from 202.54.1.5 to any port 80
Vérifiez à nouveau avec la commande suivante :
$ sudo ufw status numbered
Exemples de sorties :

Statut : actif À l’action de – ------ ---- [ 1] 192.168.1.10 80/tcp AUTORISER Partout [ 2] 192.168.1.10 22/tcp AUTORISER Partout [ 3] Partout REFUSER 192.168.1.5 [ 4] 80 REFUS EN 202.54.1.5

ufw refuse une adresse IP, un numéro de port et un protocole spécifiques

La syntaxe est la suivante lorsque vous devez bloquer par adresse IP, numéro de port et protocole :
$ sudo ufw deny proto {tcp|udp} from {ip-address-here} to any port {port-number-here}
Par exemple, bloquer l’adresse IP pirate 202.54.1.1 sur le port tcp 22, entrez :
$ sudo ufw deny proto tcp from 202.54.1.1 to any port 22$ sudo ufw status numbered

sous-réseau de bloc ufw (CIDR)

Un sous-réseau (également appelé « sous-réseau ») est une subdivision logique d’un réseau IP. Le sous-réseautage est la pratique consistant à diviser un réseau en deux ou plusieurs réseaux. Le préfixe de routage peut être exprimé en notation CIDR (Classless Inter-Domain Routing). Par exemple, 192.168.1.0/24 ayant 24 bits alloués pour le préfixe réseau comme suit :

Adresse : 192.168.1.0 11000000.10101000.00000001. 00000000 Masque réseau : 255.255.255.0 = 24 11111111.11111111.11111111. 00000000 Caractère générique : 0.0.0.255 00000000.00000000.00000000. 11111111 Réseau : 192.168.1.0/24 11000000.10101000.00000001. 00000000 HostMin : 192.168.1.1 11000000.10101000.00000001. 00000001 HostMax : 192.168.1.254 11000000.10101000.00000001. 11111110 Diffusion : 192.168.1.255 11000000.10101000.00000001. 11111111 Hôtes/Net : 254 classe C, Internet privé

La syntaxe de la commande ufw est la suivante :
$ sudo ufw deny proto tcp from sub/net to any port 22$ sudo ufw deny proto tcp from 202.54.1.0/24 to any port 22

Comment supprimer une adresse IP bloquée ou débloquer à nouveau une adresse IP ?

La syntaxe est la suivante : Pour supprimer la règle numéro 4, saisissez : Exemples de sorties :
$ sudo ufw status numbered$ sudo ufw delete NUM

$ sudo ufw delete 4

Suppression : refuser de 202.54.1.5 à n’importe quel port 80 Continuer avec l’opération (o|n) ? y Règle supprimée

Conseil : UFW ne bloque PAS une adresse IP

Les règles UFW (iptables) sont appliquées dans l’ordre d’apparition, et l’inspection se termine immédiatement lorsqu’il y a une correspondance. Par conséquent, par exemple, si une règle autorise l’accès au port tcp 22 (par exemple en utilisant sudo ufw allow 22), et qu’une autre règle est ensuite spécifiée bloquant une adresse IP (par exemple en utilisant ufw deny proto tcp from 202.54.1.1 to any port 22), la règle d’accès au port 22 est appliquée et la dernière règle bloque le l’adresse IP du pirate 202.54.1.1 ne l’est pas. Tout est question de commande. Pour éviter un tel problème, vous devez modifier le /etc/ufw/before.rulesfichier et ajouter une section à « Bloquer une adresse IP » après la section « # Fin des lignes requises ».
$ sudo vi /etc/ufw/before.rules
Trouvez la ligne qui se lit comme suit :

Fin des lignes requises

Ajoutez votre règle pour bloquer les spammeurs ou les pirates :

Bloquer les spammeurs -A ufw-before-input -s 178.137.80.191 -j DROP # Bloquer ip/net (sous-réseau) -A ufw-before-input -s 202.54.1.0 / 24 -j DROP

Enregistrez et fermez le fichier. Enfin, rechargez le pare-feu :
$ sudo ufw reload
comme indiqué ci-dessous dans la section des commentaires , nous pouvons ignorer tout le processus et utiliser la syntaxe simple suivante :
$ sudo ufw insert 1 deny from {BADIPAddress-HERE}$ sudo ufw insert 1 deny from 178.137.80.191 comment 'block spammer'$ sudo ufw insert 1 deny from 202.54.1.0/24 comment 'Block DoS attack subnet'

Blocage de plusieurs adresses IP et sous-réseaux (CIDR) avec ufw

Nous pouvons utiliser différentes méthodes pour bloquer plusieurs adresses IP. Essayons d’utiliser bash for loop comme suit pour bloquer 5 adresses IP :

add subnet/CIDR too # IPS = « 192.168.2.50 1.2.3.4 123.1.2.3 142.1.2.3 202.54.1.5/29 » for i in $IPS do sudo ufw insert 1 deny from " $i " comment "IP et sous-réseau bloqués " fait

Une autre option consiste à lire toutes les adresses IP à partir d’un fichier texte. Créez un nouveau fichier texte comme suit à l’aide de la commande cat :
$ cat > blocked.ip.list
ajoutez les adresses IP et les sous-réseaux :

liste de blocage créée par nixCraft 203.1.5.6 204.5.1.7 45.146.164.157 2620:149:e0:6002::1f1 185.38.40.66 185.220.101.0/24

Exécutez-le comme suit en utilisant bash while loop :

while IFS = read -r block do sudo ufw insert 1 deny from " $block " done < « blocked.ip.list »

Conclusion

Nous avons appris à bloquer une adresse IP ou un sous-réseau/CIDR (Classless Inter-Domain Routing) en utilisant le pare-feu basé sur ufw pour protéger notre serveur des méchants.