Échec des connexions au blocage automatique SSHd Cygwin

20

J'exécute Cygwin avec un démon SSH sur une machine Windows Server 2008. Je regardais l'Observateur d'événements et j'ai remarqué jusqu'à 5 à 6 tentatives de connexion infructueuses par seconde (force brute) au cours de la dernière semaine, à partir d'IP différentes.

Comment puis-je bloquer automatiquement ces adresses IP plutôt que de les bloquer une par une manuellement?

Merci, Ahmad

ANaimi
la source

Réponses:

34

J'ai écrit un programme pour bloquer les adresses IP comme vous le demandez il y a quelques années, mais je l'ai fait pour un client en tant que travailleur salarié. Comme je me suis retrouvé avec du temps "libre" ce soir, j'ai choisi de réimplémenter le tout à partir de zéro, d'écrire de la documentation utile, et en général de faire un programme présentable. Depuis que j'ai entendu plusieurs personnes dire que ce serait une chose pratique à avoir, il semble que cela en vaille la peine. J'espère que vous, et d'autres membres de la communauté, pourrez en tirer parti.


Windows sshd_block

sshd_block est un programme VBScript qui agit comme un récepteur d'événements WMI pour recevoir les entrées du journal des événements Windows enregistrées par sshd. Il analyse ces entrées de journal et agit comme suit:

  • Si l'adresse IP tente de se connecter avec un nom d'utilisateur marqué comme «bannir immédiatement», l'adresse IP est immédiatement interdite.

  • Si l'adresse IP tente de se connecter plus fréquemment que ce qui est autorisé au cours d'une période donnée, l'adresse IP est interdite.

Les noms d'utilisateur et les seuils "interdire immédiatement" associés à des tentatives de connexion répétées sont configurables dans la section "Configuration" du script. Les paramètres par défaut sont les suivants:

  • Interdire immédiatement les noms d'utilisateur - administrateur, root, invité
  • Tentatives de connexion autorisées - 5 en 120 secondes (2 minutes)
  • Durée de l'interdiction - 300 secondes (5 minutes)

Une fois par seconde, toutes les adresses IP qui ont été interdites pendant la durée de l'interdiction sont interdites (en supprimant la route des trous noirs de la table de routage).


Vous pouvez télécharger le logiciel ici et parcourir les archives ici .

Éditer:

Depuis le 20/01/2010, j'ai mis à jour le code pour prendre en charge l'utilisation du "Pare-feu avancé" sur Windows Vista / 2008/7/2008 R2 pour effectuer le blocage du trafic via la création de règles de pare-feu (ce qui est beaucoup plus conforme à le comportement de "fail2ban"). J'ai également ajouté des chaînes de correspondance supplémentaires pour attraper les versions d'OpenSSH qui "utilisateur invalide" par opposition à "utilisateur illégal".

Evan Anderson
la source
2
J'apprécie le travail que vous avez fait et je pense que c'est une merveilleuse idée, mais y a-t-il une chance qu'il puisse être modifié pour fonctionner avec les tentatives RDP? Mes serveurs Windows sont constamment attaqués en ligne et le verrouillage du compte bien que semi-affectif doit être déverrouillé pour que cet utilisateur fonctionne à nouveau, ouvrant la sauvegarde du compte utilisateur pour un autre verrouillage.
@Henry: Jetez un œil à serverfault.com/a/335976/7200
Evan Anderson
Ce script aspire plus de 10% de mon processeur même si aucune attaque par force brute n'est en cours ...
jjxtra
@PsychoDad: Si vous êtes intéressé, contactez-moi directement et nous allons dépanner. Je n'ai pas vu le comportement que vous voyez.
Evan Anderson
1
Je voudrais également voir cela pour les connexions RDP. Merci
boomhauer
3

Sous Linux, denyhosts fait l'affaire, je ne peux pas vous dire si cela fonctionnera sur Windows / Cygwin ou non. Essaie.

Saurabh Barjatiya
la source
2

Celui-ci est très intéressant, nous évaluons actuellement cette solution:

Syspeace travaille en étroite collaboration avec Windows afin de détecter les menaces possibles avec une performance optimale. Les événements du journal des événements sont surveillés en permanence pour détecter tout comportement suspect. Si un événement est considéré comme une menace pour le système, Syspeace passe au niveau supérieur en vérifiant une base de règles interne qui bloque simplement l'adresse IP et ajoute la règle au pare-feu Windows.

Liste blanche locale

Un utilisateur peut toujours ajouter des adresses IP à la liste blanche locale pour, par exemple, empêcher le blocage de tout réseau interne ou ajouter temporairement des PC uniques. Cela doit être utilisé avec prudence car toutes les adresses IP de cette liste sont considérées comme fiables par Syspeace et seront toujours ignorées.

Liste noire locale

Toutes les menaces seront automatiquement ajoutées à la liste noire locale par Syspeace. Vous pouvez toujours consulter la liste noire et les ajouter ou les supprimer comme bon vous semble. Nous vous recommandons toutefois de ne pas apporter de modifications à cette liste, car vous pourriez accidentellement ouvrir la voie à un pirate inconnu.

Liste noire mondiale

Une caractéristique clé de Syspeace est la possibilité de bloquer les adresses IP connues sur la liste noire à titre préventif. En choisissant cette option, Syspeace importera la liste noire globale sur votre client et agira en conséquence, en ajoutant toutes les adresses IP figurant sur la liste noire mondiale au jeu de règles du pare-feu en appuyant simplement sur un bouton.

Messagerie

Chaque fois qu'un événement important se produit, le service est démarré ou arrêté, les règles sont placées ou supprimées du pare-feu ou l'état de la communication vers la licence centrale et le serveur de liste noire globale est modifié, Syspeace a la possibilité d'envoyer du courrier aux personnes concernées dans votre organisation.

Rapports

Recevoir des e-mails lorsqu'un événement important se produit peut être une bonne chose, mais parfois, vous souhaitez également obtenir un résumé. Syspeace compile un rapport quotidien avec toutes les tentatives d'attaque sur votre système et vous envoie un message avec les informations. Syspeace compile également un rapport hebdomadaire de la même manière.

www.syspeace.com

Derek
la source
2

Littéralement, toutes les tentatives de connexion de Chine / États-Unis / Inde sur mon serveur essaient la connexion administrateur, que j'ai désactivée.

Ne serait-il pas plus facile de désactiver la connexion administrateur, puis d'écrire un script qui bloque toutes les adresses IP qui tentent de se connecter en utilisant "Administrateur" comme nom d'utilisateur?

user220309
la source
1

Vous devrez peut-être jouer avec le pare-feu Windows; Cygwin n'aurait pas ce type de fonctionnalité.

koenigdmj
la source
1

Vous pourriez envisager d'utiliser SSHBlock - un script Perl pour contrôler les tentatives de force brute.

SSHBlock est un démon pour surveiller un journal syslog pour les tentatives d'effraction à l'aide de SSH et pour bloquer automatiquement les hôtes défectueux en ajoutant des lignes à /etc/hosts.allow (TCP Wrappers). Plusieurs seuils sont prédéfinis, pour pouvoir bloquer ceux qui tentent de nombreuses tentatives sur une période plus ou moins longue. Utilisez -h pour voir les options de ligne de commande.

Je ne l'ai encore jamais utilisé sur Cygwin.
Cependant, voici un lien vers un autre article décrivant sshblock avec d'autres moyens: se
défendre contre les attaques ssh par force brute

nik
la source