4 votes

Temps de repos maximum avec fail2ban

J'utilise fail2ban/firewalld pour restreindre l'accès d'un bot à un Nginx serveur. Typiquement, la configuration du jail correspondant ressemble à ceci :

[nginx-botsearch]
#banaction = iptables-multiport
enabled = true
filter = nginx-botsearch
logpath = /var/log/nginx*/*access*.log
maxretry = 3
bantime = 3600

Cela fonctionne comme prévu (l'action d'interdiction prend par défaut la valeur suivante firewallcmd-ipset ), c'est-à-dire le iptables -L montre une entrée dans le INPUT_direct chaîne :

REJECT     tcp  --  anywhere             anywhere             multiport dports http,https match-set fail2ban-nginx-botsearch src reject-with icmp-port-unreachable

avec les ipset de fail2ban-nginx-botsearch .

Cependant, j'ai remarqué un comportement étrange lorsque le bantime est augmenté. Tout fonctionne comme prévu pour bantime <= 4294967 . Quand je mets bantime = 4294968 et recharger fail2ban l'entrée dans le iptables est manquante (l'ipset n'est pas créé) et en effet, le test avec, par exemple, la commande ab L'utilité montre que l'interdiction n'est pas appliquée. Il est intéressant de noter qu'en utilisant banaction = iptables-multiport fonctionne même pour les "grands" bantimes. Quelle pourrait être la raison de ce comportement ? J'utilise fail2ban v 0.9.7 sur CentOS 7.

3voto

Conrad Dalton Points 11

Ce n'est pas strictement un fail2ban Il s'agit plutôt d'un problème lié à un bug dans netfilter sur votre noyau. En bref, votre version de ipset a un dépassement d'entier pour timeout de sorte qu'on observe un comportement imprévisible lorsqu'il dépasse un entier de 32 bits.

Vous ne voyez pas cela avec le multiport car il n'utilise pas ce code et s'appuie plutôt sur ses propres dispositifs pour suivre les délais d'attente.

Voici un lien au correctif pour ce problème dans le code de netfilter.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X