Cómo proteger tus servidores Linux de ataques de fuerza bruta con denyhosts

Si permites conexiones de Secure Shell (SSH) en tus servidores Linux, sabrás que estos servidores pueden ser vulnerables a ataques de fuerza bruta. Existen varias formas de protegerte de este tipo de ataques. Una forma es instalando y utilizando la herramienta Denyhosts.

Denyhosts es un programa de seguridad de prevención de intrusos basado en registros para servidores, que te permite incluir en una lista blanca aquellos servidores que nunca deseas bloquear e incluso te puede alertar, a través de correo electrónico, de cualquier posible detección de intrusos.

A continuación, te guiaré en la instalación y configuración de Denyhosts. Demostraré el proceso en Ubuntu Server 18.04, pero el proceso es similar en cualquier plataforma Linux compatible.

Índice de Contenido
  1. Instalación
  2. Configuración
  3. Observar el archivo de registro
  4. Pruebas
  5. Desbloquear

Instalación

La instalación de Denyhosts es bastante simple. Inicia sesión en tu servidor Ubuntu (o abre una ventana de terminal) y ejecuta el siguiente comando:

sudo apt-get install denyhosts -y

Con eso ya habrás terminado la instalación.

OPNsense: Una potente y fácil de usar firewall para proteger tu red

Configuración

Lo primero que debes hacer es incluir en una lista blanca cualquier máquina que desees asegurarte de que nunca sea bloqueada. Esto es crucial para evitar que accidentalmente te bloquees en un escritorio o servidor válido (no te lo saltes). Para incluir una máquina en la lista blanca, ejecuta el siguiente comando:

sudo nano /etc/hosts.allow

En la parte inferior de ese archivo, agrega las máquinas que deseas incluir en la lista blanca, de la siguiente manera:

sshd: DIRECCIÓN_IP

Donde DIRECCIÓN_IP es la dirección que deseas incluir en la lista blanca.

Agrega tantas direcciones como desees, una por línea. Por lo tanto, si deseas incluir varias máquinas en la lista blanca, esas entradas se verían así:

Cómo generar y administrar pares de claves SSH en Windows para una conexión segura

sshd: 192.168.1.1
sshd: 192.168.1.10
sshd: 192.168.1.100

Guarda y cierra ese archivo.

Ahora configuramos Denyhosts desde el archivo denyhosts.conf. Para ello, abre el archivo de configuración de Denyhosts con el siguiente comando:

sudo nano /etc/denyhosts.conf

Lo primero que puedes configurar (opcionalmente) son los límites de intentos de inicio de sesión. Encontrarás las siguientes opciones de configuración:

# Bloquear cada host después de un número determinado de intentos de inicio de sesión fallidos
DENY_THRESHOLD_INVALID = 5

La importancia de la encriptación: Protege tus datos con seguridad

# Bloquear cada host después de que el número de intentos fallidos supere este valor
DENY_THRESHOLD_VALID = 10

# Bloquear cada intento de inicio de sesión fallido como root después de superar este valorDENY_THRESHOLD_ROOT = 1

# Bloquear cada host después de que el número de intentos de inicio de sesión fallidos (para usuarios encontrados en
# WORK_DIR/restricted-usernames) supere este valor
DENY_THRESHOLD_RESTRICTED = 1

Aunque no sugiero cambiar esos valores, si tienes una buena razón, adelante y edítalos.

A continuación, querrás configurar la dirección de correo electrónico de alerta. En el mismo archivo de configuración, busca la línea:

ADMIN_EMAIL =

Los 4 archivos más importantes para las conexiones SSH en Linux

Configura la dirección de correo electrónico a la que deseas recibir esas alertas. Por defecto, Denyhosts utiliza el método de entrega de correo SMTP local (en el puerto 25). Si esto no funciona para ti, puedes configurar las siguientes opciones (en el archivo denyhosts.conf) según tus necesidades:

SMTP_HOST =
SMTP_PORT =
SMTP_FROM =

Una vez que hayas configurado las opciones de correo electrónico salientes necesarias, guarda y cierra el archivo.

Reinicia y habilita el servicio de Denyhosts con los siguientes comandos:

sudo systemctl restart denyhosts
sudo systemctl enable denyhosts

Observar el archivo de registro

De forma predeterminada, Denyhosts registra en /var/log/auth.log. Puedes ver ese registro en tiempo real con el siguiente comando:

Cómo configurar las políticas de contraseñas en Windows 7

tail -f /var/log/auth.log

Verás cualquier intento de inicio de sesión SSH exitoso listado (Figura A), así como también cualquier ataque (esperemos que no veas esos).

Pruebas

La forma más rápida de probar Denyhosts es intentar iniciar sesión desde otro servidor (uno que no haya sido incluido en la lista blanca) como usuario root. La conexión fallará y la dirección IP de la máquina ofensiva se añadirá automáticamente a /etc/hosts.deny. Esa máquina está oficialmente bloqueada para conectarse al servidor habilitado con Denyhosts. Si intentas iniciar sesión con un nombre de usuario válido, no podrás establecer conexión.

Desbloquear

Para desbloquear una dirección IP, detén el servicio de Denyhosts con el siguiente comando:

sudo systemctl stop denyhosts

Luego, necesitarás eliminar la dirección IP de la máquina que deseas desbloquear de las siguientes ubicaciones:

Comparativa: Dell Latitude vs Lenovo ThinkPad - Cuál es la mejor opción para ti
  • /etc/hosts.deny
  • /var/lib/denyhosts/hosts
  • /var/lib/denyhosts/hosts-restricted
  • /var/lib/denyhosts/hosts-root
  • /var/lib/denyhosts/hosts-valid
  • /var/lib/denyhosts/users-hosts

Una vez que hayas eliminado esa dirección IP de la lista anterior de archivos, reinicia Denyhosts con el siguiente comando:

sudo systemctl start denyhosts

Deberías volver a tener un funcionamiento normal con la dirección IP en cuestión. Disfruta de tu seguridad mejorada en SSH.

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Seguridad, allí encontraras muchos artículos similares a Cómo proteger tus servidores Linux de ataques de fuerza bruta con denyhosts , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.