Postfix fail2ban

...

failregex = "(?i): warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [A-Za-z0-9+]*)?"

...

=> moi, j’avais enlevé les guillemets :

...

failregex = (?i): warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [A-Za-z0-9+]*)?

...

Salut,

( Cf. ) Ne serait ce pas ta signature debian 64 bits wheezy beta 1 :question:

SAlut
non c est sur une autres machine, un server sous squeez .

En fait,

je me suis trompé, désolé. Il ne faut pas mettre de failregex dans jail.local, fail2ban va automatiquement chercher les règles dans filter.d/, et pas besoin de toucher au sasl.conf, et ça marche.

[quote=“fluo”]En fait,

je me suis trompé, désolé. Il ne faut pas mettre de failregex dans jail.local, fail2ban va automatiquement chercher les règles dans filter.d/, et pas besoin de toucher au sasl.conf, et ça marche.[/quote]
Merci pour l’info
Je corrige quoi et a qu’elle endroit , il faut bien coriger quelque part :doh: :101

[quote=“fluo”]En fait,

je me suis trompé, désolé. Il ne faut pas mettre de failregex dans jail.local, fail2ban va automatiquement chercher les règles dans filter.d/, et pas besoin de toucher au sasl.conf, et ça marche.[/quote]

On suppose que tu n’as jamais installé fail2ban.

Donc tu installe fail2ban :

apt-get install fail2ban

Ensuite, tu fais une copie de jail.conf (qui est un modèle) en jail.local car fail2ban se base sur la configuration de jail.local :

cp /etc/fail2ban/jail.conf /etc/fail.local

Ensuite il y a 4 paramètres généraux importants qu’il faut connaitre dans ce fichier jail.local :

# "ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1 

=> vérifier qu’on a bien 127.0.0.1 à ignoreip pour ne pas s’auto-bannir

bantime  = 600

=> durée de banissement en secondes

maxretry = 3 

=> nombre d’échec de tentatives par défaut au bout duquel on applique le banissement pour une durée de bantime

destemail = root@localhost, user@example.com

=> liste d’emails destinataires pour recevoir les notifications de bannissement par mail.
Vous pouvez mettre une adresse extérieur comme hotmail, gmail… si la configuration de votre serveur mail (comme postfix) le permet. Remarque : destmail ne marche que si on l’a activé dans le paramètre action (voir ci-dessous)

action = %(action_mwl)s

=> les types de notifications que vous souhaitez recevoir (cumulables) : m (pour mail qui permet d’activer le paramètre destemail, et donc de recevoir les notifications de bannissement par mail), l (pour avoir les notifications de bannissement dans les logs de fail2ban) w (pour avoir aussi les notification des warnings),
Remarque : si vous avez mis un m dans action, alors un /etc/init.d/fail2ban restart vous envoie aussi un mail pour vous indiquer que la notification par mail marche bien.

Ensuite le fichier jail.local contient déjà une liste des services populaires (ssh, postfix, apache…) que fail2ban peut surveiller. Exemples :

[code]

[ssh]
enabled = false
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

[vsftpd]
enabled = false
port = ftp,ftp-data,ftps,ftps-data
filter = vsftpd
logpath = /var/log/vsftpd.log

or overwrite it in jails.local to be

logpath = /var/log/auth.log

if you want to rely on PAM failed login attempts

vsftpd’s failregex should match both of those formats

maxretry = 6

…[/code]

où les paramètres :
enabled => soit false (fail2ban ne surveille pas), soit true (fail2ban surveille pour bannir)
logpath => chemin du fichier log du service à surveiller
maxretry => nombre d’échec de tentatives au bout duquel fail2ban banni l’ip. Ce paramètre, si fourni, override le paramètre général maxretry.

Pour les règles de bannissement, fail2ban les recherche automatiquements dans les fichiers du dossier filter.d/.

Donc si on veut que fail2ban surveille le service sasl, mettre true au paramètre enabled, puis on restart fail2ban :

[sasl]
enabled  = true
port     = smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s
filter   = sasl
# You might consider monitoring /var/log/warn.log instead
# if you are running postfix. See http://bugs.debian.org/507990
logpath  = /var/log/mail.log

=> donc ici, fail2ban surveille /var/log/mail.log en se basant sur des règles de filter.d/sasl.conf.

Salut,

[quote=“loreleil”]

J’ai des doutes la dessus!

Le doute étant présent …

Le comble!
J’avais lancé cette affirmation alors que dans la pratique j’applique son contraire, allez savoir pourquoi … :mrgreen:

  • Par défaut.

