Una soluzione solitamente evocata è Fail2Ban : questo è un sistema che utilizza le regole del firewall (iptables) per bloccare le connessioni in entrata dagli indirizzi IP da cui è apparentemente in atto un qualche tipo di attacco di ricerca esaustivo.
Questo, ovviamente, non funzionerà con un DoS distribuito , proveniente da migliaia di indirizzi IP distinti. In generale, pochissime cose resistono a un DoS distribuito.
Fail2Ban può anche essere problematico in caso di NAT su larga scala: ha il potenziale per bloccare un'intera rete di utenti normali che capita di condividere lo stesso indirizzo IP, visto dall'esterno.
È altamente consigliato , quando inizi a configurare strumenti come Fail2Ban, per eseguire anche un altro server SSH su un'altra porta, non coperto dalle regole Fail2Ban, solo per consentire il rientro nel caso una cattiva configurazione ti blocca.
Un'altra strategia completamente diversa consiste nel mantenere una connessione aperta in ogni momento. Per esempio. hai un SSH di vecchia data tra il tuo server e il tuo sistema desktop; si possono anche multiplexare altre connessioni su di esso (con le abilità SSH per i tunnel e / o il proxy di SOCKS). Ciò evita il problema di allocazione: non è necessario ottenere una porta libera per la tua connessione root
poiché ne hai già uno.