Introduction
Dans ce laboratoire, vous approfondirez le contrôle du trafic autorisé à entrer dans votre système avec firewalld.
Imaginez que votre ordinateur est un bâtiment. Par défaut, le pare-feu verrouille toutes les portes. Pour laisser entrer les visiteurs légitimes, comme le trafic web ou les transferts de fichiers, vous devez déverrouiller certaines portes. En réseau, ces portes sont appelées des « ports » ou des « services ».
Vous apprendrez deux façons essentielles de modifier ces règles :
- Temporaire (Runtime) : c'est comme écrire une note sur un tableau blanc. Elle est valable immédiatement, mais elle disparaît lorsque le service de nettoyage passe, par exemple après un redémarrage ou un rechargement du système.
- Permanente : c'est comme graver un panneau dans la pierre. La règle reste présente après les rechargements et les redémarrages.
Cette distinction entre l'état Runtime et l'état permanent est l'un des concepts les plus importants de Firewalld. Elle permet aux administrateurs de tester les modifications en toute sécurité avant de décider de les conserver.
À la fin de ce laboratoire, vous saurez autoriser temporairement le trafic web à des fins de test, ouvrir définitivement un port personnalisé précis et comprendre comment enregistrer vos modifications.
Autoriser temporairement un service
Dans cette étape, vous allez autoriser le trafic du service HTTP.
Remarque concernant l'environnement du laboratoire : lors de la configuration, nous avons défini la zone par défaut sur trusted afin de maintenir votre connexion au terminal. Tous les ports sont donc déjà techniquement ouverts. Nous allons toutefois procéder comme si nous travaillions sur un serveur sécurisé où tout est bloqué, afin que vous puissiez apprendre les commandes correctes pour ouvrir des ports.
Nous allons ajouter la règle http à la configuration Runtime, c'est-à-dire temporaire.
Cette distinction entre l'état Runtime et l'état permanent est l'une des fonctions de sécurité les plus utiles de Firewalld. Elle permet de vérifier qu'une règle fonctionne avant de l'enregistrer dans la configuration à long terme.
Commencez par vérifier les services explicitement autorisés dans votre zone actuelle.
sudo firewall-cmd --list-services
La liste initiale peut être presque vide. Ajoutez maintenant le service http à la liste des services autorisés.
sudo firewall-cmd --add-service=http
Si l'opération réussit, le terminal affiche simplement success.
Vérifiez que le service est maintenant autorisé en affichant de nouveau la liste des services.
sudo firewall-cmd --list-services
Vous devriez maintenant voir http dans la liste. Comme nous n'avons pas demandé au pare-feu de rendre cette règle « permanente », elle ressemble à une note sur un tableau blanc : elle existe uniquement en mémoire pour le moment.
Ouvrir un port de manière permanente
Dans cette étape, vous devez parfois ouvrir directement un numéro de « porte » précis plutôt que d'utiliser un service nommé. Par exemple, le port 8080 est souvent utilisé pour tester des serveurs web.
Le choix entre un service et un port est également important sur le plan conceptuel. Un service est un ensemble nommé qui correspond généralement à un ou plusieurs ports connus, tandis qu'une règle portant directement sur un port est plus littérale et se situe à un niveau plus bas. Les deux approches sont valides, mais les noms de services sont souvent plus faciles à lire et à maintenir.
Pour cette règle, nous voulons qu'elle reste active même après le redémarrage du serveur. Nous utiliserons l'option --permanent.
Exécutez la commande suivante pour ouvrir définitivement le port TCP 8080.
sudo firewall-cmd --permanent --add-port=8080/tcp
La sortie doit être success.
Concept essentiel : lorsque vous utilisez --permanent, vous modifiez le fichier de configuration, la « tablette de pierre », mais vous ne modifiez pas immédiatement le pare-feu actif.
Vérifions-le. Affichez les ports actuellement actifs dans la configuration Runtime.
sudo firewall-cmd --list-ports
La liste sera vide ou ne contiendra pas 8080. Le pare-feu ne connaît pas encore cette nouvelle règle, car il n'a pas encore relu le fichier de configuration mis à jour.
Affichez maintenant la configuration permanente afin de confirmer que votre règle est bien enregistrée sur le disque.
sudo firewall-cmd --permanent --list-ports
Vous devriez voir 8080/tcp. Cela confirme que la règle est « en attente » et sera appliquée lors du prochain chargement de la configuration du pare-feu.
Recharger le pare-feu
Dans cette étape, vous vous trouvez maintenant dans la situation suivante :
- Une règle temporaire autorise
httpdepuis l'étape 1. - Une règle permanente autorise
8080. Elle est enregistrée, mais pas encore active, depuis l'étape 2.
Pour activer la règle permanente, vous devez recharger le pare-feu. Firewalld relira alors ses fichiers de configuration et les appliquera.
Concrètement, le rechargement est le point de rencontre entre les configurations Runtime et permanentes. Il remplace l'ensemble des règles actives en mémoire par les règles définies sur le disque. C'est pourquoi les expérimentations temporaires disparaissent, sauf si vous avez choisi de les enregistrer comme permanentes.
Avertissement : le rechargement réinitialise le pare-feu selon l'état décrit dans les fichiers de configuration. Comme votre règle http était uniquement temporaire et ne figurait pas dans le fichier de configuration, elle sera supprimée.
Exécutez la commande de rechargement.
sudo firewall-cmd --reload
Vérifions maintenant le résultat. Commencez par vérifier si le port 8080 est actif.
sudo firewall-cmd --list-ports
Opération réussie ! Vous devriez voir 8080/tcp. La règle permanente a été chargée dans le système actif.
Vérifiez maintenant ce qu'il est advenu du service http.
sudo firewall-cmd --list-services
Le service http a disparu. Cela prouve que le rechargement supprime toutes les modifications qui n'existaient que dans la configuration Runtime. C'est un piège courant pour les débutants : pensez toujours à rendre permanentes vos règles importantes !
Vérifier la configuration complète
Dans cette étape, vous utiliserez la commande la plus utile pour gérer quotidiennement le pare-feu. Au lieu de vérifier séparément les services et les ports, vous pouvez afficher toute la configuration de la zone active en une seule fois.
Cette vue d'ensemble est utile, car les erreurs de pare-feu viennent souvent du fait que l'on oublie que plusieurs types de règles se combinent pour déterminer le comportement réel de l'hôte. L'affichage de l'ensemble de la zone réduit ce risque.
Utilisez l'option --list-all pour obtenir cette vue d'ensemble.
sudo firewall-cmd --list-all
La sortie fournit un résumé complet de la zone active, qui est trusted dans la configuration de notre laboratoire :
- target:
ACCEPT. - interfaces: l'interface réseau active, par exemple
eth0. - services: la liste des services standard autorisés. Notez que
httpest absent, car nous l'avons perdu après le rechargement. - ports: la liste des ports personnalisés ouverts, par exemple
8080/tcp.
Cette commande est particulièrement utile pour le dépannage, car elle indique exactement ce que fait le pare-feu à cet instant.
Résumé
Dans ce laboratoire, vous avez maîtrisé la différence entre les règles de pare-feu temporaires et permanentes. Vous avez appris :
- Règles Runtime : ajouter immédiatement, mais temporairement, un service comme
http. - Règles permanentes : utiliser l'option
--permanentpour enregistrer une règle, comme l'ouverture du port 8080, afin qu'elle reste disponible ultérieurement. - Rechargement : appliquer les modifications permanentes à l'environnement Runtime avec
--reload, en sachant que les règles temporaires sont alors supprimées. - Vérification : utiliser
--list-allpour afficher l'état complet du pare-feu.
Vous disposez maintenant de bases solides pour contrôler l'accès réseau de manière sécurisée et persistante.