/etc/fail2ban/jail.conf (après installation)

[code][DEFAULT]
ignoreip = 127.0.0.1 |
bantime = 600 | variables
maxretry = 3 |

[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6[/code]

La section “[DEFAULT]” permet de définir les paramètres par défaut de toutes les jails.

  • Extrait de ma configuration.

[code]
[DEFAULT]

“ignoreip” can be an IP address, a CIDR mask or a DNS host

ignoreip = 127.0.0.1/8 x.x.x.x y.y.y.y z.z.z.z
bantime = 1209600
findtime = 1209600
maxretry = 2

[ssh]

enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log*
bantime = 31536000
findtime = 31535999
maxretry = 1[/code]

[code]

cat /etc/logrotate.d/fail2ban

/var/log/fail2ban.log {

daily
rotate 366
maxage 366
nocompress
delaycompress
missingok
maillast
mail user@mail.com
dateext
notifempty
postrotate
    fail2ban-client set logtarget /var/log/fail2ban.log >/dev/null
endscript

# If fail2ban runs as non-root it still needs to have write access
# to logfiles.
# create 640 fail2ban adm
create 640 root adm

}
#[/code]

  • On peut donc implanter à une prison (ssh par exemple) des variables toutes autres. Ces dernières vont se substituer aux paramètres “[DEFAULT]”

[quote]INFO Creating new jail ‘ssh’
INFO Jail ‘ssh’ uses Gamin
INFO Added logfile = /var/log/auth.log-20121105
INFO Added logfile = /var/log/auth.log-20121116
INFO Added logfile = /var/log/auth.log-20121113
INFO Added logfile = /var/log/auth.log-20121030
INFO Added logfile = /var/log/auth.log
INFO Added logfile = /var/log/auth.log-20121201
INFO Added logfile = /var/log/auth.log-20121023
INFO Added logfile = /var/log/auth.log-20121204
INFO Added logfile = /var/log/auth.log-20121125
INFO Added logfile = /var/log/auth.log-20121128
INFO Added logfile = /var/log/auth.log-20121119
INFO Set maxRetry = 1
INFO Set findtime = 31535999
INFO Set banTime = 31536000

INFO Creating new jail ‘apache-overflows’
INFO Jail ‘apache-overflows’ uses Gamin
INFO Added logfile = /var/log/apache2/error.log-20121203
INFO Added logfile = /var/log/apache2/error.log-20121205
INFO Added logfile = /var/log/apache2/error.log-20121204
INFO Added logfile = /var/log/apache2/error.log-20121102
INFO Added logfile = /var/log/apache2/error.log-20121114
INFO Added logfile = /var/log/apache2/error.log-20121127
INFO Added logfile = /var/log/apache2/error.log-20121101
INFO Added logfile = /var/log/apache2/error.log-20121111
INFO Added logfile = /var/log/apache2/error.log-20121206
INFO Added logfile = /var/log/apache2/error.log-20121125
INFO Added logfile = /var/log/apache2/error.log-20121029
INFO Added logfile = /var/log/apache2/error.log-20121120
INFO Added logfile = /var/log/apache2/error.log-20121128
INFO Added logfile = /var/log/apache2/error.log-20121129
INFO Added logfile = /var/log/apache2/error.log-20121130
INFO Added logfile = /var/log/apache2/error.log-20121119
INFO Added logfile = /var/log/apache2/error.log-20121117
INFO Added logfile = /var/log/apache2/error.log-20121122
INFO Added logfile = /var/log/apache2/error.log-20121030
INFO Added logfile = /var/log/apache2/error.log-20121124
INFO Added logfile = /var/log/apache2/error.log
INFO Added logfile = /var/log/apache2/error.log-20121126
INFO Added logfile = /var/log/apache2/error.log-20121116
INFO Added logfile = /var/log/apache2/error.log-20121202
INFO Added logfile = /var/log/apache2/error.log-20121105
INFO Added logfile = /var/log/apache2/error.log-20121118
INFO Added logfile = /var/log/apache2/error.log-20121113
INFO Added logfile = /var/log/apache2/error.log-20121201
INFO Added logfile = /var/log/apache2/error.log-20121031
INFO Added logfile = /var/log/apache2/error.log-20121115
INFO Added logfile = /var/log/apache2/error.log-20121107
INFO Set maxRetry = 1
INFO Set findtime = 1209599
INFO Set banTime = 1209600
[/quote]

Le doute est levé! :wink: