Agence web » Actualités du digital » Comment sécuriser votre serveur Linux avec un pare-feu UFW

Comment sécuriser votre serveur Linux avec un pare-feu UFW

Shutterstock / Anatolir

UFW, abréviation de «pare-feu simple», est une interface pour les plus complexes iptables utilitaire. Il est conçu pour rendre la gestion d'un pare-feu aussi simple que de configurer les ports pour qu'ils soient ouverts et fermés, et de réguler le trafic autorisé.

Configurer UFW

UFW est installé par défaut dans Ubuntu, mais si ce n'est pas le cas, vous pouvez l'installer à partir de apt:

sudo apt-get install ufw

Si vous exécutez une autre distribution, vous devrez utiliser le gestionnaire de packages de cette distribution, mais UFW est largement disponible. Vous pouvez vérifier l'état du pare-feu avec:

sudo ufw status

Ce qui devrait indiquer "Inactif" si vous ne l'avez pas configuré auparavant.

Un bon point de départ avec un pare-feu est de fermer tout le trafic entrant et d'autoriser le trafic sortant. Ne vous inquiétez pas, cela ne coupera pas votre connexion SSH tout de suite, car le pare-feu n'est pas encore activé.

sudo ufw default deny incoming
sudo ufw default allow outgoing

Cela nous donne une ardoise vierge sur laquelle travailler et ajouter des règles.

Ouverture de ports avec UFW

Pour ouvrir les ports, utilisez la commande ufw allow. Par exemple, vous devrez ouvrir le port 22, alors allez-y et exécutez:

sudo ufw allow 22

Vous pouvez également laisser une note pour votre futur moi lors de l'ajout d'une règle:

sudo ufw allow 8080/tcp comment 'Open port for Express API'

De nombreuses applications installent des profils pour UFW, SSH étant l'un d'entre eux. Vous pouvez donc également autoriser certaines applications à ouvrir les ports dont elles ont besoin en spécifiant le nom:

sudo ufw allow ssh

Vous pouvez afficher une liste des applications disponibles avec ufw app listet afficher les détails d'une application avec ufw app info (name).

Vous pouvez également autoriser toute une gamme de ports en utilisant un signe deux-points comme séparateur, et vous pouvez spécifier un protocole. Par exemple, pour autoriser uniquement le trafic TCP sur les ports 3000 à 3100, vous pouvez exécuter:

sudo ufw allow 3000:3100/tcp

Étant donné que la valeur par défaut est de refuser l'entrée, vous n'aurez pas à fermer manuellement les ports. Si vous souhaitez fermer un port sortant, vous devez spécifier une direction à côté ufw reject:

sudo ufw reject out 3001

Liste blanche et limitation de débit avec UFW

Vous pouvez autoriser certaines adresses IP à avoir des autorisations différentes. Par exemple, pour autoriser tout le trafic de votre adresse IP, vous pouvez exécuter:

sudo ufw allow 192.168.1.1

Pour ajouter des ports spécifiques à la liste blanche, vous devrez utiliser la syntaxe la plus complète:

sudo ufw allow proto tcp from 192.168.1.1 to any port 22

Vous ne voudrez probablement pas mettre en liste blanche l'accès SSH de cette manière, sauf si vous avez une connexion de secours ou une sorte de configuration de coupure de port, car les adresses IP changent assez fréquemment. Une option si vous ne souhaitez restreindre l'accès SSH qu'à vous est de configurer un serveur OpenVPN dans le même cloud privé et de mettre en liste blanche l'accès à ce serveur.

Si vous souhaitez mettre sur liste blanche tout un bloc d'adresses IP, comme c'est le cas lorsque vous exécutez vos serveurs via un fournisseur de cloud privé virtuel, vous pouvez utiliser la notation de sous-réseau CIDR standard:

sudo ufw allow 192.168.0.0/24

Les sous-réseaux sont assez compliqués, vous pouvez donc lire notre guide pour travailler avec eux pour en savoir plus.

La limitation de débit est une autre fonctionnalité utile des pare-feu qui peut bloquer les connexions manifestement abusives. Ceci est utilisé pour se protéger contre un attaquant qui tente de forcer brutalement un port SSH ouvert. Évidemment, vous pouvez ajouter le port à la liste blanche pour le protéger entièrement, mais la limitation de débit est utile de toute façon. Par défaut, le débit UFW limite 6 connexions toutes les 30 secondes et il est destiné à être utilisé pour SSH:

sudo ufw limit ssh

Activer UFW

Une fois que vous avez terminé de configurer vos règles, vous pouvez activer UFW. Assurez-vous que SSH sur le port 22 est ouvertou vous vous enfermerez. Si vous le souhaitez, vous pouvez désactiver l'exécution d'UFW au démarrage afin qu'une réinitialisation résout tous les problèmes potentiels:

sudo systemctl disable ufw

Ensuite, vous pouvez activer UFW avec:

sudo ufw enable

Si tout va bien, tu peux courir ufw status pour afficher l'état actuel du pare-feu. Si vous n'êtes pas verrouillé et que le pare-feu est en cours d'exécution, configurez-le pour qu'il s'exécute au démarrage avec:

sudo systemctl enable ufw

Chaque fois que vous apportez des modifications, vous devez recharger le pare-feu avec:

sudo ufw reload

Vous pouvez également activer la journalisation pour enregistrer les connexions à /var/log/:

sudo ufw logging on

Gérer et supprimer des règles

Si vous souhaitez supprimer une règle, vous devrez obtenir son numéro avec:

sudo ufw status numbered

Notez que les nombres commencent à 1 et non à 0. Vous pouvez supprimer une règle par numéro:

sudo ufw delete (number)

Encore une fois, assurez-vous de ne pas supprimer votre règle en gardant le port 22 ouvert. Vous pouvez utiliser le --dry-run paramètre pour que UFW vous demande confirmation:

Si vous apportez des modifications, vous devrez à nouveau recharger le pare-feu.

★★★★★