Protegiendo el acceso remoto a nuestro servidor

IPTables, construido sobre netfilter, es el marco de alteración de paquetes en GNU/Linux. Constituye un gran reinvento de su predecesor ipchains, y es utilizado para controlar los filtrados de paquetes, traducciones de direcciones de red (NAT: masquerading, portforwarding, transparent proxying), y con efectos especiales como mutilador de paquetes (mangling).

Si utilizamos SSH, o cualquier otra vía de acceso remoto a un servidor, nos daremos cuenta de que siempre hay alguien tratando de rompernos para penetrar utilizando ataques diccionario. Podemos utilizar iptables para limitar el tiempo que una misma IP puede realizar conexiones.
Asumiendo que no podemos bloquear por completo el acceso al puerto 22 (SSH), ya que nosotros mismo necesitamos accesar al servidor desde cualquier lugar que nos encontremos, nuestra política pode defecto para aceptar conexiones debe ser la siguiente:


iptables -A INPUT -j ACCEPT -p tcp ! –syn -s 0/0 -d (ip/net externa)

Y ahora procedemos a establecer los límites:

iptables -A INPUT -p tcp -i eth0 -m state –state NEW –dport 22 -m recent –update –seconds 15 -j DROP

iptables -A INPUT -p tcp -i eth0 -m state –state NEW –dport 22 -m recent –set -j ACCEPT


Estas dos reglas hacen que iptables requiera 15 segundos entre cada nueva conexión desde la misma IP al puerto 22. En vez de esto podríamos usar ACCEPT si ya el firewall tiene una regla para el acceso SSH.
Otra manera de limitar los ataques diccionario es utilizando -m limit –limit:
iptables -A INPUT -p tcp –dport ssh -m limit –limit 3/minute –limit-burst 2 -j ACCEPT

Esta regla hace que la conexión se limite a 3 por minuto, pero las dos primeras sobrepasarán el limit-burst, por lo que la regla limitará efectivamente los intentos de conexión a solo 1 por minuto.


Fuente: Linux Poison

Artículos relacionados

Widget by Hoctro | Jack Book

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *