Accesso non riuscito al blocco automatico di Cygwin SSHd


20

Sto eseguendo Cygwin con un deamon SSH su una macchina Windows Server 2008. Stavo guardando il Visualizzatore eventi e ho notato da 5 a 6 tentativi di accesso non riusciti al secondo (forza bruta) per l'ultima settimana circa, da IP diversi.

Come posso bloccare automaticamente questi IP anziché bloccarli uno alla volta manualmente?

Grazie Ahmad

Risposte:


34

Ho scritto un programma per bloccare gli indirizzi IP come hai chiesto un paio d'anni fa, ma l'ho fatto per un cliente come lavoratore a noleggio. Da quando ho finito con un po 'di "tempo libero" stasera ho deciso di ri-implementare tutto da zero, scrivere della documentazione utile e in generale renderlo un programma presentabile. Da quando ho sentito da più persone che questa sarebbe una cosa utile, sembra che probabilmente valga la pena. Spero che tu e gli altri membri della community ne possiate trarre un certo vantaggio.


Windows sshd_block

sshd_block è un programma VBScript che funge da sink di evento WMI per ricevere le voci del registro eventi di Windows registrate da sshd. Analizza queste voci di registro e agisce come segue:

  • Se l'indirizzo IP tenta di accedere con un nome utente contrassegnato come "ban immediatamente", l'indirizzo IP viene immediatamente bannato.

  • Se l'indirizzo IP tenta di accedere con una frequenza maggiore di quella consentita in un determinato periodo di tempo, l'indirizzo IP viene bandito.

I nomi utente e le soglie "ban immediatamente" associati ai tentativi di accesso ripetuti sono configurabili nella sezione "Configurazione" dello script. Le impostazioni predefinite sono le seguenti:

  • Escludi immediatamente i nomi utente: amministratore, root, guest
  • Tentativi di accesso consentiti - 5 in 120 secondi (2 minuti)
  • Durata del divieto - 300 secondi (5 minuti)

Una volta al secondo, tutti gli indirizzi IP che sono stati vietati per la durata del divieto vengono annullati (rimuovendo il percorso del buco nero dalla tabella di routing).


Puoi scaricare il software qui e sfogliare l'archivio qui .

Modificare:

Dal 20/01/2010 ho aggiornato il codice per supportare l'utilizzo di "Advanced Firewall" su Windows Vista / 2008/7/2008 R2 per eseguire il black-holding del traffico tramite la creazione di regole firewall (che è molto più in linea con il comportamento di "fail2ban"). Ho anche aggiunto alcune stringhe di corrispondenza aggiuntive per rilevare le versioni OpenSSH che "utente non valido" anziché "utente illegale".


2
Apprezzo il lavoro svolto e penso che sia un'idea meravigliosa, tuttavia esiste la possibilità che possa essere modificato per funzionare con i tentativi di PSR? I miei server Windows vengono costantemente attaccati online e blocco dell'account sebbene sia necessario sbloccare semi-affettivo affinché quell'utente funzioni di nuovo, riaprendo l'account utente per un altro blocco.

@Henry: dai un'occhiata a serverfault.com/a/335976/7200
Evan Anderson,

Questo script risucchia oltre il 10 percento della mia CPU anche se non sono in corso attacchi di forza bruta ...
jjxtra,

@PsychoDad: se sei interessato, contattami direttamente e risolveremo i problemi. Non ho visto il comportamento che stai vedendo.
Evan Anderson,

1
Vorrei anche vedere questo per le connessioni RDP. Grazie
boomhauer il

3

Su Linux denyhosts fa il trucco, non posso dirti se funzionerà su Windows / Cygwin o meno. Provaci.


2

Questo è molto interessante, stiamo attualmente valutando questa soluzione:

Syspeace lavora a stretto contatto con Windows per rilevare possibili minacce a prestazioni ottimali. Gli eventi nel registro eventi vengono costantemente monitorati per eventuali comportamenti sospetti. Se un evento è considerato una minaccia per il sistema, Syspeace passa al livello successivo controllando una rule base interna che blocca semplicemente l'indirizzo IP e aggiunge la regola al firewall di Windows.

Lista bianca locale

Un utente può sempre aggiungere indirizzi IP alla Lista bianca locale per, ad esempio, impedire il blocco di eventuali reti interne o aggiungere temporaneamente singoli PC. Questo dovrebbe essere usato con cautela in quanto tutti gli IP in questo elenco sono considerati affidabili da Syspeace e saranno sempre ignorati.

Lista nera locale

Eventuali minacce verranno automaticamente aggiunte alla Blacklist locale da Syspeace. Puoi sempre rivedere la lista nera e aggiungerli o rimuoverli come ritieni opportuno. Tuttavia, ti consigliamo di non apportare modifiche a questo elenco in quanto potresti accidentalmente aprire la strada a un hacker sconosciuto.

Lista nera globale

Una caratteristica chiave di Syspeace è la capacità di bloccare preventivamente indirizzi IP noti nella lista nera a livello globale. Scegliendo questa opzione, Syspeace importerà la Blacklist globale sul tuo client e agirà di conseguenza, aggiungendo tutti gli indirizzi IP nella blacklist globale al set di regole del firewall con la semplice pressione di un pulsante.

messaggistica

Ogni volta che si verifica un evento importante, il servizio viene avviato o arrestato, le regole vengono inserite o rimosse dal firewall o lo stato della comunicazione con la licenza centrale e il server della blacklist globale viene modificato, Syspeace ha la capacità di inviare posta alle persone appropriate in la tua organizzazione.

Rapporti

Ricevere e-mail in caso di eventi importanti può essere positivo, ma a volte ti piacerebbe anche ottenere un riepilogo. Syspeace compila un rapporto giornaliero con tutti i tentativi di attacco sul tuo sistema e ti invia un messaggio con le informazioni. Syspeace compila anche un rapporto settimanale nello stesso modo.

www.syspeace.com


2

Letteralmente tutti i tentativi di accesso dalla Cina / USA / India sul mio server provano l'accesso dell'Amministratore, che ho disabilitato.

Non sarebbe più facile disabilitare l'accesso dell'amministratore e quindi scrivere uno script che blocchi tutti gli indirizzi IP che tentano di accedere utilizzando "Amministratore" come nome utente?


1

Potrebbe essere necessario pasticciare con il firewall di Windows; Cygwin non avrebbe questo tipo di funzionalità.


1

Potresti prendere in considerazione l'utilizzo di SSHBlock , uno script Perl per il controllo dei tentativi di forza bruta.

SSHBlock è un demone per monitorare un registro syslog per tentativi di intrusione tramite SSH e per bloccare automaticamente gli host danneggiati aggiungendo linee a /etc/hosts.allow (wrapper TCP). Diverse soglie sono predefinite, per essere in grado di bloccare coloro che tentano molti tentativi in ​​un periodo più o meno lungo. Utilizzare -h per visualizzare le opzioni della riga di comando.

Non l'ho mai usato su Cygwin.
Tuttavia, ecco un link ad un altro articolo che descrive sshblock con altri modi:
difendersi dagli attacchi ssh a forza bruta

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.