Outils pour utilisateurs

Outils du site


netadmin:firewalld

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
netadmin:firewalld [2025/10/11 10:29] yoannnetadmin:firewalld [2026/07/19 12:01] (Version actuelle) yoann
Ligne 5: Ligne 5:
  
 :TODO: :TODO:
 +
 +===== Les zones =====
 +
 +firewalld s'appuie sur la notion de zones : les interfaces réseau sont associées à des zones. Chaque zone contient un ensembles de règles avec un comportement par défaut.
 +
 +Les zones pré-existantes :
 +
 +  * **drop** : Niveau de confiance minimal, connexions entrantes supprimées sans notification et connexions sortantes autorisées ;
 +  * **block** : Niveau de confiance minimal, connexions entrantes rejetées avec notification (''icmp-host-prohibited'' ou ''icmp6-adm-prohibited'') et connexions sortantes autorisées ;
 +  * **public** : Niveau de confiance bas, certains services entrants acceptés (ssh par exemple) et on peut en ajouter à la demande à l'aide des règles.
 +  * **external** : Zone dans laquelle on place une interface reliée à une réseau externe (WAN par exemple) quand on utilise le serveur comme passerelle. Le ''MASQUERADE NAT'' est activé.
 +  * **internal** : Autre extrémité de la zone de **external** quand on utilise le serveur comme passerelle. Cette zone est de bonne confiance, et on peut éditer les services acceptés avec des règles ;
 +  * **dmz** : Zone réservée pour les serveurs en ''DMZ'' (zone démilitarisée). Quelques connexions entrantes sont autorisées ;
 +  * **work** : Bon niveau de confiance. Zone utilisée pour les machines sur réseau d'entreprise. La plupart des connexions entrantes sont autorisées, et on peut éditer les services acceptés avec des règles ;
 +  * **home** : Bon niveau de confiance. Zone utilisée pour une zone personnelle. La plupart des connexions entrantes sont autorisées, et on peut éditer les services acceptés avec des règles ;
 +  * **trusted** : Niveau de confiance élevée. Zone utilisée pour les machines qui se font 100% confiance. A utiliser avec précaution évidemment.
 +
 +<code bash>
 +# Lister les zones
 +firewall-cmd --get-zones
 +
 +# Lister les zones utilisées
 +firewall-cmd --get-active-zones
 +
 +# Détail du paramétrage d'une zone
 +firewall-cmd --info-zone MyZone
 +
 +# Lister les zones et leur paramétrage
 +firewall-cmd --list-all-zones
 +
 +# Créer une zone
 +# la zone est crée mais ne contient aucune règle
 +firewall-cmd --new-zone=MyNewZone --permanent
 +firewall-cmd --reload
 +</code>
 +
 +Lorsque qu'on invoque ''firewall-cmd'', les effets de la commande s'appliquent par défaut :
 +  * sur une zone ;
 +  * de façon transitoire (il faudra utiliser l'option ''%%--permanent%%'' pour que la règle soit conservée après redémarrage/rechargement du service). 
 +
 +<code bash>
 +# Afficher la zone sur laquelle s'applique
 +# par défaut les actions de la commande
 +firewalld-cmd --get-default-zone
 +</code> 
 +
 +Pour changer la zone par défaut :
 +
 +<code bash>
 +# Passer la zone 'work' comme zone par défaut
 +firewall-cmd --set-default-zone=work
 +</code>
 +
 +Aux zones on peut affecter des interfaces ou des IP/réseaux source :
 +
 +<code bash>
 +firewall-cmd --zone=work --add-interface=eno1 [--permanent]
 +firewall-cmd --zone=work --add-source=192.168.22.123 [--permanent]
 +firewall-cmd --zone=work --add-source=192.168.21.0/24 [--permanent]
 +</code>
 +
 +===== Création d'une zone personnalisée =====
 +
 +On peut définir de nouvelles zones.
 +
 +<note>
 +La commande requiert l'usage de l'option ''%%--permanent%%''
 +</note>
 +
 +<code bash>
 +firewall-cmd --permanent --new-zone=MyZone
 +firewall-cmd --reload
 +</code>
 +
 +La zone utilise un comportement par défaut s'appliquant au **trafic entrant** lorsqu' aucune correspondance n'a été trouvée (REJECT). On peut redéfinir se comportement via l'option ''%%--set-target%%'' 
 +
 +<code bash>
 +# firewall-cmd --permanent --zone=zone-name --set-target=<default|ACCEPT|REJECT|DROP>
 +
 +firewall-cmd --permanent --zone=MyZone --set-target=REJECT
 +firewall-cmd --reload
 +</code>
 +
 +
  
  
Ligne 63: Ligne 147:
 sudo firewall-cmd --zone=public --list-rich-rules sudo firewall-cmd --zone=public --list-rich-rules
 </code> </code>
 +
 +Une règle enrichie peut contenir une plage de ports consécutifs mais pas d'ensemble anonyme nft. Pour plusieurs ports non consécutifs on créera plusieurs règles.
  
  
 ===== Sauvegarder la configuration ===== ===== Sauvegarder la configuration =====
 +
 +Une fois les règles validées, on peut sauvegarder la configuration en cours d'exécution (running config ou runtime) :
 +
 +<code bash>
 +firewall-cmd --runtime-to-permanent
 +firewall-cmd --complete-reload
 +</code>
 +
  
 Pour sauvegarder, importer ou exporter la configuration du pare-feu il suffit de copier le répertoire **''/etc/firewalld''**. Pour sauvegarder, importer ou exporter la configuration du pare-feu il suffit de copier le répertoire **''/etc/firewalld''**.
Ligne 72: Ligne 166:
   * ''firewalld.conf'' : Fichier de configuration principal ;    * ''firewalld.conf'' : Fichier de configuration principal ; 
   * Les dossiers ''zones'', ''helpers'', ''icmptypes'', ''ipsets'' et ''services''.   * Les dossiers ''zones'', ''helpers'', ''icmptypes'', ''ipsets'' et ''services''.
 +
 +===== Réinitialiser la configuration =====
 +
 +<code bash>
 +firewall-cmd --reset-to-defaults
 +</code>
 +
 +
 +===== Verrouillage de la configuration (lockdown) =====
 +
 +Par défaut, les applications peuvent s'appuyer sur D-BUS pour modifier la configuration du pare-feu.
 +
 +===== Mode panic =====
 +
 +Pour isoler la machine du réseau, on peut basculer rapidement en mode panic : cela revient à couper les connexions actives et à empêcher tout nouveau trafic entrant et sortant.
 +
 +<code bash>
 +firewall-cmd --panic-on
 +
 +firewall-cmd --panic-off
 +</code>
 +
 +Pour vérifier si le mode panic est actif :
 +<code bash>
 +firewall-cmd --query-panic
 +</code>
  
  
 ===== Références ===== ===== Références =====
  
 +  * https://firewalld.org/
   * https://fr.linux-console.net/?p=34402   * https://fr.linux-console.net/?p=34402
   * https://www.linuxtricks.fr/wiki/firewalld-le-pare-feu-facile-sous-linux   * https://www.linuxtricks.fr/wiki/firewalld-le-pare-feu-facile-sous-linux
 +  * https://www.golinuxcloud.com/firewalld-cheat-sheet/
   * https://linuxhandbook.com/firewalld-cmd/   * https://linuxhandbook.com/firewalld-cmd/
   * https://blog.stephane-robert.info/docs/securiser/reseaux/firewalld/   * https://blog.stephane-robert.info/docs/securiser/reseaux/firewalld/
 +  * [[https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/security_guide/configuring_complex_firewall_rules_with_the_rich-language_syntax|Syntaxe des règles enrichies de firewalld (redhat.com) (en)]]
 +  * https://alexhost.com/fr/faq/an-introduction-to-firewalld/
 +  * https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/security_guide/configuring_firewall_lockdown
netadmin/firewalld.1760178573.txt.gz · Dernière modification : 2025/10/11 10:29 de yoann