Table of Contents

Mémo Firewalld

firewalld est une surcouche d'abstraction de configuration d'iptables ou nftables, les firewalls intégrés dans le noyaux Linux.

Installation/Activation

# 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

Les zones

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

Les services

# 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