Fail2ban regle ...
Steph
-
massi-85 Messages postés 313 Date d'inscription Statut Membre Dernière intervention -
massi-85 Messages postés 313 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un serveur qui subit en ce moment des attaques brute force ssh.
On m'a conseillé d'installer fail2ban. C'est fait et ça tourne.
Maintenant, il faut que je cale les règles de filtrage, et là c'est plus dur.
La règle de base donnée dans le site fail2ban (Failed ...) fonctionne quand je tape la commande directe :
La ligne "Mar 8 ... ssh2" est issue de mon log logauth.log (Debian 4)
Mon problème vient du fait que si je tape la commande :
fail2ban me répond "Sorry, no match" alors que la ligne précédente est issue de ce log.
Du coup, je ne comprend pas et je ne sais pas tracer où il y a un problème.
Y aurait-t'il un connaisseur de fail2ban pour me guider ou pour donner quelques conseils ?
Merci d'avance
Stéphane
J'ai un serveur qui subit en ce moment des attaques brute force ssh.
On m'a conseillé d'installer fail2ban. C'est fait et ça tourne.
Maintenant, il faut que je cale les règles de filtrage, et là c'est plus dur.
La règle de base donnée dans le site fail2ban (Failed ...) fonctionne quand je tape la commande directe :
fail2ban-regex "Mar 8 10:26:05 de468 sshd[11335]: Failed password for root from 1.2.3.4 port XXXXXX ssh2" "Failed [-/\w]+ for .* from <HOST>"
La ligne "Mar 8 ... ssh2" est issue de mon log logauth.log (Debian 4)
Mon problème vient du fait que si je tape la commande :
fail2ban-regex /var/logauth.log "Failed [-/\w]+ for .* from <HOST>"
fail2ban me répond "Sorry, no match" alors que la ligne précédente est issue de ce log.
Du coup, je ne comprend pas et je ne sais pas tracer où il y a un problème.
Y aurait-t'il un connaisseur de fail2ban pour me guider ou pour donner quelques conseils ?
Merci d'avance
Stéphane
A voir également:
- Fail2ban regle ...
- Regle telephone - Guide
- Regle excel - Guide
- Publipostage règle si alors sinon - Accueil - Word
- Contre uno regle ✓ - Forum Loisirs / Divertissements
- Règle word en cm - Forum Microsoft Office
7 réponses
- Déjà sans parler de fail2ban, change d'abord ton port ( si tu l'as laisser par Default )
- Désactive le root au ssh, c'est celui qui est le plus attaquer par brut force.
- Créer toi un utilisateurs, et change lui c'est droit avec visudo.
- N'autorise que cet utilisateurs a utilisé le ssh.
Après fail2ban c'est un autre problème.
Il nous faudrait ton fichier conf pour voir d'ou viens le problème.
- Désactive le root au ssh, c'est celui qui est le plus attaquer par brut force.
- Créer toi un utilisateurs, et change lui c'est droit avec visudo.
- N'autorise que cet utilisateurs a utilisé le ssh.
Après fail2ban c'est un autre problème.
Il nous faudrait ton fichier conf pour voir d'ou viens le problème.
Bonjour massi-85 et merci de me répondre ...
Je vais tenter de suivre tes conseils pour les utilisateurs et port relatif au ssh.
En attendant, voici mes fichiers de conf de fail2ban :
Je sais qu'il ne faut pas surcharger ce fichier, mais j'ai quand même activer la partie ssh.
J'ai créé le fichier jail.local
Le filre associé est :
Et le sshd.local qui va avec :
Du côté des actions :
Avec tout ça, lorsque je tape la commande :
fail2ban-regex "Mar 8 10:26:05 de468 sshd[11335]: Failed password for root from 1.2.3.4 port XXXXXX ssh2" "Failed [-/\w]+ for .* from <HOST>"
Le système me répond :
J'espère donner suffisamment de données pour éclaircir la situation.
Merci encore pour l'aide
Je vais tenter de suivre tes conseils pour les utilisateurs et port relatif au ssh.
En attendant, voici mes fichiers de conf de fail2ban :
cat jail.conf # 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: 281 $ # # The DEFAULT allows a global definition of the options. They can be override # in each jail afterwards. [DEFAULT] # "ignoreip" can be an IP address, a CIDR mask or a DNS host ignoreip = 127.0.0.1 bantime = 600 maxretry = 3 # "backend" specifies the backend used to get files modification. Available # options are "gamin", "polling" and "auto". # yoh: For some reason Debian shipped python-gamin didn't work as expected # This issue left ToDo, so polling is default backend for now backend = polling # # Destination email address used solely for the interpolations in # jail.{conf,local} configuration files. destemail = root@localhost # Default action to take: ban only action = iptables[name=%(__name__)s, port=%(port)s] # Following actions can be chosen as an alternatives to the above action. # To activate, just copy/paste+uncomment chosen 2 (excluding comments) lines # into jail.local # Default action to take: ban & send an e-mail with whois report # to the destemail. # action = iptables[name=%(__name__)s, port=%(port)s] # mail-whois[name=%(__name__)s, dest=%(destemail)s] # Default action to take: ban & send an e-mail with whois report # and relevant log lines to the destemail. # action = iptables[name=%(__name__)s, port=%(port)s] # mail-whois-lines[name=%(__name__)s, dest=%(destemail)s, logpath=%(logpath)s] # Next jails corresponds to the standard configuration in Fail2ban 0.6 # which was shipped in Debian. Please enable any defined here jail by including # # [SECTION_NAME] # enabled = true # # in /etc/fail2ban/jail.local. # [ssh] enabled = true port = ssh filter = sshd logpath = /var/logauth.log maxretry = 6 # # HTTP servers # [apache] enabled = false port = http filter = apache-auth logpath = /var/log/apache*/*access.log maxretry = 6 [apache-noscript] enabled = false port = http filter = apache-noscript logpath = /var/log/apache*/*error.log maxretry = 6 # # FTP servers # [vsftpd] enabled = false port = ftp filter = vsftpd logpath = /var/log/auth.log maxretry = 6 [proftpd] enabled = false port = ftp filter = proftpd logpath = /var/log/proftpd/proftpd.log maxretry = 6 [wuftpd] enabled = false port = ftp filter = wuftpd logpath = /var/log/auth.log maxretry = 6 # # Mail servers # [postfix] enabled = false port = smtp filter = postfix logpath = /var/log/postfix.log [couriersmtp] enabled = false port = smtp filter = couriersmtp logpath = /var/log/mail.log [sasl] enabled = false port = smtp filter = sasl logpath = /var/log/mail.log
Je sais qu'il ne faut pas surcharger ce fichier, mais j'ai quand même activer la partie ssh.
J'ai créé le fichier jail.local
cat jail.local [ssh-iptables] enabled = true filter = sshd action = iptables[name=SSH, port=ssh, protocol=tcp] logpath = /var/logauth.log maxretry = 5 findtime = 600
Le filre associé est :
cat filter.d/sshd.conf # Fail2Ban configuration file # # Author: Cyril Jaquier # # $Revision: 471 $ # [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. # Values: TEXT # failregex = (?:(?:Authentication failure|Failed [-/\w+]+) for(?: [iI](?:llegal|nvalid) user)?|[Ii](?:llegal|nvalid) user|ROOT LOGIN REFUSED) .*(?: from|FROM) <HOST>(?: port \d*)?(?: ssh\d*)?\s*$ # Option: ignoreregex # Notes.: regex to ignore. If this regex matches, the line is ignored. # Values: TEXT # ignoreregex =
Et le sshd.local qui va avec :
cat filter.d/sshd.local [definition] failregex = Failed [-/\w]+ for .* from <HOST> # Option: ignoreregex # Notes.: regex to ignore. If this regex matches, the line is ignored. # Values: TEXT # ignoreregex =
Du côté des actions :
cat action.d/iptables.conf # Fail2Ban configuration file # # Author: Cyril Jaquier # # $Revision: 455 $ # [Definition] # Option: fwstart # Notes.: command executed once at the start of Fail2Ban. # Values: CMD # actionstart = iptables -N fail2ban-<name> iptables -A fail2ban-<name> -j RETURN iptables -I INPUT -p <protocol> --dport <port> -j fail2ban-<name> # Option: fwend # Notes.: command executed once at the end of Fail2Ban # Values: CMD # actionstop = iptables -D INPUT -p <protocol> --dport <port> -j fail2ban-<name> iptables -F fail2ban-<name> iptables -X fail2ban-<name> # Option: fwcheck # Notes.: command executed once before each fwban command # Values: CMD # actioncheck = iptables -n -L INPUT | grep -q fail2ban-<name> # Option: fwban # Notes.: command executed when banning an IP. Take care that the # command is executed with Fail2Ban user rights. # Tags: <ip> IP address # <failures> number of failures # <time> unix timestamp of the ban time # Values: CMD # actionban = iptables -I fail2ban-<name> 1 -s <ip> -j DROP # Option: fwunban # Notes.: command executed when unbanning an IP. Take care that the # command is executed with Fail2Ban user rights. # Tags: <ip> IP address # <failures> number of failures # <time> unix timestamp of the ban time # Values: CMD # actionunban = iptables -D fail2ban-<name> -s <ip> -j DROP [Init] # Defaut name of the chain # name = default # Option: port # Notes.: specifies port to monitor # Values: [ NUM | STRING ] Default: # port = ssh # Option: protocol # Notes.: internally used by config reader for interpolations. # Values: [ tcp | udp | icmp | all ] Default: tcp # protocol = tcp
Avec tout ça, lorsque je tape la commande :
fail2ban-regex "Mar 8 10:26:05 de468 sshd[11335]: Failed password for root from 1.2.3.4 port XXXXXX ssh2" "Failed [-/\w]+ for .* from <HOST>"
Le système me répond :
Success, the following data were found: Date: Thu Mar 08 10:26:05 2012 IP : 1.2.3.4 Date template hits: 1 hit: Month Day Hour:Minute:Second 0 hit: Weekday Month Day Hour:Minute:Second Year 0 hit: Year/Month/Day Hour:Minute:Second 0 hit: Day/Month/Year:Hour:Minute:Second 0 hit: TAI64N 0 hit: Epoch Benchmark. Executing 1000... Performance Avg: 0.07336878776550293 ms Max: 0.13804435729980469 ms (Run 246) Min: 0.068902969360351562 ms (Run 990)
J'espère donner suffisamment de données pour éclaircir la situation.
Merci encore pour l'aide
Hello,
Sur le site de fail2ban, (http://www.fail2ban.org/wiki/index.php/MANUAL_0_8#Testing) ils expliquent qu'on peut tester les configurations des filtres mis en place de plusieurs manières :
fail2ban-regex "chaine_a_tester" "expression reg"
et
fail2ban-regexp fichier "expression reg"
(il y a d'autres combinaisons)
Donc fail2ban-regex /var/logauth.log "Failed [-/\w]+ for .* from <HOST>" correspond à ce 2ème test (selon moi).
(en même temps, et au moment où j'écris, je me demande si ce 2ème cas n'est pas traité comme le premier, à savoir que la commande prend /var/logauth.log comme une chaine et non un fichier --> je vais vérifier)
Pour ta 2ème remarque, j'ai effectivement une adresse réelle à la place de 1.2.3.4 et un vrai numéro de port à la place de xxxx.
Je deviens un brin parano en ce moment, donc je les ai cachés .... ok, c'est un peu n'importe quoi.
Merci de ton aide
Stéphane
Sur le site de fail2ban, (http://www.fail2ban.org/wiki/index.php/MANUAL_0_8#Testing) ils expliquent qu'on peut tester les configurations des filtres mis en place de plusieurs manières :
fail2ban-regex "chaine_a_tester" "expression reg"
et
fail2ban-regexp fichier "expression reg"
(il y a d'autres combinaisons)
Donc fail2ban-regex /var/logauth.log "Failed [-/\w]+ for .* from <HOST>" correspond à ce 2ème test (selon moi).
(en même temps, et au moment où j'écris, je me demande si ce 2ème cas n'est pas traité comme le premier, à savoir que la commande prend /var/logauth.log comme une chaine et non un fichier --> je vais vérifier)
Pour ta 2ème remarque, j'ai effectivement une adresse réelle à la place de 1.2.3.4 et un vrai numéro de port à la place de xxxx.
Je deviens un brin parano en ce moment, donc je les ai cachés .... ok, c'est un peu n'importe quoi.
Merci de ton aide
Stéphane
ah oui d'accord. Cette ligne indique que l'adresse IP "1.2.3.4 " a essayer de se connecter avec l'utilisateur root mais c'est planter. Donc c'est normal ! Au bout de 3 fois cette adresse devrait être banni pendant un lapes de temps que tu as définie.
Après le test avec : fail2ban-regex /var/logauth.log "Failed [-/\w]+ for .* from <HOST> je ne le comprends pas trop.
essaye juste fail2ban-regex /var/logauth.log
Après le test avec : fail2ban-regex /var/logauth.log "Failed [-/\w]+ for .* from <HOST> je ne le comprends pas trop.
essaye juste fail2ban-regex /var/logauth.log
Exact, l'utilisateur d'adresse IP 1.2.3.4 a tenté sa chance et a échoué, mais il a été filtré par l'expression régulière et donc il est repéré. Et comme tu dis, au bout de 3 fois (en fait 5), il est banni pendant 600 secondes. Ca permet d'éviter à des robots de venir scanner sans cesse un port avec un nouveau mot de passe.
Pour le test fail2ban-regex /var/logauth.log "Failed [-/\w]+ for .* from <HOST>
En fait, fail2ban-regex permet de tester si une expression régulière qu'on va utiliser pour le filtrage fonctionne.
Pour les phases de test, les dev de fail2ban préconisent de tester :
1 - une ligne du log (où il y a un accès refusé) avec l'expression régulière.
2 - Si ça marche, on peut tester le log entier en lui passant le fichier.
Mais, tout ça, c'est pour la version 0.8... et je suis avec la version 0.7.5 (je sais, je sais, j'aurais dû regarder, mais j'ai fait l'install avec aptitude et j'ai cru avoir la dernière version).
Sur les version 0.7.5, cette fonctionnalité n'existe pas (tester une expression régulière sur un fichier).
Par contre, il y a quand même un soucis car aucune adresse n'est repérée dans mon log. Or, j'ai à peu près 100 attaques dedans (c'est un peu la fête au niveau de mon serveur en ce moment).
Est ce que fail2ban ne s'occupe que des nouvelles entrées dans le log ou bien, il analyse tout le log ?
Bref, je nage en eaux très troubles.
Comment avoir plus d'information de la part de fail2ban ?
Merci de ton aide
Pour le test fail2ban-regex /var/logauth.log "Failed [-/\w]+ for .* from <HOST>
En fait, fail2ban-regex permet de tester si une expression régulière qu'on va utiliser pour le filtrage fonctionne.
Pour les phases de test, les dev de fail2ban préconisent de tester :
1 - une ligne du log (où il y a un accès refusé) avec l'expression régulière.
2 - Si ça marche, on peut tester le log entier en lui passant le fichier.
Mais, tout ça, c'est pour la version 0.8... et je suis avec la version 0.7.5 (je sais, je sais, j'aurais dû regarder, mais j'ai fait l'install avec aptitude et j'ai cru avoir la dernière version).
Sur les version 0.7.5, cette fonctionnalité n'existe pas (tester une expression régulière sur un fichier).
Par contre, il y a quand même un soucis car aucune adresse n'est repérée dans mon log. Or, j'ai à peu près 100 attaques dedans (c'est un peu la fête au niveau de mon serveur en ce moment).
Est ce que fail2ban ne s'occupe que des nouvelles entrées dans le log ou bien, il analyse tout le log ?
Bref, je nage en eaux très troubles.
Comment avoir plus d'information de la part de fail2ban ?
Merci de ton aide
Change ton port 22 dans la conf ssh et fail2ban.. sa va limiter l'attaque des robots !
Je sais pas vraiment comment marche fail2ban au niveaux des logs. A mon avis il fait un check des nouvelles entrées ! si la ligne apparaît 5 fois, boom, l'IP est banni. Si tu as été attaqué qu'une fois depuis c'est peut etre normal. Enfin je sais pas trop !
Je sais pas vraiment comment marche fail2ban au niveaux des logs. A mon avis il fait un check des nouvelles entrées ! si la ligne apparaît 5 fois, boom, l'IP est banni. Si tu as été attaqué qu'une fois depuis c'est peut etre normal. Enfin je sais pas trop !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Hello,
A priori, fail2ban scanne les fichiers qu'on lui donne et si une ligne du fichier remplit les conditions, l'IP est bannie (direct au niveau iptables).
Effectivement, aujourd'hui, c'est le calme plat au niveau des attaques (tant mieux), mais du coup, je ne peux pas voir les réactions de file2ban.
Je vais donc attendre en laissant ce post ouvert et je reviendrai pour donner des nouvelles.
Je note la commande qui va bien. Ca peut me permettre de récupérer les iP qui posent problème. A moi de les bannir ... à la main
Merci encore de ton aide
A priori, fail2ban scanne les fichiers qu'on lui donne et si une ligne du fichier remplit les conditions, l'IP est bannie (direct au niveau iptables).
Effectivement, aujourd'hui, c'est le calme plat au niveau des attaques (tant mieux), mais du coup, je ne peux pas voir les réactions de file2ban.
Je vais donc attendre en laissant ce post ouvert et je reviendrai pour donner des nouvelles.
Je note la commande qui va bien. Ca peut me permettre de récupérer les iP qui posent problème. A moi de les bannir ... à la main
Merci encore de ton aide
Aloa,
Juste une petite réponse pour te dire que ce n'est pas la peine de m'attaquer (mais ça aurait été une bonne idée pour faire les tests).
Résultats du Week end : plusieurs attaques mais à chaque fois, fail2ban a fonctionné. C'est à dire qu'après le 5ème essai des hackers, ils étaient banni du serveur. Efficace et assez rassurant.
Je suis absent cette semaine (sans connexion possible au net, d'où mon coup de speed vendredi dernier), mais je ferai une petite suite à ce post pour donner mes config. Ca pourra toujours servir à d'autre.
A plus donc
Juste une petite réponse pour te dire que ce n'est pas la peine de m'attaquer (mais ça aurait été une bonne idée pour faire les tests).
Résultats du Week end : plusieurs attaques mais à chaque fois, fail2ban a fonctionné. C'est à dire qu'après le 5ème essai des hackers, ils étaient banni du serveur. Efficace et assez rassurant.
Je suis absent cette semaine (sans connexion possible au net, d'où mon coup de speed vendredi dernier), mais je ferai une petite suite à ce post pour donner mes config. Ca pourra toujours servir à d'autre.
A plus donc