Consejos para asegurar tu servidor Linode con firewall y fail2ban

·

·

Introducción

Asegurar un servidor Linode es fundamental para proteger la información, garantizar la disponibilidad del servicio y preservar la integridad de tus aplicaciones. Dos de las herramientas más eficaces para este propósito son un firewall bien configurado y fail2ban, que ayuda a mitigar ataques de fuerza bruta. En este artículo encontrarás consejos detallados para implantar y optimizar ambas soluciones, con ejemplos prácticos, tablas y buenas prácticas.

1. Configuración del Firewall

1.1. Elección de la herramienta: UFW vs iptables

Aunque iptables ofrece un control exhaustivo, su sintaxis puede resultar compleja. UFW (Uncomplicated Firewall) es una capa más sencilla, ideal para la mayoría de los escenarios. Bajo el capó, UFW genera reglas de iptables, pero simplifica la administración.

1.2. Instalación y activación de UFW

# Actualizar los repositorios
sudo apt update

# Instalar UFW
sudo apt install ufw -y

# Habilitar UFW
sudo ufw enable
  

1.3. Reglas básicas recomendadas

Antes de habilitar UFW, define las políticas por defecto:

sudo ufw default deny incoming
sudo ufw default allow outgoing
  

A continuación, abre únicamente los puertos necesarios:

Servicio Puerto Protocolo
SSH 22 TCP
HTTP 80 TCP
HTTPS 443 TCP

Ejemplo de apertura de puertos:

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
  

1.4. Reglas avanzadas y limitación de conexiones

  • Limitación de tasa SSH: evita intentos repetidos
    sudo ufw limit ssh
          
  • Restricción por IP: sólo IPs o rangos autorizados
    sudo ufw allow from 203.0.113.0/24 to any port 22 proto tcp
          

Revisa el estado y las reglas activas:

sudo ufw status verbose
  

2. Implementación de fail2ban

2.1. Instalación básica

sudo apt update
sudo apt install fail2ban -y
  

El servicio se inicia automáticamente. Para comprobar su estado:

sudo systemctl status fail2ban
  

2.2. Configuración de jails

Crea un archivo local para no sobrescribir la configuración por defecto:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  

Ejemplo de ajustes básicos en /etc/fail2ban/jail.local:

Parámetro Descripción Valor sugerido
bantime Duración del baneo 3600 (1 hora)
findtime Ventana de detección 600 (10 minutos)
maxretry Intentos antes de banear 3

2.3. Activar jails esenciales

  • SSH (predeterminado):
    [sshd]
    enabled = true
    port    = 22
    logpath = /var/log/auth.log
          
  • SSH con puerto personalizado:
    [sshd-custom]
    enabled = true
    port    = 2222
    filter  = sshd
    logpath = /var/log/auth.log
          

2.4. Filtros y acciones adicionales

Define filtros para otros servicios (Apache, Nginx, Postfix, etc.) y ajusta acciones como bloqueo temporal en el firewall:

action = ufw
  

Tras cualquier cambio:

sudo systemctl restart fail2ban
sudo fail2ban-client status
  

3. Buenas prácticas adicionales

  • Utilizar autenticación por clave pública/privada en SSH en lugar de contraseñas.
  • Cambiar el puerto SSH por defecto (security by obscurity).
  • Implementar 2FA en servicios críticos.
  • Mantener el sistema y los paquetes actualizados (sudo apt upgrade con regularidad).
  • Revisar logs periódicamente: /var/log/auth.log, /var/log/syslog.
  • Limitar el acceso a la consola de administración de Linode desde IPs seguras.

Conclusión

La combinación de un firewall configurado cuidadosamente y fail2ban proporciona una primera línea de defensa robusta contra accesos no autorizados y ataques de fuerza bruta. Siguiendo estos consejos y ajustando las reglas a las necesidades de tu entorno, lograrás un servidor Linode más seguro y resiliente.

Para profundizar, consulta la documentación oficial de Linode:
https://www.linode.com/docs/security/



Leave a Reply

Your email address will not be published. Required fields are marked *