# [sshd] blocage ip/attente après 3 essais (résolu)

## LostControl

Salut,

J'ai sur mon serveur à la maison pas mal d'essais de login en ssh (avec des users genre: alan, james, guest, test, george, frank  :Very Happy: ). Les temps de login avec les différents users sont assez court (quelques secondes).

Est-il possible de bloquer une IP après X tentatives infructueuses de login ? Au niveau de sshd ? Par iptables peut-être ?

Sinon est-il possible de ralonger le temps entre 2 demandes de mot de passe ?

MerciLast edited by LostControl on Thu Feb 24, 2005 3:10 pm; edited 1 time in total

----------

## marvin rouge

je sais pas si ca va repondre a ta question, mais tu peux peut etre jouer sur "limit" et "burst" dans les regles iptables .

EDIT :si non y'a le howto de sireyessire qui permet de restreindre l'acces par adresses.

----------

## LostControl

 *marvin rouge wrote:*   

> je sais pas si ca va repondre a ta question, mais tu peux peut etre jouer sur "limit" et "burst" dans les regles iptables .

 

Le problème c'est que je pense que ça va me limiter toutes les requêtes sur le port 22 alors que j'aimerais seulement un contrôle du login  :Sad:  Le howto de sireyessire ne m'apporte rien de plus sur ce point. Je souhaite pouvoir me logguer depuis n'importe où avec mon user (qui est le seul autorisé à se connecter du reste) tout en découragant les petits malins qui font du brut force  :Twisted Evil: 

A+

----------

## marvin rouge

oui, mais quand tu te connectes, tu fais pas plus de 1 connexion/10 secondes (ou alors t'es un psychopathe du ssh   :Smile:  )

donc tu peux mettre une limite à 1/10secondes pour l'état NEW.

et un burst de maniere a ce que quelqu'un qui fait du brute force soit tellement limité en nombre de connexions que ca passera pas.

1/10 secondes, ca doit pouvoir s'augmenter à 1/minute, suivant ton utilisation.

----------

## letoff

 *LostControl wrote:*   

> Je souhaite pouvoir me logguer depuis n'importe où avec mon user (qui est le seul autorisé à se connecter du reste) tout en découragant les petits malins qui font du brut force 
> 
> A+

 

Pourquoi ne pas simplement déplacer ton ssh vers un autre port que le 22? Beaucoup de gens font ça justement pour éviter les scans ports et les tentatives de login qui s'ensuivent.

----------

## LostControl

marvin rouge : c'est juste, ça doit jouer  :Very Happy:  Je vais tenter le coup comme ça ! Merci !

letoff : j'aime pas faire "ssh -p xyz <chez_moi>" c'est trop long  :Wink:  Non en fait, je préfère régler le problème que le déplacer !

Iptables est sans doute la solution la meilleure !!!

Merci

----------

## marvin rouge

je viens de penser a un truc : ce qu'il faudrait, c'est un script qui stocke les adresses pour lequelles t'as eu 3 deny de suite. (3 est un exemple, comme pour les cartes de credit). (genre un grep deny dans les logs ssh)

tu stockes ces adresses dans un fichier, et faudrait que iptables puisse aller verifier dans ce fichier.

hum je sais pas si je suis clair, et puis ca doit etre super-lent de demander à iptables de scanner un fichier. et puis je sais pas si c'est possible.

ca joue pas tout ca.

----------

## sireyessire

 *LostControl wrote:*   

> 
> 
> Le problème c'est que je pense que ça va me limiter toutes les requêtes sur le port 22 alors que j'aimerais seulement un contrôle du login  Le howto de sireyessire ne m'apporte rien de plus sur ce point. Je souhaite pouvoir me logguer depuis n'importe où avec mon user (qui est le seul autorisé à se connecter du reste) tout en découragant les petits malins qui font du brut force 
> 
> 

 

soit j'ai rien compris à ton problème, soit tu as pas bien saisi toutes les subtilités de cet howto (  :Wink:  ).

tu veux que ton user soit le seul à accéder de partout:

no problem

```
AllowUsers tonUser
```

et là seul lui peut se connecter sur ton seveur ssh et de partout, les autres même s'ils ont le bon password se feront jetés.

C'est bizarre je pensais que c'était clairement expliqué dans le howto, faudra peut-être que je modifie certains passages alos   :Confused: 

----------

## LostControl

 *sireyessire wrote:*   

>  *LostControl wrote:*   
> 
> Le problème c'est que je pense que ça va me limiter toutes les requêtes sur le port 22 alors que j'aimerais seulement un contrôle du login  Le howto de sireyessire ne m'apporte rien de plus sur ce point. Je souhaite pouvoir me logguer depuis n'importe où avec mon user (qui est le seul autorisé à se connecter du reste) tout en découragant les petits malins qui font du brut force 
> 
>  
> ...

 

T'inquiète, ton howto est très clair mais je crois que sur ce coup-là, tu n'as pas trop compris ce que je souhaitais faire  :Wink:  J'utilise AllowUsers et seul mon compte est autorisé mais ce que je veux faire, c'est que les petits malins qui font du brute force se fassent gicler après 3 essais de login par exemple.

Prenons un exemple pour être clair :

Un gars tente de se logguer chez moi avec le user "toto", il met un password faux ou l'utilisateur "toto" n'existe pas ou n'est pas autorisé à se logguer. Maintenant, il peut réessayer avec "tata", "titi", "jules", ... peut-être qu'un jour il trouvera mon username et mon password par cette technique. Mon but est de lui refuser toute connexion après 3 essais infructueux par exemple pendant disons 10 minutes. Ca va déjà le calmer et il ira emmerder quelqu'un d'autre  :Very Happy: 

J'espère que tu as bien saisi toutes les subtilités de mon problème  :Wink: 

marvin rouge : j'avais pensé à ça aussi mais à mon avis iptables tout seul ne fera pas l'affaire. Maintenant je me demande s'il existe un soft qui le fasse ! Sinon, ça serait assez intéressant de le faire  :Very Happy: 

----------

## marvin rouge

 *Quote:*   

> Maintenant je me demande s'il existe un soft qui le fasse ! Sinon, ça serait assez intéressant de le faire 

 

bonne chance  :Very Happy: 

je veux bien faire testeur, mais j'ai jamais fait de programation.    :Confused: 

----------

## sireyessire

 *LostControl wrote:*   

> 
> 
> T'inquiète, ton howto est très clair mais je crois que sur ce coup-là, tu n'as pas trop compris ce que je souhaitais faire  J'utilise AllowUsers et seul mon compte est autorisé mais ce que je veux faire, c'est que les petits malins qui font du brute force se fassent gicler après 3 essais de login par exemple.
> 
> . Ca va déjà le calmer et il ira emmerder quelqu'un d'autre 
> ...

 

oui.

mais, je pense que ce n'est que des tentatives de petits script-kiddies isolés qui ont juste une bibliothèques de login type et qui lancent ça sur un panel d'ip. Bref, ce sont qu'un tas de petits branleurs qui ne vont pas tester toutes les combinaisons possibles de login. Et puis pour qu'ils se tapent toutes les combi possibles de login/pass et qu'ils trouvent le tien il va leur en falloir du temps  :Razz: 

enfin si tu arrives à trouver un truc qui fassent ça ça peut être intéressant, tiens nous au courant   :Wink: 

----------

## marvin rouge

en fait la méthode limit/burst c'est pas top, parce que si quelqu'un fait du brute force, tu es bloqué en même temps que lui.

j'ai trouvé  ca  (voir en bas de page)  pas encore testé

----------

## LostControl

Alors en fait, j'ai écrit un petit soft en Python (j'en ai profité pour essayer ce langage) qui scanne le fichier /var/log/pwdfail/current et qui bannit les IP qui ont trop d'erreur de login.

