Configurer Firewalld

Firewalld est le pare-feu qui équipe Linux Red Hat, CentOS Stream, AlmaLinux, Rocky Linux, Oracle Linux et Fedora. Introduit sur Fedora 15, Firewalld, se substituant à Iptables, est activé par défaut depuis Fedora 18. Il est sensé vous simplifier la vie. Pour une gestion plus fine du pare-feu, je vous recommande toutefois de revenir à ce bon vieux Iptables ! ;+)

Les outils de configuration

Si vous travaillez en mode graphique, vous disposez d’une console GUI que vous devez l’installer au préalable par la commande :

dnf install firewall-applet

Firewall-config, l'interface graphique de configuration de Firewalld

Sinon, vous disposez de la commande firewall-cmd.

La zone par défaut

Pour connaître la zone par défaut utilisée par défaut parmi les zones pré-configurées, tapez la commande :

firewall-cmd --get-default-zone

Ajouter un port

Si vous installez un serveur Apache sur votre Linux, vous devez ajouter les applications Tcp/80 et Tcp/443. Dans l’exemple ci-dessous, la zone par défaut est la zone public.

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent

Vous pouvez, de manière alternative, ajouter les services http, https pré-configurés :

firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --add-service=https --permanent

Changement de port pour le SSH

Après avoir changé le port d’écoute dans le fichier /etc/ssh/sshd_config et rechargé le service ssh, vous devez ajouter le nouveau port d’écoute 2222 et supprimer le service ssh pré-configuré sur le port 22 :

firewall-cmd --zone=public --add-port=2222/tcp --permanent
firewall-cmd --zone=public --remove-service=ssh --permanent

Recharger le service Firewalld

Le service Firewalld peut se recharger de deux façons :

firewall-cmd --reload
systemctl reload firewalld

Fichiers utilisés par Firewalld

Les zones et services sont définies dans /usr/lib/firewalld. Vous y trouverez les dossiers qui contiennent les fichiers XML définissant ces zones et ces services.

Les fichiers de configuration de Firewalld

Ils sont stockés dans le dossier /etc/firewalld. Le plus important d’entre eux est le fichier /etc/firewalld/zones/public.xml, dans lequel vous retrouverez la liste des services et des ports que vous avez ouverts :

<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>Public</description>
  <service name="dhcpv6-client"/>
  <service name="http"/>
  <port protocol="tcp" port="443"/>
  <port protocol="tcp" port="2222"/>
</zone>

Limites de Firewalld

Je n’ai rien vu dans Firewalld permettant le filtrage des paquets sortants, même si cela reste possible. Par ailleurs, contrairement à Iptables 1.6, Firewalld ne permet pas le filtrage par processus ! Pour des utilisations plus avancées du pare-feu sous Linux, je vous conseille d’en revenir à ce bon vieux Iptables. ;+)

Documentation

Sécurité /