Un ipset est un groupe nommé d'adresses IP (hôtes ou réseaux) ou d'adresses MAC. firewalld pourra utiliser ces ensembles comme sources sur les zones (avec le préfixe ipset:) ou dans les règles enrichies (rich rules)
La création d'un ipset exige la présence de l'argument --permanent. Pour qu'il puisse être disponible dans l'environnement d'exécution (runtime environment), il faut recharger le service après la commande de création.
# Par défaut l'ensemble contient des adresses IPv4 firewall-cmd --permanent --new-ipset=blacklisted-hosts --type=hash:ip # Creation d'un ipset avec des adresses ipv6 firewall-cmd --permanent --option=family=inet6 --new-ipset=blacklisted-hosts-v6 --type=hash:ip # MAJ de l'environnement d'exécution firewall-cmd --reload
--permanent. En revanche la mise à jour du contenu de l'ensemble pourra être faite dans l'environnement d'exécution.
Lors de la création il est possible de spécifier quelques options comme vu précédemment via l'argument --option. Les options disponibles sont :
family: la valeur peut être inet ou inet6 ;timeout: suivie d'une valeur entière, TTL en secondes d'un élément de la liste;hashsize: valeur entière ;maxelem: valeur entière, nombre d'éléments max de l'ensemble.# Création d'un ipset dont les éléments sont temporaires firewall-cmd --permanent --option=timeout=240 --option=maxelem=64 --new-ipset=temporary-blacklist --type=hash:ip firewall-cmd --permanent --ipset=temporary-blacklist --set-description="Rejette tout trafic des membres de la liste pendant 4 minutes." firewall-cmd --permanent --zone=block --add-source=ipset:temporary-blacklist
# Lister les ensembles existants firewall-cmd --get-ipsets # Détails de l'ensemble "blacklisted-hosts" firewall-cmd --info-ipset=blacklisted-hosts #Ajouter un élément à l'ensemble firewall-cmd --ipset=blacklisted-hosts --add-entry=192.168.123.10 # Affecter l'ensemble comme source de la zone block pour rejeter tout trafic firewall-cmd --zone=drop --add-source=ipset:blacklisted-hosts