User Tools

Site Tools


linux:ssh

This is an old revision of the document!


SSH

Limitar intentos de conexion SSH

Introducción

http://kevin.vanzonneveld.net/techblog/article/block_brute_force_attacks_with_iptables/



fw_custom_after_antispoofing() {

  #
  #
  # Custom rules to stop script kiddies accesing ssh port
  #
  #
  echo -n "Aplying custom rules..."
  iptables -I INPUT -i lo  -p tcp --dport 22 \
           -m state --state NEW -m recent --set --name SSH
  # After 3 unsucessful retries, drop the
  # connection for 60 seconds
  iptables -I INPUT -i lo -p tcp --dport 22 \
           -m state --state NEW -m recent --update \
           --seconds 60 --hitcount 3 --rttl --name SSH -j DROP
  echo "done"

En qué consiste

El presente artículo trata de cómo limitar los intentos de conexión al puerto 22 (ssh).

Si tienes un ordenador en internet con el puerto ssh (22) abierto, rápidamente descubrirás que éste es sistemáticamente atacado por script kiddies que intentan, mediante el envío sistemático de usuarios y contraseñas, entrar en el sistema.

Por ejemplo, aquí puedes ver una transcripción de esos ataques:

Apr 10 03:02:58 hostname sshd[8479]: Invalid user cadwyn from xxx.yyy.zzz.ttt
Apr 10 03:03:01 hostname sshd[8481]: Invalid user cady from xxx.yyy.zzz.ttt
Apr 10 03:03:05 hostname sshd[8484]: Invalid user cael from xxx.yyy.zzz.ttt
Apr 10 03:03:09 hostname sshd[8486]: Invalid user caelan from xxx.yyy.zzz.ttt
Apr 10 03:03:13 hostname sshd[8488]: Invalid user cadwr from xxx.yyy.zzz.ttt
Apr 10 03:03:17 hostname sshd[8491]: Invalid user cadwy from xxx.yyy.zzz.ttt
Apr 10 03:03:21 hostname sshd[8493]: Invalid user cadwyn from xxx.yyy.zzz.ttt
[....]

Evitar esto es muy sencillo instalando un par de reglas de firewall.

                echo -n " [Security enhaced on]"
                iptables -I INPUT -p tcp --dport 22 -i eth+ \
                        -m state --state NEW -m recent --set
                iptables -I INPUT -p tcp --dport 22 -i eth+ \
                        -m state --state NEW -m recent --update \
                        --seconds $MAX_ATTEMPTS_TIMEOUT --hitcount $MAX_ATTEMPTS -j DROP

Es decir, hemos instalado un código que mediante una llamada al comando iptables -el comando básico para hacer un filtrado de paquetes en Linux-, limitaremos los intentos de conexión al puerto 22 a MAX_ATTEMPTS. Una vez alcanzado ese valor, será preciso esperar MAX_ATTEMPTS_TIMEOUT para poder volver a conectarse.

linux/ssh.1226087395.txt.gz · Last modified: 2022/12/02 22:02 (external edit)