Datasheet/Firewalld
__NOTITLE__
Firewalld
Gestion du firewall
Introduction
Firewalld est une surcouche aux outils netfilter traditionnels: iptables, ip6tables et ebtables qui permet une gestion dynamique des règles, c'est à dire que les règles sont appliquées sans le redémarrage complet du parefeu. Les règles existantes restent donc en place, et les modules noyaux complémentaires utilisés ne sont pas déchargés.
Avec iptables en direct, il fallait soit ré-appliquer l'ensemble des règles, soit appliqué la modification au runtime (non triviale car les règles sont forcément empilées par le dessus), puis aux fichiers pour le prochain redémarrage.
Avec firewalld, il n'y a plus de période (très courte) sans protection, ni de rupture dans le suivi des connexions (related established)
Les fichiers de configurations:
- configuration par défaut dans des fichiers au format XML dans le répertoire <path>/usr/lib/firewalld</path>. Ils sont susceptibles d'être modifiés par une mise à jour.
- configuration effectuée par l'administrateur ou les utilisateurs dans le répertoire <path>/etc/firewalld</path>.
Les zones
FirewallD intègre une notion de zones de réseaux.
- A chaque zone de réseau est associé un ensemble de services réseaux accessibles de l'extérieur, suivant la confiance que l'on accorde à cet "extérieur".
- Les interfaces réseaux (ifaces) peuvent être affectées à une zone de réseau.
Détails des zones:
- trusted (non modifiable): un vLAN dédié considéré comme totalement fiable (Réseau dédié pour du RAID sur IP, etc...).
- home: un LAN considéré comme partielement fiable
- work: un autre LAN considéré comme partielement fiable
- internal: un autre LAN considéré comme partielement fiable
- dmz: une DMZ très peu fiable (sans DHCP)
- public: un réseau non fiable
- external: un réseau non fiable (sans DHCP)
- block (non modifiable): l'intégralité du traffic est bloqué (reject)
- drop (non modifiable): l'intégralité du traffic est ignoré (drop)
Les commandes
Certaines commandes n'ont pas de sortie, il faut donc analyser le code de retour.
Commandes de statut
- Statut du firewall
firewall-cmd --state
- Obtenir la zone par défaut
firewall-cmd --get-default-zone
- Obtenir la zone courante
firewall-cmd --get-active-zone
- Obtenir la zone associé à l'interfcae réseau eth0
firewall-cmd --get-zone-of-interface=eth0
- Lister les services autorisés pour la zone public
firewall-cmd --zone=public --list-services
Commandes de modification
Les commandes persistantes doivent être suivi d'un rechargement du service (reload)
- Reload du firewall (sans perte d'information sur le suivi de connexion)
firewall-cmd --reload
- Ouvrir le firewall (runtime only) pour les connexions http
firewall-cmd --add-service=smtp
- Ouvrir le firewall (runtime et persistant) pour les connexions http
firewall-cmd --persistant --add-service=smtp
- Fermer le firewall (runtime et persistant) pour les connexions http
firewall-cmd --persistant --remove-service=smtp
- Ouvrir le firewall (runtime et persistant) pour les connexions sur le port TCP 8080
firewall-cmd --persistant --add-port=8080/tcp
- Bloquer une adresse en particulier (runtime et persistant)
firewall-cmd --persistant --add-rich-rule="rule family=ipv4 source address=115.0.0.0/8 drop"