J'ai soumis le projet sur sourceforge.net et il vient d'être approuvé  :Very Happy:  Voici la page : fail2ban. Le nom est pas terrible mais c'est tout ce que j'ai trouvé sur le coup  :Wink:  Je vais nettoyer un peu le code (je débute totalement en Python) et ensuite importer un première version dans le CVS.

Mon but est de supporter d'autre syslog daemon que metalog et pourquoi pas d'autre firewall qu'iptables. Si certains sont intéressés pour faire des tests...

A+

----------

## marvin rouge

 :Smile: 

suis interessé : syslog-ng + iptables

si tu veux qu'on communique + directement, je t'envoie mon mail par PM

+

----------

## moon69

en faite ce que tu veut faire, pour resoudre le probleme revient a faire un firewall proxying applicatif!

je cherche des info pour savoir comment bricoler ce genre de truc!

ya des boites qui propose des firewall baser sur linux, genre arkoon, j'ai pas eu la chance d'en avoir entre les mains, mais je suis curieux de voir avec quoi il font ca!

si yen a qui connaissent ?

----------

## LostControl

Salut,

Juste pour info, je viens de sortir une première version alpha de Fail2Ban. J'invite les personnes qui possèdent un serveur à tester cette version et à me dire ce que vous en pensez. Soyez pas trop dur ça fait pas une semaine que j'ai commencé à apprendre le Python  :Very Happy: 

Vous trouverez tout ici --> http://sourceforge.net/projects/fail2ban/

J'espère que ça rendra service à quelqu'un  :Wink: 

A+

----------

## pat

Si tu es le seul utilisateur de ton serveur SSH, pourquoi ne pas changer son port ?

Ces indélicats utilisateurs d'internet cherchent surtout des "vieux" serveurs SSH, ayant un trou de sécurité. Ils n'en sont pas encore à scanner tous les ports pour tenter leur connection SSH...

De plus, tu peux configurer ton serveur de tel sorte qu'il n'accepte pas d'authentification par mot de passe.

----------

## LostControl

 *pat wrote:*   

> Si tu es le seul utilisateur de ton serveur SSH, pourquoi ne pas changer son port ?

 

J'aime respecter les standards  :Wink:  Et ça n'empêcherait pas quelqu'un qui a trouvé le port de faire du "brute force".

 *pat wrote:*   

> De plus, tu peux configurer ton serveur de tel sorte qu'il n'accepte pas d'authentification par mot de passe.

 

Désolé mais je ne me connecte pas toujours depuis la même machine. C'est le seul moyen rapide et efficace de pouvoir se logguer depuis n'importe où. J'utilise une authentification par clé chez moi et depuis mon laptop mais si je veux me connecter depuis n'importe quelle station connectée au Net et ben y'a pas 30 milles moyens !!!

A+

----------

## ttgeub

Bien que je n'ai pas participé de prés à ce thread, je voudrai simplement dire qu'une solution à ce genre de problemes s'impose urgemment :

