Protegiendo tu Servidor SFTP: Configuración de fail2ban e ipset

Al configurar un servidor SFTP para permitir el intercambio seguro de archivos a través de Internet, la seguridad se convierte en una preocupación primordial. Una medida esencial para protegerlo contra ataques de fuerza bruta y otras amenazas es implementar herramientas como fail2ban e ipset. Estas soluciones trabajan en conjunto para detectar y bloquear actividades maliciosas, proporcionando una capa adicional de defensa para tu servidor.

 

En este artículo, te guiaré a través del proceso de configuración de fail2ban e ipset en un servidor Ubuntu, asegurando así que tu servidor SFTP esté protegido contra posibles intrusiones. 

Instalación y Configuración de fail2ban

Lo primero que debemos hacer es instalar fail2ban. Si estás utilizando Ubuntu, puedes hacerlo fácilmente ejecutando el siguiente comando en tu terminal:

sudo apt install fail2ban

Una vez instalado, copiaremos el archivo de configuración predeterminado a uno local para personalizarlo según nuestras necesidades:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
[DEFAULT]
ignoreip = 127.0.0.1/8 ::1
bantime = 1d
findtime = 10m
maxretry = 5

[ssh-with-ufw]
enabled = true
port = 22
filter = sshd
action = ufw[application="OpenSSH", blocktype=reject]
logpath = /var/log/auth.log
maxretry = 3


Para integrar fail2ban con el firewall UFW de Ubuntu, ajustaremos la configuración en jail.local. Aquí hay un ejemplo de configuración para proteger el servicio SSH:

Después de ajustar la configuración, reiniciamos el servicio de fail2ban para que los cambios surtan efecto:

sudo systemctl restart fail2ban

Configuración de ipset

Para añadir otra capa de protección, implementaremos ipset utilizando un script que gestiona una lista negra de direcciones IP conocidas por actividades maliciosas. Para ello, descargaremos el script y configuraremos las listas negras:

sudo wget -O /usr/local/sbin/update-blacklist.sh https://raw.githubusercontent.com/trick77/ipset-blacklist/master/update-blacklist.sh
sudo chmod +x /usr/local/sbin/update-blacklist.sh
sudo mkdir -p /etc/ipset-blacklist
sudo wget -O /etc/ipset-blacklist/ipset-blacklist.conf https://raw.githubusercontent.com/trick77/ipset-blacklist/master/ipset-blacklist.conf


Una vez descargados los archivos, podemos personalizar la configuración según nuestras necesidades. Por ejemplo, podemos ajustar las listas negras que se utilizan para bloquear direcciones IP conocidas por actividades maliciosas.

Para automatizar la actualización de la lista negra, crearemos un pequeño script que agregará automáticamente las direcciones IP detectadas por fail2ban a la lista negra de ipset:

bashCopy code#!/bin/bash
filecontent=(`zgrep 'Ban' /var/log/fail2ban.log* | awk '{print $8}'`)
blacklist=/etc/ipset-blacklist/ip-blacklist-custom.list
blacklist1=$( cat $blacklist )

touch $blacklist.1

for ip in "${filecontent[@]}"
do
  if [[ " $blacklist1" =~ "$ip" ]]
    then
        echo "" > /dev/null 2>&1
  else
       echo "$ip" >> $blacklist.1
  fi
done

sort -u $blacklist.1 >>  $blacklist
sed -i '/^$/d'  $blacklist
rm  $blacklist.1
/usr/local/sbin/update-blacklist.sh /etc/ipset-blacklist/ipset-blacklist.conf

Finalmente, configuraremos este script en el cron para que se ejecute periódicamente y mantenga actualizada la lista negra:

@hourly root /usr/local/sbin/update-blacklist-custom.sh

Con fail2ban e ipset correctamente configurados, tu servidor estará mejor protegido contra ataques de fuerza bruta y otras amenazas

Deja una respuesta

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