Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/02/2014, à 12:01

axel55

[Résolu]Fail2ban

Bonjour,

Alors je sais que c'est un sujet souvent discuté, mais malgré mes multiples essais, Fail2ban n'a jamais fonctionné sur mon serveur, enfin en tout cas il ne fait pas ce dont j'ai besoin.

Un connaisseur peut il tenter de m'apporter de l'aide ?

Alors j'ai un serveur dédié à distance avec le système Debian 7. Dessus se trouve un serveur postfix pour les courriels (avec dovecot), un serveur prosody pour jabber, un serveur davical pour le webdav, un serveur mumble, un serveur ssh, un serveur apache et une base postgresql (normalement j'ai rien oublié).

Ne connaissant pas iptable j'ai dès le départ utilisé ufw. J'ai changé le port pour ssh, et j'ai laissé les ports par défaut pour tout les autres programmes (sauf mumble en fait)

???                        ssh
80/tcp                     apache
5222/tcp                   prosody
5269/tcp                   m'en rappel plus !
25/tcp                     postfix
110/tcp                    m'en rappel plus !
55555                      mumble
995                        pop3 ssl
465                        smtp ssl

Bref quoi qu'il en soit coté utilisation des services j'ai aucun souci tout fonctionne, faudra éventuellement que je regarde si je peux limiter les 995 et 465 qu'au tcp par contre.

Mais qui dit serveurs dit tentatives d'intrusions pour y faire des trucs pas sympa. Et lorsque je regarde les fichiers de logs de mon serveur postfix, c'est un petit peu la fête !
Postfix sait virer les tentative par force brut, mais parfois il se passe de nombreuses tentatives (plusieurs dizaines) avant que cela arrive. J'avais lu sur le net que si la machine est capable d’auto limiter ses tentatives, postfix ne la bloquera jamais.

Bref moi je voudrait simplement limiter les tentatives à trois essais, suivit d'un ban d'une bonne semaine pour être tranquille, en ajoutant l'adresse ip publique de chez moi pour éviter de me faire avoir ... J'ai donc installé Fail2ban qui est exactement ce dont j'ai besoin.

Il est bien en fonction, les fichiers de configuration sont d’origines sauf jail.local (et jail.conf car parfois je suis une buse).

# Fail2Ban configuration file.
#
# This file was composed for Debian systems from the original one
#  provided now under /usr/share/doc/fail2ban/examples/jail.conf
#  for additional examples.
#
# To avoid merges during upgrades DO NOT MODIFY THIS FILE
# and rather provide your changes in /etc/fail2ban/jail.local
#
# Author: Yaroslav O. Halchenko <debian@onerussian.com>
#
# $Revision$
[DEFAULT]

