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 17/09/2012, à 15:58

olivier.revollat

Fail2ban : test ssh

Bonjour a tous,
j'ai installé fail2ban sur un serveur, mais j'avais l'impression que malgré la présence de tentatives d'attaques dans les logs, aucune action n'était faite (ban adresse ip via iptables, ...)
Pour en avoir le coeur net, j'ai fait volontairement quelques tests en tentant de me connecter à mon serveur depuis l'extérieur sans clef privé, ce que je n'ai pas autorisé dans la conf du serveur ssh, donc ça génère des log dans /var/log/auth.log du type :

Sep 17 15:32:16 XXXXXX sshd[2661]: reverse mapping checking getaddrinfo for reverse.xxxxxxx.xxx [xxx.xxx.xxx.xxx] failed - POSSIBLE BREAK-IN ATTEMPT!
Sep 17 15:32:16 XXXXXX sshd[2661]: Connection closed by xxx.xxx.xxx.xxx [preauth]
Sep 17 15:32:26 XXXXXX sshd[2823]: reverse mapping checking getaddrinfo for reverse.xxxxxxx.xxx [xxx.xxx.xxx.xxx] failed - POSSIBLE BREAK-IN ATTEMPT!
Sep 17 15:32:26 XXXXXX sshd[2823]: Received disconnect from xxx.xxx.xxx.xxx: 14: No supported authentication methods available [preauth]
Sep 17 15:32:37 XXXXXX sshd[2978]: reverse mapping checking getaddrinfo for reverse.xxxxxxx.xxx [xxx.xxx.xxx.xxx] failed - POSSIBLE BREAK-IN ATTEMPT!
Sep 17 15:32:37 XXXXXX sshd[2978]: Connection closed by xxx.xxx.xxx.xxx [preauth]

Or, quand je check le staus du "jail sshd" :

$ sudo fail2ban-client status ssh
Status for the jail: ssh
|- filter
|  |- File list:        /var/log/auth.log
|  |- Currently failed: 0
|  `- Total failed:     0
`- action
   |- Currently banned: 0
   |  `- IP list:
   `- Total banned:     0

... ces tentatives de connexion répétées et infructueuses ne semblent pas inquiéter fail2ban, sic !!
Pour info je vous met ici le filtre utilisé pour le jail sshd (donc le fichier /etc/fail2ban/filter.d/sshd.conf) :

[Definition]

_daemon = sshd

failregex = ^%(__prefix_line)s(?:error: PAM: )?Authentication failure for .* from <HOST>\s*$
            ^%(__prefix_line)s(?:error: PAM: )?User not known to the underlying authentication module for .* from <HOST>\s*$
            ^%(__prefix_line)sFailed (?:password|publickey) for .* from <HOST>(?: port \d*)?(?: ssh\d*)?$
            ^%(__prefix_line)sROOT LOGIN REFUSED.* FROM <HOST>\s*$
            ^%(__prefix_line)s[iI](?:llegal|nvalid) user .* from <HOST>\s*$
            ^%(__prefix_line)sUser .+ from <HOST> not allowed because not listed in AllowUsers$
            ^%(__prefix_line)sauthentication failure; logname=\S* uid=\S* euid=\S* tty=\S* ruser=\S* rhost=<HOST>(?:\s+user=.*)?\s*$
            ^%(__prefix_line)srefused connect from \S+ \(<HOST>\)\s*$
            ^%(__prefix_line)sAddress <HOST> .* POSSIBLE BREAK-IN ATTEMPT!*\s*$
            ^%(__prefix_line)sUser .+ from <HOST> not allowed because none of user's groups are listed in AllowGroups\s*$

ignoreregex =

c'est vraiment l'installation DE BASE (paquet) de fail2ban et pour info j'ai une Ubuntu 12.04 ... mais c'est vrai que quand je regarde ce fichier (filtre), l'expression régulière qui devrait déclencher une action pour ce genre de ligne :

Sep 17 15:32:26 XXXXXX sshd[2823]: reverse mapping checking getaddrinfo for reverse.xxxxxxx.xxx [xxx.xxx.xxx.xxx] failed - POSSIBLE BREAK-IN ATTEMPT!

Semble être :

            ^%(__prefix_line)sAddress <HOST> .* POSSIBLE BREAK-IN ATTEMPT!*\s*$

Mais la regexp n'a pas l'air de "matcher" .... alors pourquoi est ce que l'installation du paquet fail2ban m'aurait mis des filtres pour sshd qui ne soient pas fonctionnels ????? Ou alors le pb vient de moi mais je ne comprends pas ce que je doit faire pour faire fonctionner correctement fail2ban .... si vous pouvez m'aider ..

merci a tous wink

Dernière modification par olivier.revollat (Le 17/09/2012, à 15:59)

Hors ligne

#2 Le 17/09/2012, à 16:16

