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/09/17 10:00] (Version actuelle) yoann
Ligne 4: Ligne 4:
 ====== Pare-feu firewalld ====== ====== Pare-feu firewalld ======
  
-:TODO:+===== Installation ===== 
 + 
 +<code bash> 
 +apt install -y firewalld 
 + 
 +# Vérifier l'état du service après installation 
 +systemctl status firewalld.service 
 + 
 +</code> 
 + 
 +A ce stade, le service s'exécute les communications entrantes sont bloquées. Il va falloir paramétrer correctement le pare-feu, c'est à dire associer les interfaces aux zones et définir les trafics légitimes sur ces zones.  
 + 
 +===== 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 157:
 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 176:
   * ''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