DenyHosts. Protección frente a ataques SSH.

Índice

1. Introducción
2. Instalación
3. Configuración


1. Introducción

Antes de incrementar la seguridad de nuestro sistema instalando y configurando DenyHosts para evitar ataques SSH, recomiendo la lectura de este otro tutorial:
Manual SSH: El dios de la administración remota

2. Instalación

Para instalar DenyHosts podemos usar Adept o Konsole:

sudo aptitude install denyhosts

DenyHosts es un script en Python que analiza el log del servidor SSH y toma ciertas decisiones (configurables) cuando detecta que se están recibiendo repetidos intentos de conexión fallidos desde una IP concreta. Esta IP se añadirá al archivo /etc/hosts.deny para bloquear su acceso. En /etc/hosts.allow se puede indicar una lista de hosts a los que se les permite el acceso al sistema.

Para arrancar DenyHosts usaremos este comando:

sudo /etc/init.d/denyhosts start

Cuando reiniciemos el sistema, DenyHosts se arrancará automáticamente.

3. Configuración

El archivo de configuración de DenyHosts es /etc/denyhosts.conf. Veamos algunos parámetros de configuración interesantes:

  • DENY_THRESHOLD_INVALID
  • Número de intentos fallidos permitidos con una cuenta que no existe. Una vez alcanzado ese número, se incluirá la IP en el archivo /etc/hosts.deny y se le denegará el servicio.

  • DENY_THRESHOLD_VALID
  • Lo mismo que en el caso anterior, pero para cuentas de usuario válidas.

  • SECURE_LOG
  • Ruta del log del servidor SSH. En Kubuntu este log está en /var/log/auth.log

  • PURGE_DENY
  • Indica el tiempo que una IP tiene que permanecer en el archivo /etc/hosts.deny. Cuando arranquemos denyhosts con la opción "purge"

    sudo /etc/init.d/denyhosts start --purge

    se eliminarán las entradas de /etc/deny.hosts que sean más antiguas que el tiempo indicado por PURGE_DENY.

  • BLOCK_SERVICE
  • Indicamos el servicio que queremos bloquear a las IP's que están en /etc/hosts.deny (todos, sólo el ssh, etc...).

Hay muchas más opciones y están bastante bien explicadas (en inglés) en el propio archivo de configuración.

Más información en Konsole con:

man denyhosts