Prevenir ataques SSH

9

Estoy tratando de configurar las reglas de iptables para permitir solo 3 intentos por IP por minuto para conectarse al servicio a través de SSH, y desconectar todas las conexiones para evitar ataques de SSH; pero parece que estoy haciendo algo mal!

-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

Gracias

MGP
fuente

Respuestas:

10

Creo que es mejor que lo use fail2ban, porque sus reglas de ipfilter también bloquean las conexiones legítimas. fail2bansolo bloqueará las IP después de conexiones fallidas.

A continuación, una práctica común es prohibir las direcciones IP cuando intentan conectarse al puerto 22 y vincular su servidor ssh a otro puerto. Luego, solo enfrenta un par de conexiones ilegítimas por semana si su computadora no es un objetivo bien conocido.

Para la pregunta precisa que hizo:

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
Gregory MOUSSAT
fuente
1
Dado que el servidor es un vps de gama baja, estoy tratando de mantener el consumo de recursos al mínimo mientras lo mantengo lo más seguro posible. Ya he cambiado el puerto del servidor ssh. ¿Debo mantener esas reglas (arriba) en el nuevo puerto y prohibir el predeterminado (22)?
Pop
Fail2ban es, de hecho, la mejor solución, incluso para un VPS bajo
MGP
7

Puedes implementar lo que quieras con las siguientes 2 reglas

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

Tenga en cuenta que el uso de -Aque agrega reglas al final de la cadena puede ser perjudicial para la forma en que se procesan las reglas de iptables, es decir, en orden, por lo que si hay una DROP general o una regla de permiso antes de que se alcance la suya, nunca se aplicará.

Dicho esto, también puede encontrar que fail2ban es una mejor manera de implementar este tipo de bloque.

usuario9517
fuente
Cuando intento agregar esas reglas, recibo un mensaje de error: iptables: Sin cadena / objetivo / coincidencia con ese nombre.
Pop
Votación a favor de fail2ban.
Michael B
4

Es posible que desee probar el módulo LIMIT.

iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/minute -j ACCEPT
Magallanes
fuente