1.12. Priorité aux règles riches
Par défaut, les règles riches sont organisées en fonction de leur action. Par exemple, les règles deny
sont prioritaires sur les règles allow
. Le paramètre priority
des règles riches permet aux administrateurs de contrôler finement les règles riches et leur ordre d'exécution.
1.12.1. Comment le paramètre de priorité organise les règles en différentes chaînes
Dans une règle riche, le paramètre priority
peut être défini comme n'importe quel nombre compris entre -32768
et 32767
, les valeurs inférieures étant prioritaires.
Le service firewalld
organise les règles en fonction de leur valeur prioritaire dans différentes chaînes :
-
Priorité inférieure à 0 : la règle est redirigée vers une chaîne avec le suffixe
_pre
. -
Priorité supérieure à 0 : la règle est redirigée vers une chaîne avec le suffixe
_post
. -
Priorité égale à 0 : en fonction de l'action, la règle est redirigée vers une chaîne dont l'action est
_log
,_deny
ou_allow
.
À l'intérieur de ces sous-chaînes, firewalld
trie les règles en fonction de leur valeur de priorité.
1.12.2. Définition de la priorité d'une règle riche
L'exemple suivant montre comment créer une règle riche qui utilise le paramètre priority
pour enregistrer tout le trafic qui n'est pas autorisé ou refusé par d'autres règles. Vous pouvez utiliser cette règle pour signaler un trafic inattendu.
Procédure
Ajoutez une règle riche avec une très faible priorité pour enregistrer tout le trafic qui n'a pas été pris en compte par d'autres règles :
# firewall-cmd --add-rich-rule='rule priority=32767 log prefix="UNEXPECTED: " limit value="5/m"'
La commande limite en outre le nombre d'entrées dans le journal à
5
par minute.
Vérification
Affichez la règle
nftables
créée par la commande de l'étape précédente :# nft list chain inet firewalld filter_IN_public_post table inet firewalld { chain filter_IN_public_post { log prefix "UNEXPECTED: " limit rate 5/minute } }