Voici le compte rendu de mes logs ce matin (je ne met qu'une seule attaque) :  

```

Oct 16 08:23:19 tty sshd[6848]: Did not receive identification string from 209.25.178.70

Oct 16 08:30:08 tty sshd[6875]: Failed password for nobody from 209.25.178.70 port 35184 ssh2

Oct 16 08:30:09 tty sshd[6878]: Invalid user patrick from 209.25.178.70

Oct 16 08:30:09 tty sshd[6878]: error: Could not get shadow information for NOUSER

Oct 16 08:30:09 tty sshd[6878]: Failed password for invalid user patrick from 209.25.178.70 port 35215 ssh2

Oct 16 08:30:11 tty sshd[6881]: Invalid user patrick from 209.25.178.70

Oct 16 08:30:11 tty sshd[6881]: error: Could not get shadow information for NOUSER

Oct 16 08:30:11 tty sshd[6881]: Failed password for invalid user patrick from 209.25.178.70 port 35236 ssh2

Oct 16 08:30:13 tty sshd[6884]: Failed password for root from 209.25.178.70 port 35263 ssh2                

Oct 16 08:30:14 tty sshd[6887]: Failed password for root from 209.25.178.70 port 35292 ssh2

Oct 16 08:30:16 tty sshd[6890]: Failed password for root from 209.25.178.70 port 35316 ssh2

Oct 16 08:30:17 tty sshd[6893]: Failed password for root from 209.25.178.70 port 35340 ssh2

Oct 16 08:30:19 tty sshd[6896]: Failed password for root from 209.25.178.70 port 35376 ssh2

Oct 16 08:30:21 tty sshd[6899]: Invalid user rolo from 209.25.178.70                       

Oct 16 08:30:21 tty sshd[6899]: error: Could not get shadow information for NOUSER

Oct 16 08:30:21 tty sshd[6899]: Failed password for invalid user rolo from 209.25.178.70 port 35408 ssh2

Oct 16 08:30:22 tty sshd[6902]: Invalid user iceuser from 209.25.178.70                            

Oct 16 08:30:22 tty sshd[6902]: error: Could not get shadow information for NOUSER

Oct 16 08:30:22 tty sshd[6902]: Failed password for invalid user iceuser from 209.25.178.70 port 35443 ssh2

Oct 16 08:30:24 tty sshd[6905]: Invalid user horde from 209.25.178.70                                      

Oct 16 08:30:24 tty sshd[6905]: error: Could not get shadow information for NOUSER

Oct 16 08:30:24 tty sshd[6905]: Failed password for invalid user horde from 209.25.178.70 port 35474 ssh2

Oct 16 08:30:26 tty sshd[6908]: Invalid user cyrus from 209.25.178.70                                    

Oct 16 08:30:26 tty sshd[6908]: error: Could not get shadow information for NOUSER

Oct 16 08:30:26 tty sshd[6908]: Failed password for invalid user cyrus from 209.25.178.70 port 35507 ssh2   

Oct 16 08:30:27 tty sshd[6911]: Invalid user www from 209.25.178.70

Oct 16 08:30:27 tty sshd[6911]: error: Could not get shadow information for NOUSER

Oct 16 08:30:27 tty sshd[6911]: Failed password for invalid user www from 209.25.178.70 port 35540 ssh2  

Oct 16 08:30:29 tty sshd[6914]: Invalid user wwwrun from 209.25.178.70

Oct 16 08:30:29 tty sshd[6914]: error: Could not get shadow information for NOUSER

Oct 16 08:30:29 tty sshd[6914]: Failed password for invalid user wwwrun from 209.25.178.70 port 35570 ssh2

Oct 16 08:30:31 tty sshd[6917]: Invalid user matt from 209.25.178.70

Oct 16 08:30:31 tty sshd[6917]: error: Could not get shadow information for NOUSER

Oct 16 08:30:31 tty sshd[6917]: Failed password for invalid user matt from 209.25.178.70 port 35605 ssh2

Oct 16 08:30:32 tty sshd[6920]: Invalid user test from 209.25.178.70

Oct 16 08:30:32 tty sshd[6920]: error: Could not get shadow information for NOUSER

Oct 16 08:30:32 tty sshd[6920]: Failed password for invalid user test from 209.25.178.70 port 35636 ssh2

Oct 16 08:30:34 tty sshd[6923]: Invalid user test from 209.25.178.70

Oct 16 08:30:34 tty sshd[6923]: error: Could not get shadow information for NOUSER

Oct 16 08:30:34 tty sshd[6923]: Failed password for invalid user test from 209.25.178.70 port 35671 ssh2

Oct 16 08:30:35 tty sshd[6926]: Invalid user test from 209.25.178.70

Oct 16 08:30:35 tty sshd[6926]: error: Could not get shadow information for NOUSER

Oct 16 08:30:35 tty sshd[6926]: Failed password for invalid user test from 209.25.178.70 port 35708 ssh2

Oct 16 08:30:37 tty sshd[6929]: Invalid user test from 209.25.178.70

Oct 16 08:30:37 tty sshd[6929]: error: Could not get shadow information for NOUSER

Oct 16 08:30:37 tty sshd[6929]: Failed password for invalid user test from 209.25.178.70 port 35735 ssh2

Oct 16 08:30:39 tty sshd[6932]: Invalid user www-data from 209.25.178.70

Oct 16 08:30:39 tty sshd[6932]: error: Could not get shadow information for NOUSER

Oct 16 08:30:39 tty sshd[6932]: Failed password for invalid user www-data from 209.25.178.70 port 35772 ssh2

Oct 16 08:30:40 tty sshd[6935]: User mysql not allowed because account is locked

Oct 16 08:30:40 tty sshd[6935]: error: Could not get shadow information for NOUSER

Oct 16 08:30:40 tty sshd[6935]: Failed password for invalid user mysql from 209.25.178.70 port 35800 ssh2

Oct 16 08:30:42 tty sshd[6938]: Failed password for operator from 209.25.178.70 port 35835 ssh2

Oct 16 08:30:44 tty sshd[6941]: Failed password for adm from 209.25.178.70 port 35865 ssh2

Oct 16 08:30:45 tty sshd[6944]: Invalid user apache from 209.25.178.70

Oct 16 08:30:45 tty sshd[6944]: error: Could not get shadow information for NOUSER

Oct 16 08:30:45 tty sshd[6944]: Failed password for invalid user apache from 209.25.178.70 port 35896 ssh2

Oct 16 08:30:47 tty sshd[6947]: Invalid user irc from 209.25.178.70

Oct 16 08:30:47 tty sshd[6947]: error: Could not get shadow information for NOUSER

Oct 16 08:30:47 tty sshd[6947]: Failed password for invalid user irc from 209.25.178.70 port 35930 ssh2

Oct 16 08:30:49 tty sshd[6950]: Invalid user irc from 209.25.178.70

Oct 16 08:30:49 tty sshd[6950]: error: Could not get shadow information for NOUSER

Oct 16 08:30:49 tty sshd[6950]: Failed password for invalid user irc from 209.25.178.70 port 35959 ssh2

Oct 16 08:30:50 tty sshd[6953]: Failed password for adm from 209.25.178.70 port 35989 ssh2

Oct 16 08:30:52 tty sshd[6956]: Failed password for root from 209.25.178.70 port 36020 ssh2

Oct 16 08:30:53 tty sshd[6960]: Failed password for root from 209.25.178.70 port 36053 ssh2

Oct 16 08:30:55 tty sshd[6963]: Failed password for root from 209.25.178.70 port 36085 ssh2

Oct 16 08:30:57 tty sshd[6966]: Invalid user jane from 209.25.178.70

Oct 16 08:30:57 tty sshd[6966]: error: Could not get shadow information for NOUSER

Oct 16 08:30:57 tty sshd[6966]: Failed password for invalid user jane from 209.25.178.70 port 36111 ssh2

Oct 16 08:30:57 tty sshd[6969]: Accepted publickey for root from 192.168.0.12 port 46272 ssh2

Oct 16 08:30:58 tty sshd[6985]: Invalid user pamela from 209.25.178.70

Oct 16 08:30:58 tty sshd[6985]: error: Could not get shadow information for NOUSER

Oct 16 08:30:58 tty sshd[6985]: Failed password for invalid user pamela from 209.25.178.70 port 36145 ssh2

Oct 16 08:31:00 tty sshd[6988]: Failed password for root from 209.25.178.70 port 36175 ssh2

Oct 16 08:31:02 tty sshd[6991]: Failed password for root from 209.25.178.70 port 36206 ssh2

Oct 16 08:31:03 tty sshd[6994]: Failed password for root from 209.25.178.70 port 36237 ssh2

Oct 16 08:31:05 tty sshd[6998]: Failed password for root from 209.25.178.70 port 36271 ssh2

Oct 16 08:31:08 tty sshd[7004]: Invalid user cosmin from 209.25.178.70

Oct 16 08:31:08 tty sshd[7004]: error: Could not get shadow information for NOUSER

Oct 16 08:31:08 tty sshd[7004]: Failed password for invalid user cosmin from 209.25.178.70 port 36334 ssh2

Oct 16 08:31:10 tty sshd[7008]: Failed password for root from 209.25.178.70 port 36365 ssh2

Oct 16 08:31:11 tty sshd[7011]: Failed password for root from 209.25.178.70 port 36396 ssh2

Oct 16 08:31:13 tty sshd[7014]: Failed password for root from 209.25.178.70 port 36427 ssh2

Oct 16 08:31:15 tty sshd[7017]: Failed password for root from 209.25.178.70 port 36455 ssh2

Oct 16 08:31:16 tty sshd[7020]: Failed password for root from 209.25.178.70 port 36485 ssh2

Oct 16 08:31:18 tty sshd[7023]: Failed password for root from 209.25.178.70 port 36515 ssh2

Oct 16 08:31:20 tty sshd[7026]: Failed password for root from 209.25.178.70 port 36545 ssh2

Oct 16 08:31:21 tty sshd[7029]: Failed password for root from 209.25.178.70 port 36577 ssh2

Oct 16 08:31:23 tty sshd[7032]: Failed password for root from 209.25.178.70 port 36607 ssh2

Oct 16 08:31:24 tty sshd[7035]: Failed password for root from 209.25.178.70 port 36641 ssh2

Oct 16 08:31:26 tty sshd[7038]: Failed password for root from 209.25.178.70 port 36666 ssh2

Oct 16 08:31:28 tty sshd[7041]: Failed password for root from 209.25.178.70 port 36694 ssh2

Oct 16 08:31:29 tty sshd[7044]: Failed password for root from 209.25.178.70 port 36722 ssh2

Oct 16 08:31:31 tty sshd[7047]: Failed password for root from 209.25.178.70 port 36754 ssh2

Oct 16 08:31:33 tty sshd[7050]: Failed password for root from 209.25.178.70 port 36787 ssh2

Oct 16 08:31:34 tty sshd[7053]: Failed password for root from 209.25.178.70 port 36813 ssh2

Oct 16 08:31:36 tty sshd[7056]: Failed password for root from 209.25.178.70 port 36844 ssh2

Oct 16 08:31:37 tty sshd[7059]: Failed password for root from 209.25.178.70 port 36874 ssh2

Oct 16 08:31:39 tty sshd[7062]: Failed password for root from 209.25.178.70 port 36901 ssh2

Oct 16 08:31:41 tty sshd[7065]: Failed password for root from 209.25.178.70 port 36935 ssh2

Oct 16 08:31:42 tty sshd[7068]: Failed password for root from 209.25.178.70 port 36961 ssh2

Oct 16 08:31:44 tty sshd[7071]: Failed password for root from 209.25.178.70 port 36995 ssh2

Oct 16 08:31:46 tty sshd[7074]: Failed password for root from 209.25.178.70 port 37027 ssh2

Oct 16 08:31:47 tty sshd[7077]: Failed password for root from 209.25.178.70 port 37051 ssh2

Oct 16 08:31:49 tty sshd[7081]: Failed password for root from 209.25.178.70 port 37083 ssh2

Oct 16 08:31:50 tty sshd[7084]: Failed password for root from 209.25.178.70 port 37110 ssh2

Oct 16 08:31:52 tty sshd[7087]: Failed password for root from 209.25.178.70 port 37140 ssh2

Oct 16 08:31:54 tty sshd[7091]: Failed password for root from 209.25.178.70 port 37170 ssh2

Oct 16 08:31:55 tty sshd[7094]: Failed password for root from 209.25.178.70 port 37199 ssh2

Oct 16 08:31:57 tty sshd[7097]: Failed password for root from 209.25.178.70 port 37228 ssh2

Oct 16 08:31:59 tty sshd[7100]: Failed password for root from 209.25.178.70 port 37263 ssh2

Oct 16 08:32:00 tty sshd[7103]: Failed password for root from 209.25.178.70 port 37293 ssh2

Oct 16 08:32:02 tty sshd[7106]: Failed password for root from 209.25.178.70 port 37319 ssh2

Oct 16 08:32:04 tty sshd[7109]: Failed password for root from 209.25.178.70 port 37347 ssh2

Oct 16 08:32:05 tty sshd[7112]: Failed password for root from 209.25.178.70 port 37374 ssh2

Oct 16 08:32:07 tty sshd[7115]: Failed password for root from 209.25.178.70 port 37410 ssh2

Oct 16 08:32:08 tty sshd[7118]: Invalid user cip52 from 209.25.178.70

Oct 16 08:32:08 tty sshd[7118]: error: Could not get shadow information for NOUSER

Oct 16 08:32:08 tty sshd[7118]: Failed password for invalid user cip52 from 209.25.178.70 port 37434 ssh2

Oct 16 08:32:10 tty sshd[7121]: Invalid user cip51 from 209.25.178.70

Oct 16 08:32:10 tty sshd[7121]: error: Could not get shadow information for NOUSER

Oct 16 08:32:10 tty sshd[7121]: Failed password for invalid user cip51 from 209.25.178.70 port 37465 ssh2

Oct 16 08:32:12 tty sshd[7124]: Failed password for root from 209.25.178.70 port 37491 ssh2

Oct 16 08:32:13 tty sshd[7127]: Invalid user noc from 209.25.178.70

Oct 16 08:32:13 tty sshd[7127]: error: Could not get shadow information for NOUSER

Oct 16 08:32:13 tty sshd[7127]: Failed password for invalid user noc from 209.25.178.70 port 37519 ssh2

Oct 16 08:32:15 tty sshd[7130]: Failed password for root from 209.25.178.70 port 37550 ssh2

Oct 16 08:32:17 tty sshd[7133]: Failed password for root from 209.25.178.70 port 37582 ssh2

Oct 16 08:32:18 tty sshd[7136]: Failed password for root from 209.25.178.70 port 37607 ssh2

Oct 16 08:32:19 tty sshd[7142]: Accepted publickey for root from 192.168.0.12 port 46275 ssh2

Oct 16 08:32:20 tty sshd[7139]: Failed password for root from 209.25.178.70 port 37632 ssh2  

Oct 16 08:32:21 tty sshd[7158]: Invalid user webmaster from 209.25.178.70

Oct 16 08:32:21 tty sshd[7158]: error: Could not get shadow information for NOUSER

Oct 16 08:32:21 tty sshd[7158]: Failed password for invalid user webmaster from 209.25.178.70 port 37665 ssh2

Oct 16 08:32:23 tty sshd[7161]: Invalid user data from 209.25.178.70

Oct 16 08:32:23 tty sshd[7161]: error: Could not get shadow information for NOUSER

Oct 16 08:32:23 tty sshd[7161]: Failed password for invalid user data from 209.25.178.70 port 37693 ssh2

Oct 16 08:32:25 tty sshd[7165]: Invalid user user from 209.25.178.70

Oct 16 08:32:25 tty sshd[7165]: error: Could not get shadow information for NOUSER

Oct 16 08:32:25 tty sshd[7165]: Failed password for invalid user user from 209.25.178.70 port 37724 ssh2

Oct 16 08:32:26 tty sshd[7168]: Invalid user user from 209.25.178.70

Oct 16 08:32:26 tty sshd[7168]: error: Could not get shadow information for NOUSER

Oct 16 08:32:26 tty sshd[7168]: Failed password for invalid user user from 209.25.178.70 port 37748 ssh2

Oct 16 08:32:28 tty sshd[7171]: Invalid user user from 209.25.178.70

Oct 16 08:32:28 tty sshd[7171]: error: Could not get shadow information for NOUSER

Oct 16 08:32:28 tty sshd[7171]: Failed password for invalid user user from 209.25.178.70 port 37776 ssh2

Oct 16 08:32:30 tty sshd[7174]: Invalid user web from 209.25.178.70

Oct 16 08:32:30 tty sshd[7174]: error: Could not get shadow information for NOUSER

Oct 16 08:32:30 tty sshd[7174]: Failed password for invalid user web from 209.25.178.70 port 37810 ssh2

Oct 16 08:32:31 tty sshd[7177]: Invalid user web from 209.25.178.70

Oct 16 08:32:31 tty sshd[7177]: error: Could not get shadow information for NOUSER

Oct 16 08:32:31 tty sshd[7177]: Failed password for invalid user web from 209.25.178.70 port 37832 ssh2

Oct 16 08:32:33 tty sshd[7180]: Invalid user oracle from 209.25.178.70

Oct 16 08:32:33 tty sshd[7180]: error: Could not get shadow information for NOUSER

Oct 16 08:32:33 tty sshd[7180]: Failed password for invalid user oracle from 209.25.178.70 port 37868 ssh2

Oct 16 08:32:35 tty sshd[7183]: Invalid user sybase from 209.25.178.70

Oct 16 08:32:35 tty sshd[7183]: error: Could not get shadow information for NOUSER

Oct 16 08:32:35 tty sshd[7183]: Failed password for invalid user sybase from 209.25.178.70 port 37889 ssh2

Oct 16 08:32:36 tty sshd[7186]: Invalid user master from 209.25.178.70

Oct 16 08:32:36 tty sshd[7186]: error: Could not get shadow information for NOUSER

Oct 16 08:32:36 tty sshd[7186]: Failed password for invalid user master from 209.25.178.70 port 37916 ssh2

Oct 16 08:32:38 tty sshd[7189]: Invalid user account from 209.25.178.70

Oct 16 08:32:38 tty sshd[7189]: error: Could not get shadow information for NOUSER

Oct 16 08:32:38 tty sshd[7189]: Failed password for invalid user account from 209.25.178.70 port 37948 ssh2

Oct 16 08:32:39 tty sshd[7192]: Invalid user backup from 209.25.178.70

Oct 16 08:32:39 tty sshd[7192]: error: Could not get shadow information for NOUSER

Oct 16 08:32:39 tty sshd[7192]: Failed password for invalid user backup from 209.25.178.70 port 37971 ssh2

Oct 16 08:32:41 tty sshd[7195]: Invalid user server from 209.25.178.70

Oct 16 08:32:41 tty sshd[7195]: error: Could not get shadow information for NOUSER

Oct 16 08:32:41 tty sshd[7195]: Failed password for invalid user server from 209.25.178.70 port 38005 ssh2

Oct 16 08:32:43 tty sshd[7198]: Invalid user adam from 209.25.178.70

Oct 16 08:32:43 tty sshd[7198]: error: Could not get shadow information for NOUSER

Oct 16 08:32:43 tty sshd[7198]: Failed password for invalid user adam from 209.25.178.70 port 38034 ssh2

Oct 16 08:32:45 tty sshd[7201]: Invalid user alan from 209.25.178.70

Oct 16 08:32:45 tty sshd[7201]: error: Could not get shadow information for NOUSER

Oct 16 08:32:45 tty sshd[7201]: Failed password for invalid user alan from 209.25.178.70 port 38064 ssh2

Oct 16 08:32:46 tty sshd[7204]: Invalid user frank from 209.25.178.70

Oct 16 08:32:46 tty sshd[7204]: error: Could not get shadow information for NOUSER

Oct 16 08:32:46 tty sshd[7204]: Failed password for invalid user frank from 209.25.178.70 port 38089 ssh2

Oct 16 08:32:48 tty sshd[7207]: Invalid user george from 209.25.178.70

Oct 16 08:32:48 tty sshd[7207]: error: Could not get shadow information for NOUSER

Oct 16 08:32:48 tty sshd[7207]: Failed password for invalid user george from 209.25.178.70 port 38117 ssh2

Oct 16 08:32:49 tty sshd[7210]: Invalid user henry from 209.25.178.70

Oct 16 08:32:50 tty sshd[7210]: error: Could not get shadow information for NOUSER

Oct 16 08:32:50 tty sshd[7210]: Failed password for invalid user henry from 209.25.178.70 port 38146 ssh2

Oct 16 08:32:51 tty sshd[7213]: Invalid user john from 209.25.178.70

Oct 16 08:32:51 tty sshd[7213]: error: Could not get shadow information for NOUSER

Oct 16 08:32:51 tty sshd[7213]: Failed password for invalid user john from 209.25.178.70 port 38168 ssh2

Oct 16 08:32:53 tty sshd[7216]: Failed password for root from 209.25.178.70 port 38195 ssh2

Oct 16 08:32:54 tty sshd[7220]: Failed password for root from 209.25.178.70 port 38217 ssh2

Oct 16 08:32:56 tty sshd[7223]: Failed password for root from 209.25.178.70 port 38248 ssh2

Oct 16 08:32:58 tty sshd[7226]: Failed password for root from 209.25.178.70 port 38271 ssh2

Oct 16 08:32:59 tty sshd[7229]: Failed password for root from 209.25.178.70 port 38293 ssh2

Oct 16 08:33:01 tty sshd[7232]: Invalid user test from 209.25.178.70

Oct 16 08:33:01 tty sshd[7232]: error: Could not get shadow information for NOUSER

Oct 16 08:33:01 tty sshd[7232]: Failed password for invalid user test from 209.25.178.70 port 38324 ssh2

```

Voila, voila ....

Perso je ne vois pas d'autre solution que de script la lecture des logs et d'interdire l'ip via le firewall ....

----------

## LostControl

Alors je t'invite à tester fail2ban --> http://sourceforge.net/projects/fail2ban/

Si possible, utilise la dernière version CVS, il y a eu quelques changements depuis la première version:

```
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/fail2ban login

cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/fail2ban co fail2ban
```

En cas de problème, n'hésite pas à utiliser le forum du projet sur SourceForge.net.

A+

----------

## sireyessire

ce qui tu peux aller voir sinon c'est le port knocking: en gros tu envoies avant de te connecter une séquence de paquets sur des ports particuliers, le serveur regarde si c'est la même que sa référence et dans le cas où c'est bon, il trouve le port 22. Sinon tu te feras gicler par iptables.

le site qui va bien

----------

## LostControl

[MODE PUB]

Voilà juste ce que me retourne fail2ban ce matin:

```
# fail2ban.py -v

18.10.2004 22:56:16.506 INFO Fail2Ban v0.1.0-CVS is running

19.10.2004 00:37:59.941 INFO Ban 162.105.204.75

19.10.2004 00:48:00.042 INFO Unban 162.105.204.75

19.10.2004 01:10:32.975 INFO Ban 212.45.26.46

19.10.2004 01:20:33.897 INFO Unban 212.45.26.46

19.10.2004 04:30:10.150 INFO Ban 222.45.45.132

19.10.2004 04:40:11.137 INFO Unban 222.45.45.132
```

Trois tentatives de login bloquées dans la nuit  :Very Happy: 

[/MODE PUB]

Désolé pour cette pub mais je cherche un peu de feedback de la part de gens qui l'ont testé. C'est pas facile de faire connaitre un petit soft malheureusement  :Sad: 

A+

----------

## marvin rouge

moi il m'a rien bloqué cette nuit  :Sad: 

je dois avoir un pb de config.

a suivre

----------

## sireyessire

 *LostControl wrote:*   

> Désolé pour cette pub mais je cherche un peu de feedback de la part de gens qui l'ont testé. C'est pas facile de faire connaitre un petit soft malheureusement 
> 
> A+

 

je comprends mais les gens (et moi en particulier) le testeront d'autant plus s'il y a un ebuild qui va bien. Donc, si tu peux l'écrire ça serait pas mal, qu'il soit dans le vrai portage on s'en fout, mais comme ça tu mets l'ebuild à downloader sur sourceforge.

nb: même qu'un ebuild qui fetche la version cvs ça serait drolement bien   :Wink: 

----------

## LostControl

 *sireyessire wrote:*   

> nb: même qu'un ebuild qui fetche la version cvs ça serait drolement bien  

 

Je vais voir ça !

Merci  :Very Happy: 

----------

## kwenspc

je suis intéréssé par ton programme, j'ai 2 serveurs sur lequels ton script me serait très utile. 

le seul petit problème est que je n'ai pas le fichier de log /var/log/pwdfail/current

avec quel package je pourrais avoir ça?

j'utilise bien syslog-ng sinon.

----------

## marvin rouge

avec syslog-ng, c'est /var/log/messages

ou bien c'est le fichier dans lequel tu rediriges tes logs ssh (voir la config de syslog-ng)

/var/log/pwdfail/current c'est pour metalog.

Pour fail2ban, il faut que tu modifies le fichier de conf /etc/fail2ban pour lui indiquer le bon fichier de log

----------

## kwenspc

ok  :Smile: 

----------

## LostControl

Salut,

J'ai sortie la version 0.1.1 aujourd'hui. Il s'agit de la dernière version CVS d'il y a quelques jours. La plupart de ce que je voulais est implémenté (configuration par /etc/fail2ban.conf, gestion du signal SIGTERM, nettoyage et documentation du code, ...) et, chez moi du moins, ça tourne bien  :Very Happy: 

```
# fail2ban.py -v

18.10.2004 22:56:16.506 INFO Fail2Ban v0.1.0-CVS is running

19.10.2004 00:37:59.941 INFO Ban 162.105.204.75

19.10.2004 00:48:00.042 INFO Unban 162.105.204.75

19.10.2004 01:10:32.975 INFO Ban 212.45.26.46

19.10.2004 01:20:33.897 INFO Unban 212.45.26.46

19.10.2004 04:30:10.150 INFO Ban 222.45.45.132

19.10.2004 04:40:11.137 INFO Unban 222.45.45.132

20.10.2004 02:07:18.178 INFO Ban 209.30.96.152

20.10.2004 02:17:19.132 INFO Unban 209.30.96.152

20.10.2004 20:13:16.039 INFO Ban 210.99.250.246

20.10.2004 20:23:17.013 INFO Unban 210.99.250.246

21.10.2004 20:22:38.107 INFO Ban 220.70.167.67

21.10.2004 20:32:39.072 INFO Unban 220.70.167.67

23.10.2004 10:46:29.758 INFO Restoring iptables...

23.10.2004 10:46:29.760 INFO Exiting...
```

En cas de problèmes ou simplement de questions, n'hésitez pas à utiliser le forum du projet sur SourceForge.net.

A+

----------

## LostControl

Voilà, un ebuild pour fail2ban est disponible ici --> http://fail2ban.sourceforge.net/fail2ban-0.1.1.ebuild

Pour l'installation, je vous conseille de mettre cet ebuild dans le répertoire "net-firewall" de votre PORTAGE_OVERLAY.

A+

----------

## sireyessire

 *LostControl wrote:*   

> Voilà, un ebuild pour fail2ban est disponible ici --> http://fail2ban.sourceforge.net/fail2ban-0.1.1.ebuild
> 
> Pour l'installation, je vous conseille de mettre cet ebuild dans le répertoire "net-firewall" de votre PORTAGE_OVERLAY.
> 
> A+

 

merci.

ps cette version elle marche avec autre chose que metalog?

----------

## marvin rouge

la version CVS marchait avec syslog-ng, donc je suppose que cette version marche aussi avec. Il s'agit juste de configurer le fichier de log à scanner dans /etc/fail2ban : soit /var/log/everything/current pour metalog, soit /var/log/messages (ou bien /var/log/sshd.log si t'as configuré syslog pour trier les messages ssh dans sshd.log)

+

----------

## sireyessire

 *marvin rouge wrote:*   

> la version CVS marchait avec syslog-ng, donc je suppose que cette version marche aussi avec. Il s'agit juste de configurer le fichier de log à scanner dans /etc/fail2ban : soit /var/log/everything/current pour metalog, soit /var/log/messages (ou bien /var/log/sshd.log si t'as configuré syslog pour trier les messages ssh dans sshd.log)
> 
> +

 

cool. j'essaierai mais je sais pas si ça va être compatible avec firehol (bien que ce soit du iptables)

----------

## marvin rouge

je connais pas firehol.

fail2ban ajoute et supprime des règles DROP à INPUT. A mon avis - mais je peux vraiment me planter, corrigez moi - fail2ban est indépendant de ta config firwall, du moment que tu utilises iptables.

ca serait interressant que tu fasses part de ton expérience.

+

----------

## sireyessire

 *marvin rouge wrote:*   

> je connais pas firehol.
> 
> fail2ban ajoute et supprime des règles DROP à INPUT. A mon avis - mais je peux vraiment me planter, corrigez moi - fail2ban est indépendant de ta config firwall, du moment que tu utilises iptables.
> 
> ca serait interressant que tu fasses part de ton expérience.
> ...

 

firehol est un générateur(écrit en bash) de script iptables. Donc à priori si tu changes ta config il va ré-écrire les scripts iptables et perdre les infos de fail2ban mais elles se recréeront après je pense. Je testerai et j'annoncerai la couleur après  :Very Happy: 

----------

## LostControl

 *sireyessire wrote:*   

> firehol est un générateur(écrit en bash) de script iptables. Donc à priori si tu changes ta config il va ré-écrire les scripts iptables et perdre les infos de fail2ban mais elles se recréeront après je pense. Je testerai et j'annoncerai la couleur après 

 

En effet, si tu écrases tes règles de firewall, celles de fail2ban seront également supprimées. Cela a peu d'importance à mon avis étant donné que de toute façon une IP est banni pour 10 minutes (par défaut) donc après la règle iptables est automatiquement supprimée. Dans tous les cas, si tu redémarre fail2ban APRES avoir modifié tes règles de firewall (avec firehol ou autre), les IPs a bannir (s'il y en a) seront bannies.

Fail2ban rajoute simplement une règle DROP au début de la chaîne INPUT de manière à bloquer au plus tôt l'intrus.

Je serais ravi d'avoir tes commentaires  :Very Happy: 

A+

----------

## sireyessire

```
#!/sbin/runscript

# Distributed under the terms of the GNU General Public License v2

# written by Sireyessire 2004-10-24

depend() {

        need net

        need logger

        after iptables

}

start() {

        ebegin "Starting fail2ban"

        /usr/bin/fail2ban.py

        eend $? "Failed to start fail2ban"

}

stop() {

        ebegin "Stopping fail2ban"

        killall fail2ban.py

        eend $? "Failed to stop fail2ban"

}

```

tiens je pense que ça doit faire l'affaire pour un script /etc/init.d/fail2ban

je l'utilise en ce moment ça a l'air de bien se passer.

je vais le laisser tourner un moment on verra le feedback demain ou mardi  :Very Happy: 

----------

## LostControl

Un grand merci pour ta contribution  :Very Happy: 

Juste, je pense qu'il faut starter fail2ban en daemon et donc rajouter "-b".

```
#!/sbin/runscript

# Distributed under the terms of the GNU General Public License v2

# written by Sireyessire 2004-10-24

depend() {

        need net

        need logger

        after iptables

}

start() {

        ebegin "Starting fail2ban"

        /usr/bin/fail2ban.py -b

        eend $? "Failed to start fail2ban"

}

stop() {

        ebegin "Stopping fail2ban"

        killall fail2ban.py

        eend $? "Failed to stop fail2ban"

} 
```

Ainsi tu retrouves la main sur la console et fail2ban est complétement détaché de celle-ci. De plus, les messages sont redirigés vers /var/log/fail2ban.log. Fait un "cat" de ce fichier pour contrôler que fail2ban est bien démarré.

Sinon, il a également la possibilité de mettre:

```
background = true
```

dans le fichier de config /etc/fail2ban.conf. Mais comme le fichier de conf par défaut ne contient pas cette valeur, je pense qu'il est préférable de démarrer fail2ban dans un runscript avec l'option "-b".

Encore merci  :Very Happy: 

A+

----------

## sireyessire

 *LostControl wrote:*   

> Un grand merci pour ta contribution 
> 
> Juste, je pense qu'il faut starter fail2ban en daemon et donc rajouter "-b".
> 
> Sinon, il a également la possibilité de mettre:
> ...

 

j'avais mis le background à true c'est pour ça  :Wink: 

sinon pour avoir un meilleur script on pourrait avoir un showstatus qui ferait un less du log:

```
#!/sbin/runscript

# Distributed under the terms of the GNU General Public License v2

# written by Sireyessire

# uncomment to test the showstatus improved ;) NO NEDDED

#source /etc/fail2ban.conf

depend() {

        need net

        need logger

        after iptables

}

start() {

        ebegin "Starting fail2ban"

        /usr/bin/fail2ban.py -b

        eend $? "Failed to start fail2ban"

}

stop() {

        ebegin "Stopping fail2ban"

        killall fail2ban.py

        eend $? "Failed to stop fail2ban"

} 

showstatus(){

        less /var/log/fail2ban.log

        # le mieux serait de récupérer en variable d'environnement le path du fichier de log

        # less $logfile BROKEN

        # less `fail2ban -D` 

}

```

et hop on progresse, le problème c'est que l'on peut pas sourcer le fichier de conf, il récupére pas les variables, pê qu'une option  supplémentaire du genre fail2ban -D renvoie le fichier de log ( D pour Destination mais tu peux choisir autre chose)

----------

## LostControl

Salut,

J'ai enfin eu le temps de bosser sur Fail2Ban. Je viens de sortir la version 0.3.0. Pouquoi 0.3.0 ? Parce qu'il y a eu pas mal de changement depuis la version 0.1.2.

Fail2Ban peut à présent surveiller plusieurs fichiers de logs en même temps. Les règles sont à présent définies dans le fichier de configuration au moyen d'expressions régulières. Vous pouvez donc adapter Fail2Ban à vos besoins. Ainsi, il est par exemple possible de bannir les IPs qui tentent du "brute force" sur vos authentification Apache et en même temps de vérifier que personne ne tente une recherche exhaustive sur votre login SSH.

Il y a encore pas mal de boulot, d'optimisation possible mais le soft est déjà utilisable sans problème. J'ai écrit ce soft pour apprendre le Python donc si y'a des stars de ce langage ici, j'accepte volontiers les patches  :Wink: 

Si vous avez un serveur chez vous et que vous remarquez que des personnes tentent de s'introduire chez vous par "brute force" (essais de username/password plus ou moins intelligent), essayez de voir ce que ça donne avec Fail2Ban.

Homepage --> http://fail2ban.sourceforge.net

Voilà, j'en ai fini avec la pub  :Wink: 

A+

----------

