Cómo bloquear los ataques de fuerza bruta SSH usando sshguard

Cómo bloquear los ataques de fuerza bruta SSH usando sshguard

Sshguard es un demonio de código abierto que protege los anfitriones de los ataques de fuerza bruta. Logra esto a través del monitoreo y la agregación de registros del sistema, detectar ataques y bloquear a los atacantes utilizando uno de los backends de Firewall de Linux: iptables, Cortafuegos, PF, y IPFW.

Inicialmente diseñado para proporcionar una capa adicional de protección para el servicio OpenSSH, Sshguard también protege una amplia gama de servicios como VSFTPD y Sufijo. Reconoce varios formatos de registro, incluidos los archivos de registro Syslog, Syslog-NG y RAW.

[También puede que le guste: cómo asegurar y endurecer el servidor OpenSsh]

Sshguard es bastante similar a fail2ban solo que está escrito en C (Fail2ban está escrito en Pitón), es más ligero y proporciona menos características.

En esta guía, demostraremos cómo puede instalar y configurar Sshguard bloquear Ssh ataques de fuerza bruta en su servidor de Linux.

Paso 1: Instale sshguard en Linux

Comenzamos con la instalación de Sshguard en Linux.

Instale sshguard en Debian/Ubuntu

Primero, actualice las listas de paquetes y luego instale Sshguard Desde los repositorios predeterminados utilizando el Administrador de paquetes APT.

$ sudo apt actualización $ sudo apt instalación sshguard 

Una vez instalado, el Sshguard El servicio comienza automáticamente y puede verificar esto usando el comando:

$ sudo systemctl sshguard 
Consulte Sshguard en Ubuntu

Instale sshguard en sistemas RHEL

Para distribuciones basadas en Rhel como Cento, Rocoso, y Almalinux, Comience instalando el Epel repositorio según lo dispuesto en el comando a continuación.

$ sudo dnf install https: // dl.federaproject.org/pub/epel/epel-liber-latest-8.noarch.RPM o $ sudo DNF Instalar EPEL-LAGE 

Con Epel En su lugar, adelante e instale Sshguard Uso del administrador de paquetes DNF.

$ sudo dnf instalación sshguard 

Una vez instalado, inicie y establezca Sshguard Para comenzar con el inicio del sistema o reiniciar.

$ sudo systemctl start sshguard $ sudo systemctl habilita sshguard 

Asegúrese de verificar que Sshguard está funcionando como se esperaba.

$ sudo systemctl sshguard 
Consulte Sshguard en Rhel

Paso 2: configuración de sshguard en Linux

Sshguard monitorea activamente el /var/log/auth.registro, /var/log/seguro Systemd Journal, y syslog-ng Archivos de registro para intentos de inicio de sesión fallidos.

Para cada intento de inicio de sesión fallido, el host remoto está prohibido por un tiempo limitado que, por defecto, se establece en 120 segundos. A partir de entonces, el tiempo de prohibición aumenta por un factor de 1.5 con cada intento de inicio de sesión fallido sucesivo.

El tiempo en que se prohiben los hosts ofensivos, además de otros parámetros se especifica en el sshguard.confusión archivo. Puede acceder al archivo de configuración utilizando el editor VIM como se muestra.

$ sudo vim/etc/sshguard/sshguard.confusión 

En las distribuciones basadas en RHEL, el archivo de configuración se encuentra en la siguiente ruta.

$ sudo vim /etc /sshguard.confusión 

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

Archivo de configuración sshguard

Centrémonos en la opción principal.

  • El Backend Directiva apunta a la ruta completa del ejecutable de backend. En este ejemplo, vemos que Iptables se establece como el backend predeterminado del firewall.
  • El LÍMITE Directiva bloquea a los atacantes cuando su puntaje de ataque excede el valor especificado.
  • El Block_time La opción es el número de segundos que un atacante está bloqueado después de cada intento de inicio de sesión fallido sucesivo. Por defecto, esto se establece en 120 después del primer intento. Esto aumenta con cada intento de inicio de sesión fallido sucesivo.
  • El Detection_time La opción se refiere a la hora en segundos durante los cuales el sistema está registrado o recordado por el sistema antes de que se restablezca su puntaje.
  • El Whitelist_file La opción apunta a la ruta completa del archivo de la lista blanca que contiene hosts que no se supone que estén en la lista negra./li>

Paso 3: Configurar sshguard para bloquear los ataques de fuerza bruta ssh

Para evitar fuerza bruta ataques, debes configurar en los siguientes firewalls para trabajar con sshguard.

Bloquear ataques SSH usando UFW

Si tiene UFW instalado y habilitado en su Ubuntu / Debian sistema, modifique el /etc/UFW/antes.normas archivo.

$ sudo vim etc/ufw/antes.normas 

Agregue las siguientes líneas justo después del Permitir todo en Loopback sección.

# Permitir todo en Loopback -A UFW -Before -Input -i lo -j Aceptar -A UFW -Before -Output -o lo -j Aceptar # Control de la mano para SSHD a SSHGUARD: SSHGUARD -[0: 0] -A UFW -Borefore -Input -P TCP - -DPORT 22 -J SSHGUARD 

Guarde el archivo y reinicie UFW.

$ sudo systemctl reiniciar UFW 

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

Puede verificar esto revisando el auténtico.registro archivo de registro.

$ sudo tail -f/var/log/auth.registro 
Verifique los ataques de fuerza bruta SSH

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

Bloquear ataques SSH usando Firewalld

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

$ sudo firewall-cmd --Permanent --zone = public --add-rich-rule = "Fuente de reglas ipset = sshguard4 drop" 

Para aplicar los cambios, recargar Cortafuegos y sshguard.

$ sudo firewall-cmd--Reload $ sudo systemctl reiniciar sshguard 

Luego verifique la regla de la siguiente manera:

$ sudo firewall-cmd --info-ipset = sshguard4 
Consulte Sshguard en Firewalld

Bloquear ataques SSH usando iptables

Si todavía estás usando Iptables, Primero, cree una nueva regla de cadena para sshguard en Iptables para comenzar a bloquear a los malos.

# iptables -n sshguard 

A continuación, actualice el APORTE cadena para dirigir el tráfico a sshguard y bloquear todo el tráfico de fiestas nefastas.

# iptables -A entrada -j sshguard 

Bloquear puertos específicos como Ssh, ESTALLIDO, y IMAP Desde los abusadores Ejecute el comando:

# iptables -a entrada -m multiport -p tcp - -destation -puertos 22,110,143 -j sshguard 

Y finalmente, guarde la regla para que los cambios entren en vigencia.

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

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

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

/etc/sshguard/whitelist - Ubuntu/Debian /etc/sshguard.lista blanca - DISTRSES BASADAS DE RHEL 

A partir de entonces, asegúrese de reiniciar el sshguard Daemon y el backend de firewall para que se apliquen los cambios.

En esta guía, hemos demostrado cómo puede bloquear Ssh Ataques de fuerza bruta usando Sshguard Daemon en servidores de Linux. Tus comentarios son bienvenidos.