# "ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1 88.172.88.245
findtime = 3600
bantime = 86400
maxretry = 3
backend = auto
destemail = (???)
banaction = iptables-multiport
mta = sendmail
protocol = tcp
chain = INPUT
action_ = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
action_mw = %(banaction)s[name=%(__name__)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, 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 = %(action_)s

#
# JAILS

[ssh]

enabled  = true
port     = (mon port perso)
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 3

[dropbear]

enabled  = false
port     = ssh
filter   = sshd
logpath  = /var/log/dropbear
maxretry = 6

# Generic filter for pam. Has to be used with action which bans all ports
# such as iptables-allports, shorewall
[pam-generic]

enabled  = false
# pam-generic filter can be customized to monitor specific subset of 'tty's
filter   = pam-generic
# port actually must be irrelevant but lets leave it all for some possible uses
port     = all
banaction = iptables-allports
port     = anyport
logpath  = /var/log/auth.log
maxretry = 6

[xinetd-fail]

enabled   = false
filter    = xinetd-fail
port      = all
banaction = iptables-multiport-log
logpath   = /var/log/daemon.log
maxretry  = 2


[ssh-ddos]

enabled  = false
port     = ssh
filter   = sshd-ddos
logpath  = /var/log/auth.log
maxretry = 6

#
# HTTP servers
#

[apache]

enabled  = true
port     = http,https
filter   = apache-auth
logpath  = /var/log/apache*/*error.log
maxretry = 6

# default action is now multiport, so apache-multiport jail was left
# for compatibility with previous (<0.7.6-2) releases
[apache-multiport]

enabled   = false
port      = http,https
filter    = apache-auth
logpath   = /var/log/apache*/*error.log
maxretry  = 6

[apache-noscript]

enabled  = false
port     = http,https
filter   = apache-noscript
logpath  = /var/log/apache*/*error.log
maxretry = 6

[apache-overflows]

enabled  = false
port     = http,https
filter   = apache-overflows
logpath  = /var/log/apache*/*error.log
maxretry = 2

#
# FTP servers
#

[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


[proftpd]

enabled  = false
port     = ftp,ftp-data,ftps,ftps-data
filter   = proftpd
logpath  = /var/log/proftpd/proftpd.log
maxretry = 6


[pure-ftpd]

enabled  = false
port     = ftp,ftp-data,ftps,ftps-data
filter   = pure-ftpd
logpath  = /var/log/auth.log
maxretry = 6


[wuftpd]

enabled  = false
port     = ftp,ftp-data,ftps,ftps-data
filter   = wuftpd
logpath  = /var/log/auth.log
maxretry = 6


#
# Mail servers
#

[postfix]

enabled  = true
port     = smtp,ssmtp
filter   = postfix
logpath  = /var/log/mail.log


[couriersmtp]

enabled  = false
port     = smtp,ssmtp
filter   = couriersmtp
logpath  = /var/log/mail.log


#
# Mail servers authenticators: might be used for smtp,ftp,imap servers, so
# all relevant ports get banned
#

[courierauth]

enabled  = false
port     = smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s
filter   = courierlogin
logpath  = /var/log/mail.log


[sasl]

enabled  = false
port     = smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s
filter   = sasl
# You might consider monitoring /var/log/mail.warn instead if you are
# running postfix since it would provide the same log lines at the
# "warn" level but overall at the smaller filesize.
logpath  = /var/log/mail.log

[dovecot]

enabled = true
port = pop3,pop3s,imap,imaps
filter  = dovecot
logpath = /var/log/mail.log

# DNS Servers


# These jails block attacks against named (bind9). By default, logging is off
# with bind9 installation. You will need something like this:
#
# logging {
#     channel security_file {
#         file "/var/log/named/security.log" versions 3 size 30m;
#         severity dynamic;
#         print-time yes;
#     };
#     category security {
#         security_file;
#     };
# };
#
# in your named.conf to provide proper logging

# !!! WARNING !!!
#   Since UDP is connection-less protocol, spoofing of IP and imitation
#   of illegal actions is way too simple.  Thus enabling of this filter
#   might provide an easy way for implementing a DoS against a chosen
#   victim. See
#    http://nion.modprobe.de/blog/archives/690-fail2ban-+-dns-fail.html
#   Please DO NOT USE this jail unless you know what you are doing.
#[named-refused-udp]
#
#enabled  = false
#port     = domain,953
#protocol = udp
#filter   = named-refused
#logpath  = /var/log/named/security.log

[named-refused-tcp]

enabled  = false
port     = domain,953
protocol = tcp
filter   = named-refused
logpath  = /var/log/named/security.log

Cordialement.

Dernière modification par axel55 (Le 31/03/2014, à 14:58)

Hors ligne

#2 Le 14/02/2014, à 13:23

bruno

Re : [Résolu]Fail2ban

Tu devrais déjà activer sasl et pam-generic dans ton jail.local, renseigner destmail et mettre

action = %(action_mwl)s

pour être informé par courriel des actions de fail2ban.

Hors ligne

#3 Le 15/02/2014, à 02:05

axel55

Re : [Résolu]Fail2ban

Bonjour,

J'ai effectué les modifications proposés. Lorsque j'ai relancé le service pour prendre en charge les modifications j'ai bien reçu des courriels d'informations comme quoi les surveillances sont opérationnels. Je redirais pas la suite si ça fonctionnera lorsqu'il y aura de nouvelles tentatives.

Cordialement.

Dernière modification par axel55 (Le 15/02/2014, à 12:29)

Hors ligne

#4 Le 19/02/2014, à 13:27

axel55

Re : [Résolu]Fail2ban

Bonjour,

Curieusement ces derniers jours furent très calmes, je n'ai subit des attaques qu'à partir d'une unique adresse ip mais reparties sur plusieurs jours.

Dans les logs mail.log ça ressemble à ça :

Feb 18 00:48:04 smtp dovecot: pop3-login: Aborted login (tried to use disallowed plaintext auth): user=<>, rip=5.34.247.168, lip=37.187.16.196, session=<jr9pyaLyfwAFIveo>

Par contre toujours pas de réponse de fail2ban alors c'est toujours mal configuré !

Cordialement.

Dernière modification par axel55 (Le 19/02/2014, à 13:27)

Hors ligne

#5 Le 19/02/2014, à 13:46

bruno

Re : [Résolu]Fail2ban

Bonjour,

Cette ligne dans tes logs devrait correspondre avec une des expression régulière présente dans /etc/fial2ban/filter.d/dovecot.conf

Si elle se répète plus de trois fois (voir ton paramètre maxretry) fail2ban devrait bannir l'IP concernée et t'envoyer un courriel pour te signaler le bannissement.

Hors ligne

#6 Le 19/02/2014, à 14:39

axel55

Re : [Résolu]Fail2ban

Bonjour,

J'ai effectué une modification du fichier dovecot.conf adapté spécialement pour cette attaque, je vais attendre de nouvelles tentatives.

# Fail2Ban configuration file for dovcot
#
# Author: Martin Waschbuesch
#
# $Revision$
#

[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 "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)
# Values:  TEXT
#
#failregex = .*(?:pop3-login|imap-login):.*(?:Authentication failure|Aborted login \(auth failed|Aborted #login \(tried to use disabled|Disconnected \(auth failed).*rip=(?P<host>\S*),.*
#

failregex = .*(?:pop3-login|imap-login):.*Aborted login.*rip=(?P<host>\S*),.*

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex = 

Cordialement.

Hors ligne

#7 Le 25/02/2014, à 13:54

axel55

Re : [Résolu]Fail2ban

Bonjour,

Voici donc des tentatives similaires effectués

Feb 25 00:08:28 smtp dovecot: pop3-login: Aborted login (tried to use disallowed plaintext auth): user=<>, rip=82.209.212.179, lip=37.187.16.196, session=</56vDC/zSABS0dSz>

Sans effet de Fail2ban...

Bref j'ignore totalement d’où proviens le probleme !

Cordialement.

Hors ligne

#8 Le 28/03/2014, à 16:38

axel55

Re : [Résolu]Fail2ban

Bonjour,

Avec le temps j'ai finis par me familiariser avec la syntaxe à utiliser dans les fichiers de configurations. J'en ai même créé un cette après midi pour une sorte d'attaque qui était répertorié dans aucun fichier.

J'ai aussi désactivé la réception des courriels d'information car c'est assez désagréable avec le temps, je préfère jeter un œil sur les logs une fois par semaine. Merci quand même pour vos aides si peu soient elles (c'est le geste qui compte).

Cordialement.

Hors ligne

#9 Le 29/03/2014, à 11:23

duocore

Re : [Résolu]Fail2ban

Bonjour,

moi aussi j'ai un serveur sur raspberry, j'ai utiliser ceci: http://www.isalo.org/wiki.debian-fr/Ser … i#fail2ban

http://www.k-miller.co.uk/?p=67 : tres utile pour comment changer le temps de bannissement : sur son blog avec la valeur bantime

au lieu d'utiliser sendmail j'utilise ssmtp en faisant sudo aptitude install ssmtp et on va te proposer de supprimer send mail ,il faut accepter.

car j'ai trouvé que ssmtp etait plus facile a configurer.

il y a une manip a faire car le fichier est visible par tous : voir http://sheebypanda.com/envoyer-des-mail … ant-ssmtp/

cela t'aidera, ces sites m'ont aidé a resoudre mon probleme de fail2ban car moi aussi je n'arrivais pas à avoir de mail .

Dernière modification par duocore (Le 17/12/2023, à 18:49)

Hors ligne

#10 Le 31/03/2014, à 15:08

axel55

Re : [Résolu]Fail2ban

Bonjour,

Désolé j'avais oublié d'ajouter [résolu] dans le titre lors de mon dernier message.

Je ne sais plus quels tutoriels j'avais utilisé pour configurer Fail2ban, mais j'image que j'ai à un moment consulté ceux que tu proposes, (Isalo d’ailleurs est une excellente source d'information).

Quand au fonctionnement même de Postfix et Dovecot ils étaient totalement fonctionnels avant même d'avoir débuté ce sujet, mais je ne cache pas que j'avais mis plusieurs mois pour y parvenir !
Tout ça pour dire que je me souviens pas avoir eu besoin d'un logiciel s'appelant Sendmail, et histoire de pas me créer de nouvelles contraintes je préfère ne plus y toucher puisque désormais j'ai réussis à tout faire fonctionner comme il faut.

Cordialement.

Dernière modification par axel55 (Le 31/03/2014, à 15:09)

Hors ligne

#11 Le 13/01/2015, à 23:32

hep

Re : [Résolu]Fail2ban

Hello,

Et c'est quoi la bonne sytaxe ?
Je suis aussi entrain de me bagarrer avec ça ...

Hors ligne