Linux : créer une règle firewalld

Récemment j’ai dû créer une règle sur firewalld pour autoriser un agent Zabbix à communiquer. Comme je n’avais jamais utilisé cette solution jusque là j’ai un peu galéré. Voici ma procédure.

Faire un firewall-cmd --get-services. Ça va afficher la liste de tous les services gérés par firewalld. Normalement zabbix-agent n’est pas dedans. On va l’ajouter.

Créez le fichier /etc/firewalld/services/zabbix-agent.xml avec pour contenu :

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>ZABBIX-AGENT</short>
  <description>Flux for zabbix-agent service.</description>
  <port protocol="tcp" port="10050"/>
</service>

Ensuite il faut recharger la configuration en lançant ces quatres commandes :

firewall-cmd --reload
firewall-cmd --add-service=zabbix-agent
firewall-cmd --permanent --add-service=zabbix-agent
firewall-cmd --reload

Si l’option --permanent n’est pas présente, cette configuration ne sera pas conservée après un redémarrage. Si l’option est présente, la configuration ne sera appliquée qu’à partir du redémarrage.

Je ne sais pas pourquoi il faut faire deux fois le --reload. Mais j’ai constaté que s’il n’est fait qu’une seule fois (quelque soit son emplacement), ça ne marche pas.