firewalld est une surcouche d'abstraction de configuration d'iptables ou nftables, les firewalls intégrés dans le noyaux Linux.
# installation yum install firewalld # vérification de l'état du service: systemctl status firewalld # vérification du lancement systemctl is-active firewalld # ou firewall-cmd --state systemctl start firewalld # vérification du lancement automatique au démarrage systemctl is-enabled firewalld systemctl enable firewalld
firewalld fonctionne comme les équipements Cisco avec une configuration courante (running-config) appliquée immédiatement et une configuration enregistrée (startup-config) qui est sauvegardée après un redémarrage. Pour conserver de façon permanente les modifications, utiliser le paramètre --permanent
dans une ligne de commande, ou enregistrer toute la configuration actuelle avec firewall-cmd --runtime-to-permanent
La zone par défaut est dans laquelle sont positionnées toutes les interfaces à l'installation, et sur laquelle s'appliqueront les commandes si on ne précise pas la zone.
# Afficher/modifier la zone par défaut firewall-cmd --get-default-zone firewall-cmd --set-default-zone=home # Zones existantes firewall-cmd --get-zones # Zones utilisées firewall-cmd --get-active-zones
# Zone par défaut: firewall-cmd --list-all # Zone "trusted": firewall-cmd --list-all --zone=trusted # Toutes les zones: firewall-cmd --list-all-zones
# Ajouter l'interface eth0 à la zone "home" #(cela supprime les précédents filtrage pour cette interface) firewall-cmd --zone=home --change-interface=eth0 # ajouter un filtrage entrant firewall-cmd --zone=home --add-source=10.0.32.4 # Créer une nouvelle zone (--permanent est obligatoire) : firewall-cmd --new-zone=nouvellezone --permanent
# Lister les services existants firewall-cmd --get-services # Ouvrir un service à une zone firewall-cmd --zone=public --add-service=http # Ouvrir un ou des port dont le service n'existe pas firewall-cmd --zone=public --add-port=5000/tcp firewall-cmd --zone=public --add-port=5000-5500/tcp
On peut créer un nouveau service le définissant dans un fichier éponyme “.xml” dans /etc/firewalld/services
(s'inspirer des fichiers existants). Relancer ensuite le service : firewall-cmd --reload