1 votes

Erreurs de prison et ne démarrera pas

J'ai créé une prison et une action dans le but de prendre des "attaques DDoS", cependant les fichiers de journal montrent des erreurs pour cette prison chaque fois que je redémarre Fail2Ban. La prison et le filtre semblent assez simples, et reproduits dans plusieurs blogs, mais celui que j'ai utilisé pour comparaison se trouve ici.

Voici la prison:

[http-get-dos]
enabled = true
filter = http-get-dos
action =  iptables[name=Http-Get-Dos, port="http,https"]
logpath = %(apache_access_log)s
maxretry = 300
findtime = 300
bantime = 300

et voici le filtre:

# Fichier de configuration Fail2Ban
#
[Definition]

# Option: failregex
# Remarque: Cette regex correspondra à toute entrée GET dans vos journaux
# Vous devriez configurer dans le fichier jail.conf, le maxretry et findtime avec soin

failregex = ^ -.*"(GET|POST).*

# Option: ignoreregex
# Remarque.: regex à ignorer. Si cette regex correspond, la ligne est ignorée.
# Valeurs.: TEXTE
#

Tout cela semble simple, mais pour une raison quelconque, si je redémarre le service après avoir activé cette prison, je vois les erreurs suivantes dans le journal de Fail2Ban:

2017-11-04 12:48:13,296 fail2ban.jail           [1460]: INFO    Création d'une nouvelle prison 'http-get-dos'
2017-11-04 12:48:13,298 fail2ban.jail           [1460]: INFO    La prison 'http-get-dos' utilise un poller
2017-11-04 12:48:13,300 fail2ban.filter         [1460]: INFO    Définir l'encodage du fichier journal de la prison sur UTF-8
2017-11-04 12:48:13,300 fail2ban.jail           [1460]: INFO    Initialisé le backend 'polling'
2017-11-04 12:48:13,303 fail2ban.actions        [1460]: INFO    Définir banTime = 300
2017-11-04 12:48:13,304 fail2ban.filter         [1460]: INFO    Définir findtime = 300
2017-11-04 12:48:13,306 fail2ban.filter         [1460]: INFO    Ajouté fichier journal = /var/log/apache2/access.log
2017-11-04 12:48:13,308 fail2ban.filter         [1460]: INFO    Ajouté fichier journal = /var/log/apache2/other_vhosts_access.log
2017-11-04 12:48:13,309 fail2ban.filter         [1460]: INFO    Définir l'encodage du fichier journal de la prison sur UTF-8
2017-11-04 12:48:13,310 fail2ban.filter         [1460]: INFO    Définir maxRetry = 300

2017-11-04 12:48:14,411 fail2ban.action         [1460]: ERROR   iptables -w -N f2b-Http-Get-Dos
iptables -w -A f2b-Http-Get-Dos -j RETURN
iptables -w -I INPUT -p tcp --dport http,https -j f2b-Http-Get-Dos -- stdout: b''
2017-11-04 12:48:14,441 fail2ban.action         [1460]: ERROR   iptables -w -N f2b-Http-Get-Dos
iptables -w -A f2b-Http-Get-Dos -j RETURN
iptables -w -I INPUT -p tcp --dport http,https -j f2b-Http-Get-Dos -- stderr: b"iptables v1.6.0: invalid port/service `http,https' specified\nTry `iptables -h' or 'iptables --help' for more information.\n"
2017-11-04 12:48:14,458 fail2ban.action         [1460]: ERROR   iptables -w -N f2b-Http-Get-Dos
iptables -w -A f2b-Http-Get-Dos -j RETURN
iptables -w -I INPUT -p tcp --dport http,https -j f2b-Http-Get-Dos -- returned 2
2017-11-04 12:48:14,463 fail2ban.actions        [1460]: ERROR   Impossible de démarrer la prison 'http-get-dos' action 'iptables': Erreur de démarrage
2017-11-04 12:48:20,150 fail2ban.jail           [1460]: INFO    La prison 'http-get-dos' a démarré

Il semble que la partie action de la prison pose problème, cependant je ne comprends pas pourquoi. L'action est similaire à celle utilisée par d'autres prisons.

Avez-vous des idées sur la façon dont je peux résoudre ce problème pour faire fonctionner correctement la prison ?

1voto

ishigoya Points 1028

Je n'ai pas assez de réputation pour commenter, donc je vais poster une réponse ici.

Il semble que cette ligne:

action = iptables[name=Http-Get-Dos, port="http,https"]

passe des variables à iptables, et en raison du port="http,https" vous spécifiez deux ports de destination dans une seule règle iptables. Je n'ai pas trouvé de documentation spécifique à ce sujet, mais cela ne me semble pas correct - je pense que c'est la cause du problème.

Je pense qu'il devrait y avoir des actions distinctes pour HTTP et HTTPS.

MODIFICATION: J'ai trouvé quelques entrées sur Google qui utilisent port="http,https" et ils spécifient iptables-multiport au lieu d'iptables. L'action iptables-multiport semble exécuter iptables avec --match multiport (décrit ici), vous permettant de spécifier plus d'un port à la fois (voir cette question de Server Fault). Donc je pense que l'autre solution serait d'utiliser l'action iptables-multiport.

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