Tutoriales

Cómo bloquear ataques de fuerza bruta SSH con SSHGUARD

Guardia SSH es un demonio de código abierto que protege al host de los ataques de fuerza bruta. Lo hace monitoreando y agregando syslogs, detectando ataques y bloqueando a los atacantes usando uno de los backends de firewall de Linux: iptables, Cortafuegos D, por favor, y ipfw.

Diseñado originalmente para proporcionar una capa adicional de protección al servicio OpenSSH, Guardia SSH También protege una amplia gama de servicios como VSFTPD y sufijoReconoce múltiples formatos de registro, incluidos Syslog, Syslog-ng y archivos de registro sin formato.

[ You might also like: How to Secure and Harden OpenSSH Server ]

Guardia SSH Muy similar a Fail2ban, excepto que usa C (Fail2ban escriba en Pitón), son más ligeros y ofrecen menos funciones.

En esta guía, demostraremos cómo instalar y configurar Guardia SSH Evitar SSH Ataques de fuerza bruta en servidores Linux.

Paso 1: Instale SSHGuard en Linux

Empecemos con la instalación Guardia SSH en Linux.

Instalar SSHGuard en Debian/Ubuntu

Primero, actualice la lista de paquetes, luego instale Guardia SSH Obtenlo del repositorio predeterminado usando el administrador de paquetes apt.

$ sudo apt update
$ sudo apt install sshguard

Después de la instalación, Guardia SSH El servicio se inicia automáticamente, puedes verificarlo con:

$ sudo systemctl status sshguard
Compruebe SSHGuard en Ubuntu

Instalar SSHGuard en sistemas RHEL

Para distribuciones basadas en RHEL, p. sistema operativo central, Rocoso, y AlmaLinux, primero instala EPEL Repositorio proporcionado en el siguiente comando.

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
OR
$ sudo dnf install epel-release

y EPEL en su lugar, continúe con la instalación Guardia SSH Utilice el administrador de paquetes dnf.

$ sudo dnf install sshguard 

Después de la instalación, inicie y configure Guardia SSH Comienza en el arranque o reinicio del sistema.

$ sudo systemctl start sshguard
$ sudo systemctl enable sshguard

asegúrese de confirmar Guardia SSH está funcionando como se esperaba.

$ sudo systemctl status sshguard
Comprobar SSHGuard en RHEL
Comprobar SSHGuard en RHEL

Paso 2: Configuración de SSHGuard en Linux

Guardia SSH Monitoreo activo /var/log/auth.log, /var/registro/seguridad registro del sistema y Registro del sistema Archivo de registro para intentos fallidos de inicio de sesión.

Por cada intento de inicio de sesión fallido, el host remoto se bloquea por un período de tiempo, el valor predeterminado es 120 segundo. A partir de entonces, el tiempo de prohibición aumenta en un factor de 1,5 por cada intento de inicio de sesión fallido consecutivo.

Es hora de prohibir hosts infractores, entre otros parámetros, en sshguard.conf documento. Puede acceder al archivo de configuración usando el editor vim como se muestra.

$ sudo vim /etc/sshguard/sshguard.conf

En las distribuciones basadas en RHEL, los archivos de configuración se encuentran en las siguientes rutas.

$ sudo vim /etc/sshguard.conf

Aquí hay un archivo de configuración de muestra cuando se ve desde Ubuntu / Debian.

Archivo de configuración SSHGUARD
Archivo de configuración SSHGUARD

Centrémonos en las principales opciones.

  • Esta extremo posterior La directiva apunta a la ruta completa al ejecutable de back-end.En este ejemplo, vemos tablas de IP Establecer como servidor de seguridad predeterminado.
  • Esta punto crítico Directivas para bloquear a los atacantes cuando su puntuación de ataque supera un valor especificado.
  • Esta BLOCK_TIME La opción es la cantidad de segundos para bloquear al atacante después de cada intento de inicio de sesión fallido consecutivo. De forma predeterminada, se establece en 120 después del primer intento. Esto aumenta con cada intento de inicio de sesión fallido sucesivo.
  • Esta DETECCIÓN_HORA Las opciones se refieren a la cantidad de tiempo (en segundos) que el sistema registra o recuerda a un atacante antes de que se restablezca su puntaje.
  • Esta WHITELIST_archivo La opción apunta a la ruta completa a un archivo de lista blanca que contiene hosts que no deberían estar en la lista negra. /li>

Paso 3: Configure SSHGuard para bloquear ataques de fuerza bruta SSH

para evitar Fuerza bruta ataque, necesita configurar en el siguiente firewall para usar protector de pantalla.

Bloquee ataques SSH con UFW

Si tiene UFW instalado y habilitado en su dispositivo Ubuntu / Debian sistema, modificar /etc/ufw/before.rules documento.

$ sudo vim etc/ufw/before.rules

Agregue la siguiente línea después allow all on loopback parte.

# allow all on loopback
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-output -o lo -j ACCEPT

# hand off control for sshd to sshguard
:sshguard - [0:0]
-A ufw-before-input -p tcp --dport 22 -j sshguard

Guarde el archivo y reinicie UFW.

$ sudo systemctl restart ufw

Ahora intente iniciar sesión en el servidor desde un sistema diferente con las credenciales incorrectas y tenga en cuenta que quedará bloqueado durante 120 segundos después del primer intento fallido de inicio de sesión.

Puedes consultar por Registro de autorizaciones archivo de registro.

$ sudo tail -f  /var/log/auth.log
Compruebe si hay ataques de fuerza bruta SSH
Compruebe si hay ataques de fuerza bruta SSH

Después del siguiente intento fallido de registro, el tiempo de bloqueo aumenta a 240 segundos, entonces 480 segundos, entonces 960 segundos, y así sucesivamente.

Bloquee los ataques SSH con Firewalld

Si está ejecutando firewalld, asegúrese de que esté configurado y habilitado.Luego ejecute el siguiente comando para habilitar protector de pantalla en tu zona preferida.

$ sudo firewall-cmd --permanent --zone=public --add-rich-rule="rule source ipset=sshguard4 drop"

Para aplicar cambios, recargar cortafuegos y protector de pantalla.

$ sudo firewall-cmd --reload
$ sudo systemctl restart sshguard

Entonces las reglas de validación son las siguientes:

$ sudo firewall-cmd —-info-ipset=sshguard4
Compruebe SSHGuard en Firewalld
Compruebe SSHGuard en Firewalld

Bloquea ataques SSH con iptables

Si todavía está usando iptables, primero, por protector de pantalla existe iptables Empieza a detener a los malos.

# iptables -N sshguard

A continuación, actualice ingresar cadena para dirigir el tráfico a protector de pantalla y bloquear todo el tráfico de las partes malvadas.

# iptables -A INPUT -j sshguard

Bloquear puertos específicos, p. SSH, Música pop, y IMAP Ejecutar comando del abusador:

# iptables -A INPUT -m multiport -p tcp --destination-ports 22,110,143 -j sshguard

Finalmente, guarde la regla para que los cambios surtan efecto.

# iptables-save > /etc/iptables/iptables.rules

Paso 4: Cómo incluir en la lista blanca los hosts bloqueados por SSH

Para incluir en la lista blanca un host bloqueado, simplemente especifique su nombre de host o dirección IP en el archivo de la lista blanca ubicado en:

/etc/sshguard/whitelist - Ubuntu/Debian 
/etc/sshguard.whitelist - RHEL-based distros

Después de eso, asegúrese de reiniciar protector de pantalla Daemon y backend de firewall para aplicar cambios.

En esta guía, demostramos cómo bloquear SSH Uso de ataques de fuerza bruta Guardia SSH Un demonio en un servidor Linux. Tus comentarios son bienvenidos.

Si aprecia lo que estamos haciendo en TecMint, debe considerar:

TecMint es el sitio comunitario de más rápido crecimiento y más confiable para artículos, guías y libros de Linux de cualquier tipo en la web. ¡Millones de personas visitan TecMint! Busque o explore miles de artículos publicados que están disponibles gratuitamente para todos.

Si le gusta lo que está leyendo, considere invitarnos a un café (o dos) como agradecimiento.

Apoyanos

Agradecemos su apoyo interminable.

.

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba