Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1431 connectés 

  FORUM HardWare.fr
  Windows & Software
  Tutoriels

  Antiflood sshd avec Cygwin sur windows.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Antiflood sshd avec Cygwin sur windows.

n°2417489
azubal
Posté le 23-05-2006 à 01:49:54  profilanswer
 

vous qui avez monté un serveur ssh (qu'il soit microsoftien ou linuxien), vous avez du vous rendre compte que les attaques par bruteforce sont tres frequente.
j'ai cherché un moyen de bannir une IP apres un certain nombre d'essai de login raté en ssh sur un serveur cygwin.
 
je pars du principe que vous avez deja installé sshd en service, sinon allez faire un saut ici : http://flr.free.fr/spip/article.php?id_article=24
 
par defaut, sshd ne log rien (le saligo).
on edite donc la conf (/etc/sshd_config ou C:\cygwin\etc\sshd_config)
et on decommente ces deux lignes :

Code :
  1. SyslogFacility AUTH
  2. LogLevel INFO


 
le probleme c'est que maintenant sshd log dans le journal des evenements windows et non pas dans /var/log/ comme on le souhaiterez...  :heink:  
on va donc installer un deuxieme service : syslogd
 
ouvrez un term cygwin et tapez syslogd-config
repondez "yes" a la creation du fichier de config (/etc/syslog.conf)
repondez "yes" pour installer le service.
pour le demarrer, il suffit de faire un net start syslogd
 
voila, maintenant sshd loggera tout dans /var/log/messages et non plus dans le journal des evenements windows.
 
pour empecher l'acces a un host il existe le fichier /etc/hosts.deny qui contient la liste des IP qui n'ont pas le droit de se connecter.
 
il ne reste plus qu'a faire un script qui lis le fichier /var/log/messages et qui recherche les tentative d'intrusion et qui ecrit dans le fichier /etc/hosts.deny les ip qui font du bruteforce.
 
voici le script que j'ai ecris (a l'arrache en 3 minutes) en perl :

Code :
  1. #!/bin/perl                                                                                                                 
  2. use strict;
  3. # limit before bann an IP.                                                                                                   
  4. my $limitcount = 10;
  5. my $listname = "/etc/hosts.deny";
  6. open(LOG, "/var/log/messages" ) || die ("Impossible de lire le fichier Log.\n" );
  7. my %list;
  8. while (<LOG> )
  9. {
  10.     /.*sshd:.*Failed.* (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).*/gi;
  11.     if ($1 ne "" )
  12.     {
  13.         if (exists $list{$1})
  14.         {
  15.             $list{$1}++;
  16.         }
  17.         else
  18.         {
  19.             $list{$1} = 1;
  20.         }
  21.     }
  22. }
  23. close (LOG);
  24. `echo -n "" > $listname`;
  25. foreach my $key (keys %list)
  26. {
  27.     my $value = $list{$key};
  28.     if ($value > $limitcount)
  29.     {
  30.         `echo "sshd: $key" >> $listname`;
  31.     }
  32. }


 
il ne reste plus qu'a le scheduler :)


Message édité par azubal le 23-05-2006 à 01:56:56
mood
Publicité
Posté le 23-05-2006 à 01:49:54  profilanswer
 

n°2554720
maestro130​3
Posté le 26-10-2006 à 18:29:48  profilanswer
 

Bonjour et merci de ce tutoriel ayant l'air très complet!
 
Euh ...Comment installer ce nouveau service : SYSLOGD?
 
Par ailleurs, je remarque que même étant l'admin sous windows et cygwin je ne peux pas écrire dans le fichier
C:\cygwin\etc\sshd_config. Je dois avoir préalablement certaines permissions sur ce repertoire?
 
Voilà j'en suis encore là.
 
Alors si qqu'un peut m'aider.
 
Merci.

n°2610333
jcgb2
Posté le 08-01-2007 à 21:45:36  profilanswer
 

Bonjour,
Perso, je suis arrivé à démarrer le service syslogd, et tout se logue dans /var/log/messages.
J'ai aussi créé le fichier host.deny (première ligne vide)
Mais je ne parviens pas à faire fonctionner le script bien que j'ai installé active-perl ainsi qu'un schedduler(rien ne se copie dans hosts.deny), et le flood va toujours bon train.  
Si quelqu'un a une idée...
Merci.

