2 votes

Fail2ban a un maxretry de 3 mais je vois des échecs d'authentification répétés 5 fois

Je suis sous Ubuntu 16.04 avec ssh activé via ufw et j'ai configuré fail2ban pour activer les jails [sshd] et [sshd-ddos] avec un maxretry de 3 (c'est-à-dire que je veux interdire les adresses IP qui échouent à s'authentifier 3 fois). Lorsque je regarde le journal d'authentification, je vois quelques adresses IP différentes qui ont échoué à s'authentifier 5 fois et ont donc été déconnectées pour trop d'échecs d'authentification. Pourquoi ces adresses IP ne sont-elles pas interdites? Je m'attends totalement à ce que j'ai mal configuré fail2ban ou que je ne comprenne pas son comportement prévu, mais d'après les tutoriels que j'ai lus (DigitalOcean, autres résultats de recherche), cette configuration devrait faire ce que j'attends. Veuillez noter également que fail2ban interdit avec succès certaines adresses IP, car je peux voir des interdictions (et des débannissements) dans le journal fail2ban.

Voici les lignes de journal pertinentes pour l'une des adresses IP avec le problème (adresse IP et hôte redactés):

"/var/log/fail2ban.log"

2017-02-17 13:23:36,148 fail2ban.filter         [24793]: INFO    [sshd] Found [adresse IP]
2017-02-17 13:23:38,153 fail2ban.filter         [24793]: INFO    [sshd] Found [adresse IP]

"/var/log/auth.log"

Feb 17 13:23:36 [hôte] sshd[15498]: pam_unix(sshd:auth): échec d'authentification; logname= uid=0 euid=0 tty=ssh ruser= rhost=[adresse IP]  us
er=root
Feb 17 13:23:38 [hôte] sshd[15498]: Mot de passe incorrect pour root depuis [adresse IP] port 9498 ssh2
Feb 17 13:23:49 [hôte] sshd[15498]: message répété 5 fois: [ Mot de passe incorrect pour root depuis [adresse IP] port 9498 ssh2]
Feb 17 13:23:49 [hôte] sshd[15498]: erreur: dépassement de la limite d'essais d'authentification pour root depuis [adresse IP] port 9498 ssh2 [preauth]
Feb 17 13:23:49 [hôte] sshd[15498]: Déconnexion : Trop d'échecs d'authentification [preauth]
Feb 17 13:23:49 [hôte] sshd[15498]: PAM 5 autres échecs d'authentification; logname= uid=0 euid=0 tty=ssh ruser= rhost=[adresse IP]  user=root
Feb 17 13:23:49 [hôte] sshd[15498]: Le service PAM(sshd) ignore les tentatives maximales ; 6 > 3

Voici les lignes de configuration de fail2ban pertinentes (hors commentaires), qui sont principalement une copie directe de jail.conf avec les valeurs par défaut de bantime, findtime et maxretry modifiées, et les jails [sshd], [sshd-ddos] et [recidive] activées :

"/etc/fail2ban/jail.local"

[DEFAULT]

ignoreip = 127.0.0.1/8
bantime = 21600
findtime = 3600
maxretry = 3
backend = auto
usedns = warn
logencoding = auto
enabled = false
filter = %(__name__)s
destemail = root@localhost
sender = root@localhost
mta = sendmail
protocol = tcp
chain = INPUT
port = 0:65535
banaction = iptables-multiport
action_ = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
action_mw = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
            %(mta)s-whois[name=%(__name__)s, dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s"]
action_mwl = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
             %(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"]
action_xarf = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
             xarf-login-attack[service=%(__name__)s, sender="%(sender)s", logpath=%(logpath)s, port="%(port)s"]
action_cf_mwl = cloudflare[cfuser="%(cfemail)s", cftoken="%(cfapikey)s"]
                %(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"]
action_blocklist_de  = blocklist_de[email="%(sender)s", service=%(filter)s, apikey="%(blocklist_de_apikey)s"]
action_badips = badips.py[category="%(name)s", banaction="%(banaction)s"]

[sshd]

enabled = true
port    = ssh
logpath = %(sshd_log)s

[sshd-ddos]
# Cette prison correspond à la configuration standard de Fail2ban.
# L'action mail-whois envoie un e-mail de notification avec une demande whois
# dans le corps.
enabled = true
port    = ssh
logpath = %(sshd_log)s

[recidive]

enabled  = true
logpath  = /var/log/fail2ban.log
banaction = iptables-allports
bantime  = 604800  ; 1 semaine
findtime = 86400   ; 1 jour
maxretry = 5

Investigation supplémentaire :

sudo fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d

le fichier journal est correct comme /var/log/auth.log Lignes : 1127 lignes, 0 ignorées, 125 correspondant, 1002 manquées [traitées en 1,77 sec]

sudo iptables -L -n | less

Je peux voir certaines adresses IP interdites (avec REJET) sous "Chaîne f2b-sshd (1 référence)""

3voto

Jakuje Points 9351

Fail2ban ne voit que les journaux au format standard et compte le nombre de journaux apparus pendant un certain laps de temps. De plus, votre syslog fusionne les mêmes journaux sous une forme agrégée, ce qui empêche cette analyse :

Feb 17 13:23:49 [hôte] sshd[15498]: message répété 5 fois : [Échec de mot de passe pour root depuis [adresse IP] port 9498 ssh2]

Généralement, un échec d'authentification est considéré comme une connexion qui n'a pas réussi à s'authentifier. Mais cette seule connexion peut comporter plusieurs "tentatives d'authentification par mot de passe" (combien dépend de la configuration du client NumberOfPasswordPrompts et du serveur MaxAuthTries).

Lorsque vous configurez fail2ban, il est bon de savoir comment les choses fonctionnent et lors de la définition d'une politique, de savoir ce que cela signifie. Dans ce cas, il s'agit d'un comportement attendu et si vous souhaitez limiter davantage les tentatives d'authentification, vous devez ajuster la configuration de sshd.

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