Prevenire gli attacchi SSH


9

Sto cercando di impostare le regole di iptables per consentire solo 3 tentativi di un IP al minuto per connettersi al server tramite SSH e rilasciare tutte le connessioni dopo per prevenire gli attacchi SSH; ma sembra che stia facendo qualcosa di sbagliato!

-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 --name DEFAULT --rsource -j DROP
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

Grazie

Risposte:


10

Penso che dovresti usarlo fail2ban, perché le tue regole di ipfilter bloccano anche le connessioni legittime. fail2banbloccherà gli IP solo dopo connessioni fallite.

Successivamente, una pratica comune è vietare gli IP quando tentano di connettersi alla porta 22 e associare il server ssh a un'altra porta. Quindi dovrai affrontare solo un paio di connessioni illegittime a settimana se il tuo computer non è un obiettivo ben noto.

Per la domanda precisa che hai posto:

iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP

1
Dal momento che il server è un vps di fascia bassa, sto cercando di mantenere il consumo di risorse al minimo, mantenendolo il più sicuro possibile. Ho già cambiato la porta del server SSH. Devo mantenere tali regole (sopra) sulla nuova porta ed escludere quella predefinita (22)?
MGP,

Fail2ban è in effetti la soluzione migliore, anche per VPS bassi
MGP

7

È possibile implementare ciò che si desidera con le seguenti 2 regole

iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set

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

Si noti che l'utilizzo di -Aregole che aggiungono alla fine della catena può non essere corretto nel modo in cui le regole di iptables vengono elaborate, ad esempio in modo tale che se vi è un DROP generale o una regola di consenso prima che venga raggiunta la propria, non verranno mai applicate.

Detto questo, potresti trovare fail2ban anche un modo migliore per implementare questo tipo di blocco.


Quando provo ad aggiungere quelle regole, ricevo un messaggio di errore: iptables: nessuna catena / destinazione / corrispondenza con quel nome.
MGP,

Upvote per fail2ban.
Michael B,

4

Potresti provare il modulo LIMIT.

iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/minute -j ACCEPT
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.