n°2610652
azubal
Posté le 09-01-2007 à 13:21:36  profilanswer
 

Il faudrait revoir le script. J'avais code ca en 3 minutes sur un coins de table. Je n'ai pas le temps de regarder pour le moment.. J'essairai plus tard.

n°2610685
vrobaina
Hecho a Mano
Posté le 09-01-2007 à 13:52:36  profilanswer
 

pourquoi se prendre la tete avec un script ?.

 

il suffit d'utiliser iptables avec les regles suivantes :

 

/sbin/iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
/sbin/iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 300 --hitcount 3 -j DROP

 

et le tour est joué (les attaques par brute force peuvent continuer mais on ne peut se connecter que 3 fois en 300 secondes....)

 

cf le sujet :

 

http://forum.hardware.fr/hfr/OSAlt [...] 8574_1.htm


Message édité par vrobaina le 09-01-2007 à 13:55:04
n°2610738
azubal
Posté le 09-01-2007 à 15:08:25  profilanswer
 

Ca c'est cool ladidonc...
Et pour windows (cygwin) ? :(

n°2610745
vrobaina
Hecho a Mano
Posté le 09-01-2007 à 15:15:34  profilanswer
 

si tu installes cygwin, normalement tu peux installer iptables.
 
qd a une installation windows avec un serveur ssh (mais pas de type unix), là je pense qu'il faut filtrer via un firewall (genre outpost par exemple).

n°2610904
azubal
Posté le 09-01-2007 à 17:55:37  profilanswer
 

euhh, ca me semble bizzare ce que tu dis là.
iptable agit sur le kernel. hors sur cygwin, il n'y en a pas :/

n°2614852
jcgb2
Posté le 14-01-2007 à 23:43:49  profilanswer
 

Donc si je comprends bien, iptables ne peut être installé du fait que l'OS est windows et que Cygwin n'ait pas de kernel ; et quand au script, il ne fonctionne pas... Que faire?

n°2615415
azubal
Posté le 15-01-2007 à 21:27:53  profilanswer
 

Coder un script qui marche...

mood
Publicité
Posté le 15-01-2007 à 21:27:53  profilanswer
 

n°2626364
jcgb2
Posté le 30-01-2007 à 00:05:28  profilanswer
 

Honneur à celui qui a proposé le dit script...

n°2626371
vrobaina
Hecho a Mano
Posté le 30-01-2007 à 00:18:54  profilanswer
 

au fait pourquoi se prendre la tete a empecher les tentatives par "brut forces" ?.
 
si je me rappelle bien, ssh pour fonctionner avec une authentification par clés public/privé  et dans ce cas il n'y a plus risque.
 


---------------
Les cons, ça ose tout, et c'est même à ça qu'on les reconnait....
n°2811834
Apa-23
Posté le 07-10-2008 à 11:33:36  profilanswer
 


Hello petites infos de refresh pour les gens qui utilise Cygwin sous XP.
 
N'oubliez pas d'ajouter lors de l'install de cygwin : syslog
pour la version Cygwin 1.5.25 le nom exacte est syslog-ng
 
Après l'installation de cygwin :  
- installation du service syslog --> syslog-ng-config (répondre yes)
- net start syslog-ng (pour démarrer le service)
 
Et n'oubliez pas de dé-commentez les lignes dans sshd-config (comme préciser par psyjc :
SyslogFacility AUTH
LogLevel INFO
 
Chouette link pour installer Cygwin (en UK) fait par Nicholas Fong : il explique en détail la procédure d'install  
http://www.chinese-watercolor.com/ [...] -sshd.html
 
@++


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Windows & Software
  Tutoriels

  Antiflood sshd avec Cygwin sur windows.

 

Sujets relatifs
Installation Windows XP impossibleprobleme : windows ne reconnait pas ma connexion réseau
Liaison SNMP poste client/switch sous windowsComment allouer +de 2Go ed RAM par pgm sous Windows ?
bloqué sur logo windows avant entrée sur sessionPlantage de l'explorer windows à la lecture d'un fichier mpg / mpeg
Bug windows .. voir explicationswindows login aidez moi svp
Problème windows sur un portable Vaio. Virus??Pb ouverture session windows xp
Plus de sujets relatifs à : Antiflood sshd avec Cygwin sur windows.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR