OVH Community, your new community space.

FAIL2BAN - fonctionnement et paramétrage


nowwhat
02/04/2015, 22h28
Citation Envoyé par Eric A
.....
Je constate en plus dans chaque mail, que ce sont 5 tentatives consécutives qui sont opérées, pourquoi le bannissement ne se fait pas dès la première tentative, je sèche...
Google fail2ban maxtry
Si ça n'a pas l'air de marcher, t'as fait quelque chose qu'il fallait pas.
T'as redémarrer fail2ban ?

Que donne:
fail2ban-client status
?
fail2ban-client -d
?
Plus clair encore:
fail2ban-client -d | grep 'maxretry'
?

PS: donc le cite " www.william-vital.fr" (= 91.121.7.38) te spam avec des mails ?

Sinon: fail2ban chez moi : http://www.test-domaine.fr/munin/pap.../fail2ban.html

Ton image https://www.dropbox.com/s/75of1o57hu...32.09.png?dl=0 liste que des bans qui ont été trouvé par le filtre "ssh".
Qui filtre que le le log "auth.log" pour des messages lié au ssh.

Pour le mail, il te faut des filtres genre;
[ /etc/fail2ban/filter.d/couriersmtp.conf]
Code:
# Fail2Ban configuration file
#
# Author: Cyril Jaquier
#
# $Revision$
#

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf

[Definition]

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P[\w\-.^_]+)
# Values:  TEXT
#
_daemon = courieresmtpd

failregex = ^%(__prefix_line)serror,relay=,.*: 550 User unknown\.$


# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =
[/etc/fail2ban/filter.d/Postfix.conf]
Code:
# Fail2Ban configuration file
#
# Author: Cyril Jaquier
#
# $Revision$
#

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf

[Definition]

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P[\w\-.^_]+)
# Values:  TEXT
#
_daemon = postfix/smtpd

failregex = NOQUEUE: reject: RCPT from \S+\[\]: 554 5\.7\.1 .*$
 						lost connection after UNKNOWN from unknown\[\]$

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =
Attention, ce deux filtres sont valable pour mon installation 'failban' sur un OS Debian, probablement pas du tout pour un OS non standard comme le R3.
R2 = 'OS type "débrouille toi"'

http://www.fail2ban.org/wiki/index.p...neral_settings - et tu trouve que 'maxretry', si il n'est pas défini dans un 'jail', est 3.

Puis, oui, on est tous heureux que tout ça n'a pas a été inventé à Peking .....

Eric A
02/04/2015, 21h39
Oui, je te rejoins donc dans l'analyse, je vais suivre ta préconisation et repasser le paramètre à 600. Merci.

Sinon, les premiers résultats ne donnent pas grand chose , j'ai toujours des attaques qui se succèdent par vagues (5, 18, 47 même...) alors que l'adresse devrait être bannie :


Je constate en plus dans chaque mail, que ce sont 5 tentatives consécutives qui sont opérées, pourquoi le bannissement ne se fait pas dès la première tentative, je sèche...
Hi,

The IP 91.121.7.38 has just been banned by Fail2Ban after
5 attempts against SSH.


Here is more information about 91.121.7.38:

[Requête en cours whois.ripe.net]
[whois.ripe.net]
% This is the RIPE Database query service.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See http://www.ripe.net/db/support/db-terms-conditions.pdf

% Note: this output has been filtered.
% To receive output for a database update, use the "-B" flag.

% Information related to '91.121.0.0 - 91.121.31.255'

% Abuse contact for '91.121.0.0 - 91.121.31.255' is 'abuse@ovh.net'

inetnum: 91.121.0.0 - 91.121.31.255
netname: OVH
descr: OVH SAS
descr: Dedicated Servers
descr: http://www.ovh.com
country: FR
admin-c: OK217-RIPE
tech-c: OTC2-RIPE
status: ASSIGNED PA
mnt-by: OVH-MNT
source: RIPE # Filtered

BBR
01/04/2015, 23h28
on est bien d'accord mais ce findtime n'est pas venu tout seul, par défaut il est sur 600

Eric A
01/04/2015, 23h24
Merci, mais je sais encore lire l'anglais ! "A host is banned if it has generated "maxretry" during the last "findtime" # seconds."
Le fait qu'il était à 600000 n'était pas normal.
D'ailleurs confirmé par Janus57 (merci à lui)

BBR
01/04/2015, 22h29
avant de tout changer, essaie de comprendre le pourquoi des choses

janus57
01/04/2015, 21h54
Bonjour,

le findtime faut le laisser à sa valeur pas défaut (300 ou 600 chez plus) et pas trop le toucher.

c'est le bantime qu'il faut changer.

Et surtout pas oublier de rester fail2ban derrière la modification.

Cordialement, janus57

Eric A
01/04/2015, 21h47
Merci BBR.

J'ai installé le module Webmin de gestion Fail2Ban qui me dirige vers ce fichier
/etc/fail2ban/jail.conf
J'ai fait les modifications proposées, et aussi sur ce paramètre
# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 600000
que j'ai passé à 60 secondes, et j'ai mis le maxretry à 1 partout.
Je vois ce que ça donne, et je te redirais.
Bonne soirée.

