Cygwin SSHd Autoblock fehlgeschlagene Anmeldungen

20

Ich verwende Cygwin mit einem SSH-Deamon auf einem Windows Server 2008-Computer. Ich schaute in die Ereignisanzeige und bemerkte in der letzten Woche bis zu 5 bis 6 fehlgeschlagene Anmeldeversuche pro Sekunde (Brute Force) von verschiedenen IP-Adressen.

Wie kann ich diese IPs automatisch blockieren, anstatt sie einzeln manuell zu blockieren?

Danke, Ahmad

ANaimi
quelle

Antworten:

34

Ich habe ein Programm zum Blockieren von IP-Adressen geschrieben, wie Sie es vor ein paar Jahren erbeten haben, habe es aber für einen Kunden als Leiharbeit getan. Da ich heute Abend etwas "Freizeit" hatte, entschied ich mich, das Ganze von Grund auf neu zu implementieren, nützliche Dokumentationen zu schreiben und es im Allgemeinen zu einem ansehnlichen Programm zu machen. Da ich von mehreren Leuten gehört habe, dass dies eine praktische Sache ist, scheint es, als ob es die Zeit wert ist. Hoffentlich können Sie und andere Mitglieder der Community davon Gebrauch machen.


Windows sshd_block

sshd_block ist ein VBScript-Programm, das als WMI-Ereignissenke fungiert, um von sshd protokollierte Windows-Ereignisprotokolleinträge zu empfangen. Diese Protokolleinträge werden analysiert und wie folgt verarbeitet:

  • Wenn die IP-Adresse versucht, sich mit einem Benutzernamen anzumelden, der als "Sofort sperren" gekennzeichnet ist, wird die IP-Adresse sofort gesperrt.

  • Wenn die IP-Adresse versucht, sich häufiger als in einem bestimmten Zeitraum zulässig anzumelden, wird die IP-Adresse gesperrt.

Die Benutzernamen und Schwellenwerte für das sofortige Sperren von Anmeldeversuchen können im Abschnitt "Konfiguration" des Skripts konfiguriert werden. Die Standardeinstellungen lauten wie folgt:

  • Sofort sperren Benutzernamen - Administrator, Root, Gast
  • Anmeldeversuche erlaubt - 5 in 120 Sekunden (2 Minuten)
  • Dauer des Verbots - 300 Sekunden (5 Minuten)

Einmal pro Sekunde werden alle IP-Adressen, die für die Sperrdauer gesperrt wurden, freigegeben (indem die Black-Hole-Route aus der Routing-Tabelle entfernt wird).


Sie können die Software hier herunterladen und das Archiv hier durchsuchen .

Bearbeiten:

Ab dem 20.01.2010 habe ich den Code aktualisiert, um die Verwendung der "Erweiterten Firewall" unter Windows Vista / 2008/7/2008 R2 zu unterstützen, damit der Datenverkehr schwarz gehalten werden kann, indem Firewall-Regeln erstellt werden (was weitaus mehr im Einklang mit das Verhalten von "fail2ban"). Ich habe auch einige zusätzliche übereinstimmende Zeichenfolgen hinzugefügt, um OpenSSH-Versionen abzufangen, die "ungültiger Benutzer" und nicht "unzulässiger Benutzer" sind.

Evan Anderson
quelle
2
Ich schätze die Arbeit, die Sie geleistet haben, und halte sie für eine wunderbare Idee. Gibt es jedoch eine Chance, dass sie geändert werden könnte, um mit RDP-Versuchen zu arbeiten? Meine Windows-Server werden ständig online angegriffen und die Kontosperrung durchgeführt, obwohl die Semi-Affective-Funktion entsperrt werden muss, damit dieser Benutzer wieder funktioniert, und das Benutzerkonto für eine weitere Sperrung wieder geöffnet wird.
@ Henry: Besuchen Sie serverfault.com/a/335976/7200
Evan Anderson,
Dieses Skript saugt über 10 Prozent meiner CPU auf, auch wenn keine Brute-Force-Angriffe ausgeführt werden ...
jjxtra
@ PsychoDad: Wenn Sie interessiert sind, kontaktieren Sie mich direkt und wir werden Probleme beheben. Ich habe das Verhalten, das Sie sehen, nicht gesehen.
Evan Anderson
1
Ich würde dies auch gerne für RDP-Verbindungen sehen. Danke
Boomhauer
3

Unter Linux macht denyhosts den Trick, kann nicht sagen, ob es unter Windows / Cygwin funktioniert oder nicht. Versuche es.

Saurabh Barjatiya
quelle
2

Dieser ist sehr interessant, wir evaluieren derzeit diese Lösung:

Syspeace arbeitet eng mit Windows zusammen, um mögliche Bedrohungen bei optimaler Leistung zu erkennen. Ereignisse im Ereignisprotokoll werden kontinuierlich auf verdächtiges Verhalten überwacht. Wenn ein Ereignis als Bedrohung für das System eingestuft wird, geht Syspeace zur nächsten Ebene über, indem eine interne Regelbasis überprüft wird, die einfach die IP-Adresse blockiert und die Regel der Windows-Firewall hinzufügt.

Lokale Whitelist

Ein Benutzer kann der lokalen Whitelist jederzeit IP-Adressen hinzufügen, um beispielsweise die Blockierung interner Netzwerke zu verhindern oder einzelne PCs vorübergehend hinzuzufügen. Dies sollte mit Vorsicht verwendet werden, da alle IPs in dieser Liste von Syspeace als vertrauenswürdig eingestuft werden und immer ignoriert werden.

Lokale schwarze Liste

Alle Bedrohungen werden von Syspeace automatisch zur lokalen Blacklist hinzugefügt. Sie können die schwarze Liste jederzeit überprüfen und sie nach Belieben hinzufügen oder entfernen. Wir empfehlen Ihnen jedoch, keine Änderungen an dieser Liste vorzunehmen, da Sie einem unbekannten Hacker versehentlich den Weg ebnen könnten.

Globale schwarze Liste

Ein wichtiges Merkmal von Syspeace ist die Möglichkeit, bekannte IP-Adressen, die auf einer globalen schwarzen Liste stehen, vorzeitig zu blockieren. Wenn Sie diese Option auswählen, importiert Syspeace die globale Blacklist auf Ihren Client und führt die entsprechenden Aktionen aus. Auf Knopfdruck werden alle global auf der Blacklist befindlichen IP-Adressen zum Firewall-Regelsatz hinzugefügt.

Messaging

Immer wenn ein wichtiges Ereignis stattfindet, der Dienst gestartet oder gestoppt wird, Regeln in die Firewall eingefügt oder aus dieser entfernt werden oder der Kommunikationsstatus zur zentralen Lizenz geändert wird und der globale Blacklist-Server geändert wird, kann Syspeace E-Mails an die entsprechenden Personen in senden Ihre Organisation.

Berichte

E-Mails zu erhalten, wenn ein wichtiges Ereignis eintritt, ist vielleicht gut, aber manchmal möchten Sie auch eine Zusammenfassung erhalten. Syspeace erstellt täglich einen Bericht mit allen Angriffsversuchen auf Ihrem System und sendet Ihnen eine Nachricht mit den Informationen. Auf die gleiche Weise erstellt Syspeace auch einen wöchentlichen Bericht.

www.syspeace.com

Derek
quelle
2

Bei praktisch allen Anmeldeversuchen aus China / USA / Indien auf meinem Server wird die Administratoranmeldung verwendet, die ich deaktiviert habe.

Wäre es nicht einfacher, die Administratoranmeldung zu deaktivieren und dann ein Skript zu schreiben, das alle IP-Adressen blockiert, die versuchen, sich mit "Administrator" als Benutzername anzumelden?

user220309
quelle
1

Möglicherweise müssen Sie sich mit der Windows-Firewall anlegen. Cygwin hätte diese Art von Funktionalität nicht.

koenigdmj
quelle
1

Sie können auch SSHBlock verwenden - ein Perl-Skript zur Steuerung von Brute-Force-Versuchen.

SSHBlock ist ein Daemon zur Überwachung eines Syslog-Protokolls auf Einbruchsversuche mit SSH und zum automatischen Blockieren fehlerhafter Hosts durch Hinzufügen von Zeilen zu /etc/hosts.allow (TCP-Wrapper). Es sind mehrere Schwellenwerte vordefiniert, um diejenigen, die viele Versuche unternehmen, innerhalb eines längeren oder kürzeren Zeitraums zu blockieren. Verwenden Sie -h, um die Befehlszeilenoptionen anzuzeigen.

Ich habe es noch nie auf Cygwin verwendet.
Hier ist jedoch ein Link zu einem anderen Artikel, der sshblock auf andere Weise beschreibt:
Verteidigung gegen Brute-Force-ssh-Angriffe

nik
quelle