olivier.revollat

Re : Fail2ban : test ssh

j'ai confirmation avec la commande :

fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf

j'ai bien des IP qui ressortent (correspondants à de "vrai" tentatives d'attaques qui datent de ce matin) mais pas l'IP avec laquelle j'ai fait des tests de connexion ... et je voulais savoir, pour les match regexp que je vois avec la commande précédente ou y a t-il une trace que ces IP ont été bannies à un moment donné ??? car dans /var/log/fail2ban.log je n'ai rien, alors que par contre les regexp matchent bien ... ça veut bien dire que ça a du déclencher des actions derrière non ??? !!!!

Hors ligne

#3 Le 28/09/2012, à 09:23

Pseudo supprimé

Re : Fail2ban : test ssh

sudo fail2banclient --version   ??

est-ce que TOUTES tes règles fail2ban apparaissent dans iptables ?

 sudo iptables -L INPUT -n -v
..
fail2ban-ssh  tcp  --  anywhere             anywhere            multiport dports ssh,2288

ensuite, il faut regarder, dans /etc/fail2ban/jail.local
qui est la copie de fail2ban.conf

en supposant que ton ssh tourne sur le port 2288

[ssh]

enabled = true
port	= "ssh,2288"
filter	= sshd
logpath  = /var/log/auth.log
findtime = 30
maxretry = 3
bantime  = 1800
action = iptables-multiport[name=ssh, port="22,2288"]
	mail-whois[name=ssh, dest=root@domain.tld]

le mail-whois sert à envoyer un mail si tu as un serveur smtp (pas obligatoire)

#4 Le 28/09/2012, à 10:32

olivier.revollat

Re : Fail2ban : test ssh

Version :
Fail2Ban v0.8.6

Dans iptables:

$ sudo iptables -L INPUT -n -v
Chain INPUT (policy DROP 47 packets, 2961 bytes)
 pkts bytes target     prot opt in     out     source               destination
4045K  301M fail2ban-ssh  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 22,443
...
...

Pour la config de mon ssh j'ai :

[ssh]

enabled  = true
port     = ssh,https
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 6

et plus aut dans le ficheir de config y'a ça :

[DEFAULT]
...
...
banaction = iptables-multiport
...
...

En tout cas, la situation s'est "améliorée" depuis la dernière fois, car maintenant il y a bien des "tentatives de brute force" qui ont été détecté :

$ sudo fail2ban-client status ssh
Status for the jail: ssh
|- filter
|  |- File list:        /var/log/auth.log
|  |- Currently failed: 0
|  `- Total failed:     51
`- action
   |- Currently banned: 0
   |  `- IP list:
   `- Total banned:     5

Donc ça à l'air de fonctionner, mais c'est curieux que les tests de connexion échoués que je fessait de mon coté ne m'avait pas "blacklisté" ..

Hors ligne

#5 Le 05/10/2012, à 19:59

loreleil.747

Re : Fail2ban : test ssh

Salut,

@olivier.revollat

olivier.revollat a écrit :

Bonjour a tous,
j'ai installé fail2ban sur un serveur, mais j'avais l'impression que malgré la présence de tentatives d'attaques dans les logs, aucune action n'était faite (ban adresse ip via iptables, ...)
Pour en avoir le coeur net, j'ai fait volontairement quelques tests en tentant de me connecter à mon serveur depuis l'extérieur sans clef privé, ce que je n'ai pas autorisé dans la conf du serveur ssh, donc ça génère des log dans /var/log/auth.log du type :

Sep 17 15:32:16 XXXXXX sshd[2661]: reverse mapping checking getaddrinfo for reverse.xxxxxxx.xxx [xxx.xxx.xxx.xxx] failed - POSSIBLE BREAK-IN ATTEMPT!

Pour ce faire, il te faut adapter la regex .

Ajoutes celle-ci à la suite.

~ # cat /etc/fail2ban/filter.d/sshd.conf 

...

^%(__prefix_line)sreverse mapping checking getaddrinfo for .* \[<HOST>\] failed - POSSIBLE BREAK-IN ATTEMPT!*\s*$

...

Il te restes à vérifier cette dernière.

~ # fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf
Running tests
=============
Use regex file : /etc/fail2ban/filter.d/sshd.conf
Use log file : /var/log/auth.log
Results
=======
Failregex
|- Regular expressions:
...
| [10] ^\s*(?:\S+ )?(?:kernel: \[\d+\.\d+\] )?(?:@vserver_\S+ )?(?:(?:\[\d+\])?:\s+[\[\(]?sshd(?:\(\S+\))?[\]\)]?:?|[\[\(]?sshd(?:\(\S+\))?[\]\)]?:?(?:\[\d+\])?:)?\s*reverse mapping checking getaddrinfo for .* \[<HOST>\] failed - POSSIBLE BREAK-IN ATTEMPT!\s*$

`- Number of matches:
[1] 0 match(es)
[2] 0 match(es)
[3] 0 match(es)
[4] 0 match(es)
[5] 2 match(es)
[6] 0 match(es)
[7] 0 match(es)
[8] 0 match(es)
[9] 0 match(es)
[10] 417 match(es)
[11] 0 match(es)

Ignoreregex
|- Regular expressions:
|
`- Number of matches:
Summary
=======
Addresses found:
[1]
[2]
[3]
[4]
[5]
114.141.180.109 (Thu Oct 04 20:17:50 2012)
199.115.230.96 (Fri Oct 05 00:10:38 2012)
[6]
[7]
[8]
[9]
[10]
186.29.130.105 (Wed Oct 03 21:35:16 2012)
186.29.130.105 (Wed Oct 03 21:37:05 2012)
184.22.105.30 (Thu Oct 04 17:11:51 2012)
184.22.105.30 (Thu Oct 04 17:11:52 2012)
184.22.105.30 (Thu Oct 04 17:11:53 2012)
184.22.105.30 (Thu Oct 04 17:11:54 2012)
184.22.105.30 (Thu Oct 04 17:11:55 2012)
184.22.105.30 (Thu Oct 04 17:11:56 2012)
...
190.221.26.51 (Thu Oct 04 21:36:40 2012)
190.221.26.51 (Thu Oct 04 21:36:57 2012)
190.221.26.51 (Thu Oct 04 21:37:31 2012)
190.221.26.51 (Thu Oct 04 21:37:54 2012)
190.221.26.51 (Thu Oct 04 21:38:08 2012)
190.221.26.51 (Thu Oct 04 21:38:22 2012)
190.221.26.51 (Thu Oct 04 21:38:33 2012)
190.221.26.51 (Thu Oct 04 21:38:45 2012)
190.221.26.51 (Thu Oct 04 21:38:58 2012)
190.221.26.51 (Thu Oct 04 21:39:10 2012)
190.221.26.51 (Thu Oct 04 21:39:22 2012)
190.221.26.51 (Thu Oct 04 21:39:33 2012)
190.221.26.51 (Thu Oct 04 21:39:45 2012)
190.221.26.51 (Thu Oct 04 21:39:59 2012)
190.221.26.51 (Thu Oct 04 21:40:13 2012)
190.221.26.51 (Thu Oct 04 21:40:26 2012)
190.221.26.51 (Thu Oct 04 21:40:41 2012)
190.221.26.51 (Thu Oct 04 21:40:55 2012)
190.221.26.51 (Thu Oct 04 21:41:11 2012)
190.221.26.51 (Thu Oct 04 21:41:26 2012)
190.221.26.51 (Thu Oct 04 21:41:40 2012)
190.221.26.51 (Thu Oct 04 21:41:56 2012)
190.221.26.51 (Thu Oct 04 21:42:08 2012)
190.221.26.51 (Thu Oct 04 21:42:17 2012) ...
190.221.26.51 (Thu Oct 04 21:47:43 2012)
190.221.26.51 (Thu Oct 04 21:47:55 2012)
186.28.235.88 (Fri Oct 05 00:27:03 2012)
186.28.235.88 (Fri Oct 05 00:27:12 2012)
186.28.235.88 (Fri Oct 05 00:29:45 2012)
186.28.235.88 (Fri Oct 05 00:30:09 2012)
186.28.235.88 (Fri Oct 05 00:30:46 2012)
186.28.235.88 (Fri Oct 05 00:31:30 2012)
[11]

Date template hits:
94964 hit(s): MONTH Day Hour:Minute:Second
0 hit(s): WEEKDAY MONTH Day Hour:Minute:Second Year
0 hit(s): WEEKDAY MONTH Day Hour:Minute:Second
0 hit(s): Year/Month/Day Hour:Minute:Second
0 hit(s): Day/Month/Year Hour:Minute:Second
0 hit(s): Day/Month/Year Hour:Minute:Second
0 hit(s): Day/MONTH/Year:Hour:Minute:Second
0 hit(s): Month/Day/Year:Hour:Minute:Second
0 hit(s): Year-Month-Day Hour:Minute:Second
0 hit(s): Year.Month.Day Hour:Minute:Second
0 hit(s): Day-MONTH-Year Hour:Minute:Second[.Millisecond]
0 hit(s): Day-Month-Year Hour:Minute:Second
0 hit(s): TAI64N
0 hit(s): Epoch
0 hit(s): ISO 8601
0 hit(s): Hour:Minute:Second
0 hit(s): <Month/Day/Year@Hour:Minute:Second>
Success, the total number of match is 419
However, look at the above section 'Running tests' which could contain important
information.
~ # 

Je t'en serre cinq .... ^¿^

Hors ligne