Configurer Firewalld
Firewalld est le « nouveau » service pare-feu qui équipe Linux Centos 7 et Red Hat 7. 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 de revenir à ce bon vieux Iptables ! ;+)
Les outils de configuration
Si vous travaillez en mode graphique, vous disposez d’une console accessible à partir de l’interface Gnome. vous devez l’installer au préalable par la commande :
yum install firewall-config firewall-applet
Sinon, vous disposez de la commande firewall-cmd.
La zone public
Par défaut, lors de l’installation de votre distribution Linux Centos / Red Hat/ Fedora, Firewalld utilise la zone « public » associée à votre carte enp0s3.
firewall-cmd --get-active-zones firewall-cmd --get-zone-of-interface=enp0s3
Vous pouvez définir cette zone en ajoutant au fichier /etc/sysconfig/network-scripts/ifcfg-enp0s3 :
ZONE=public
Pour associer la zone à votre carte, tapez :
firewall-cmd --zone=public --add-interface=enp0s3
Pour définir la zone public comme étant la zone par défaut :
firewall-cmd --set-default-zone=public
Ajouter un port
Si vous installez un serveur Apache sur votre Linux, vous devez ajouter les applications Tcp/80 et Tcp/443. Firewalld a rendu la syntaxe extrêmement simple :
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. 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
- Using Firewalls (Red Hat us)
- Firewalld (Fedora us)
- Parefeu – firewall – FirewallD (Fedora fr)