LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado
 

SSHGuard es un demonio de código abierto que protege a los hosts de los ataques de fuerza bruta. Lo logra a través del monitoreo y la agregación de registros del sistema, la detección de ataques y el bloqueo de atacantes utilizando uno de los backends de firewall de Linux : iptables , FirewallD , pf e ipfw .

Diseñado inicialmente para proporcionar una capa adicional de protección para el servicio OpenSSH , SSHGuard también protege una amplia gama de servicios como Vsftpd y Postfix . Reconoce varios formatos de registro, incluidos Syslog, Syslog-ng y archivos de registro sin formato.

SSHGuard es bastante similar a Fail2ban solo que está escrito en C ( Fail2ban está escrito en Python ), es más ligero y proporciona menos funciones.

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

Paso 1: Instale SSHGuard en Linux

Comenzamos con la instalación de SSHGuard en Linux.

Instalar SSHGuard en Debian/Ubuntu

Primero, actualice las listas de paquetes y luego instale SSHGuard desde los repositorios predeterminados usando el administrador de paquetes apt .

$ sudo apt update
$ sudo apt install sshguard

Una vez instalado, el servicio SSHGuard se inicia automáticamente y puede verificar esto usando el comando:

$ sudo systemctl status sshguard

Compruebe SSHGuard en Ubuntu

Instalar SSHGuard en sistemas RHEL

Para distribuciones basadas en RHEL como CentOS , Rocky y AlmaLinux , comience instalando el repositorio EPEL como se indica en el siguiente comando.

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

Con EPEL en su lugar, continúe e instale SSHGuard usando el administrador de paquetes dnf .

$ sudo dnf install sshguard 

Una vez instalado, inicie y configure SSHGuard para que se inicie al iniciar o reiniciar el sistema.

$ sudo systemctl start sshguard
$ sudo systemctl enable sshguard

Asegúrese de verificar que SSHGuard se esté ejecutando como se esperaba.

$ sudo systemctl status sshguard

Comprobar SSHGuard en RHEL

Paso 2: Configuración de SSHGuard en Linux

SSHGuard supervisa activamente los archivos de registro /var/log/auth.log , /var/log/secure systemd journal y syslog-ng para detectar intentos fallidos de inicio de sesión.

Por cada intento fallido de inicio de sesión, el host remoto se bloquea por un período de tiempo limitado que, de forma predeterminada, se establece en 120 segundos. A partir de entonces, el tiempo de prohibición aumenta en un factor de 1,5 con cada intento de inicio de sesión fallido sucesivo.

El tiempo que los hosts infractores están prohibidos, además de otros parámetros, se especifica en el archivo sshguard.conf . 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, el archivo de configuración se encuentra en la siguiente ruta.

$ sudo vim /etc/sshguard.conf

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

Archivo de configuración SSHGUARD

Centrémonos en la opción principal.

  • La directiva BACKEND apunta a la ruta completa del ejecutable del backend. En este ejemplo, vemos que IPtables está configurado como el servidor de seguridad predeterminado.
  • La directiva THRESHOLD bloquea a los atacantes cuando su puntuación de ataque supera el valor especificado.
  • La opción BLOCK_TIME es la cantidad de segundos que un atacante está bloqueado después de cada intento de inicio de sesión fallido sucesivo. De forma predeterminada, se establece en 120 después del primer intento. Esto aumenta con cada intento de inicio de sesión fallido sucesivo.
  • La opción DETECTION_TIME hace referencia al tiempo en segundos durante el cual el sistema registra o recuerda al atacante antes de que se restablezca su puntuación.
  • La opción WHITELIST_file apunta a la ruta completa del archivo de la lista blanca que contiene hosts que no deberían estar en la lista negra./li>

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

Para protegerse de los ataques de fuerza bruta , debe configurar los siguientes firewalls para que funcionen con sshguard .

Bloquee los ataques SSH usando UFW

Si tiene UFW instalado y habilitado en su sistema Ubuntu / Debian , modifique el archivo /etc/ufw/before.rules .

$ sudo vim etc/ufw/before.rules

Agregue las siguientes líneas justo después de la allow all on loopbacksección.

# permitir todo en loopback
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-output -o lo -j ACCEPT
# pasar el control de sshd a 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 observe que quedará bloqueado durante 120 segundos después del primer intento fallido de inicio de sesión.

Puede verificar esto revisando el archivo de registro auth.log .

$ sudo tail -f /var/log/auth.log

Compruebe los ataques de fuerza bruta SSH

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

Bloquee los 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 su zona preferida.

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

Para aplicar los cambios, vuelva a cargar Firewalld y sshguard .

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

Luego verifique la regla de la siguiente manera:

$ sudo firewall-cmd —-info-ipset=sshguard4

Compruebe SSHGuard en Firewalld

Bloquee los ataques SSH usando Iptables

Si todavía usa 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 la cadena INPUT para dirigir el tráfico a sshguard y bloquee todo el tráfico de personas malintencionadas.

# iptables -A INPUT -j sshguard

Para bloquear puertos específicos como SSH , POP e IMAP de los abusadores, ejecute el comando:

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

Y por último, guarda 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 que se encuentra en:

/etc/sshguard/whitelist - Ubuntu/Debian  
/etc/sshguard.whitelist - distribuciones basadas en RHEL

A partir de entonces, asegúrese de reiniciar el demonio sshguard y el servidor de seguridad para que se apliquen los cambios.

En esta guía, hemos demostrado cómo puede bloquear los ataques SSH Bruteforce usando el demonio SSHGuard en servidores Linux. Tus comentarios son bienvenidos.

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías