miércoles, 27 de abril de 2011

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

3 comentarios:

  1. Muy bueno hermano. Yo agrego para aportar algo que dentro de esto, podemos también cambiar el puerto 22 al protocolo ssh por otro deseado.

    Con esto espantamos un poco al intruso. Y se la ponemos mas difícil como decimos acá.

    Un abrazo.

    Isidro Rodríguez

    ResponderEliminar
  2. soy linuxero de hueso colorado.Gracias mil por tus aportaciones para aprender nuestro querido linux.(desde México hermano).

    ResponderEliminar
  3. Gracias Isidro por tu aporte! Gracias también a Moises, órale hermano!

    ResponderEliminar