
Sur Red Hat (RHEL) et distributions dérivées (Fedora, CentOS, Alma Linux…), le pare-feu par défaut est firewalld. Il utilise le concept de « zones » pour définir le niveau de confiance des connexions réseau.
Voici comment le configurer efficacement via la ligne de commande firewall-cmd.
Vérification de l’état
Avant toute modification, vérifiez si le service est actif :
-
Vérifier le statut :
sudo firewall-cmd --state -
Démarrer et activer au boot :
sudo systemctl enable --now firewalld
Gestion des Zones
Les zones permettent d’appliquer des règles différentes selon l’interface réseau (ex: public, work, trusted).
-
Voir la zone par défaut :
firewall-cmd --get-default-zone -
Lister toutes les règles de la zone active :
sudo firewall-cmd --list-all -
Changer l’interface d’une zone (ex: eth0 vers public) :
sudo firewall-cmd --zone=public --change-interface=eth0 --permanent
Ouverture de ports et services
Via les services (plus simple)
Red Hat possède une liste de services préconfigurés (http, https, ssh, etc.).
-
Autoriser HTTP :
sudo firewall-cmd --add-service=http --permanent -
Supprimer un service :
sudo firewall-cmd --remove-service=ftp --permanent
Via les ports (plus précis)
Si votre application utilise un port spécifique (ex: 8080) :
-
Ouvrir un port TCP :
sudo firewall-cmd --add-port=8080/tcp --permanent -
Ouvrir une plage de ports :
sudo firewall-cmd --add-port=5000-5010/udp --permanent
Appliquer les changements
Remarque : l’option --permanent écrit la règle sur le disque mais ne l’applique pas immédiatement à la session en cours.
Pour rendre vos modifications effectives, vous devez recharger la configuration : sudo firewall-cmd --reload
Règles avancées (Rich Rules)
Si vous avez besoin de restreindre l’accès à une adresse IP spécifique (ex: autoriser SSH uniquement pour une IP) :
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" accept' sudo firewall-cmd --reload
Exemples
Ouvrir le port 8060 pour tout le monde
sudo firewall-cmd --permanent --add-port=8060/tcp
Ouvrir le port 5432 (PostgreSQL) pour une seule IP
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.101" port protocol="tcp" port="5432" accept'