BBR
01/04/2015, 20h09
non c'est dans jail.conf
regarde ceci http://www.how-to.ovh/viewtopic.php?f=10&t=19 et tu as les répertoires à changer car sur la R3 ce n'est pas standard

Eric A
01/04/2015, 19h37
Bonsoir à tous, et un grand merci pour vos réponses.

Bon, désolé d'avoir oublié de le préciser mon serveur est en R3. Et pour être franc, Fail2Ban je découvre totalement avec l'install de cette R3 sur mon Kimsufi.

Donc, si je comprends bien l'architecture du produit :
- il y a un fichier de conf générale
/etc/fail2ban/fail2ban.conf
- il y a n fichiers de conf, dont le sshd, que vous appelez des jails
/etc/fail2ban/filter.d/sshd.conf/
Lorsque j'ai appliqué mes modifications de paramètres, je l'ai fait dans le fichier de conf générale, redémarré Fail2Ban, et ça n'a rien changé.

Si je suis tes conseils, je dois rajouter ces lignes :
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
banaction = iptables-multiport-log
maxretry = 1
dans le sshd.conf, c'est bien ça ? et redémarrer F2B...

Je viens donc de le faire. A suivre...

nowwhat
01/04/2015, 14h04
Citation Envoyé par Eric A
.....
Est-ce que F2B fait bien son boulot ?
Il faut lui demander !!

"fail2ban" est livré avec des outils de test. Il ne faut pas s'en priver de les utiliser.
Exemple:
T'as un fichier de log nommé auth.log ici: /var/log/auth.log
T'as un jail nommé ssh, présent dans le fichier sshd.con, ici /etc/fail2ban/filter.d/sshd.conf
Il est temps de passe à l'action.
Exécute:
fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf
Et t'auras quelques résultats importantes, comme la liste des IP's qui correspond (qui seront donc banis):
Genre:
Code:
[1]
[2]
[3]
[4]
[5]
    195.3.144.115 (Sun Mar 29 18:07:20 2015)
    104.245.99.48 (Mon Mar 30 14:41:38 2015)
    193.42.159.19 (Tue Mar 31 16:35:54 2015)
    70.33.204.226 (Tue Mar 31 22:32:38 2015)
[6]
[7]
[8]
[9]
    70.33.204.226 (Tue Mar 31 22:32:38 2015)
[10]
Explication:
J'ai 10 règles dans sshd.conf - toutes ces règles 'scan' pour des divers messages que le service ssh peut fournir qui indique une tentative de connexion suspecte.
Règle 4 a été trouvé 4 fois, règle 9 une fois.

Sache que fail2ban possède son propre log (chez moi c'est ici: /var/log/fail2ban.log).
Très intéressant est:
tail -f /var/log/fail2ban.log
Et n’oublie pas le support, l'aide dans l'état pur est dispo ici http://www.fail2ban.org/wiki/index.php/Main_Page

BBR
01/04/2015, 13h36
et aussi as-tu vérifié que la jail ssh n'avait pas un maxretry plus élevé que celui que tu as paramétré par défaut ?
Code:
[ssh]
enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
banaction = iptables-multiport-log
maxretry = 1

BBR
01/04/2015, 13h31
et question bête : as-tu relancé fail2ban après avoir modifié les jails ?

janus57
01/04/2015, 13h22
Bonjour,

des logs ?
l'OS en question ?
Vous êtes sûre de bien avoir config la bonne jail (on évite ce genre de paramètres en paramètres global) ?

Perso j'ai modifié la jail SSH que que tous ceux qui tape sur le SSH plus de 1fois (vive les clé privés/publics) ce font bannir totalement du serveur (cela ne bann pas juste sur le port 22, mais l'ensemble des ports du serveur donc la totalité du serveur).

Pourquoi ?
Comme ça le robot ne peu pas venir à la charge sur un autre port (80/443 etc...)

Cordialement, janus57

Eric A
01/04/2015, 13h15
Bonjour à tous,

J'ai du mal à saisir le paramétrage et le fonctionnement de Fail2Ban: j'ai suivi les conseils de paramétrage donnés dans le forum sur ce sujet, à savoir :
loglevel = 3
bantime = 5296369
maxretry = 3

Malgré celà, je me retrouve avec des tentatives multiples (2, 5 10 ou 12) qui se suivent à la minute près, dont je suis informé par mail et là je ne comprends plus ?

Si j'ai un maxretry à 5 et un délai de bannissement de 4-5 mois, normalement l'adresse IP est bien bannie ? Donc comment une nouvelle tentative, voire plusieurs peuvent être effectuées à suivre ?

Est-ce que F2B fait bien son boulot ?

J'ai noté que c'était uniquement sur les tentatives d'intrusion SSH que ce phénomène se produisait, pas ailleurs (FTP, Dovecot...)

Merci par avance de votre aide.