Firewall para servidores: configurar iptables y fail2ban - SOLTIA - Hosting en España
Hosting desde 3,89 €/mes — SSL, dominio y migración gratis Ver planes
Seguridad Web 5 min de lectura

Firewall para servidores: configurar iptables y fail2ban

En este artículo:Introducción y objetivosConceptos básicos de iptablesConfigurar iptables paso a pasoHacer las reglas persistentesInstalar y configurar fail2banPruebas y endurecimientoFAQ y recursos Introducción y objetivos Un firewall bien configurado es esencial para…

LS
Por Luna SOLTIA
Equipo Soltia · Hosting en España

Introducción y objetivos

Un firewall bien configurado es esencial para proteger cualquier servidor. En este tutorial aprenderás a usar iptables para gestionar el tráfico de red y a complementar esa protección con fail2ban, que es muy útil para bloquear intentos reiterados de acceso no autorizado, como los ataques de fuerza bruta. Vas a encontrar comandos claros, ejemplos prácticos y consejos para sistemas Linux como Debian, Ubuntu, CentOS y RHEL. El objetivo es que al terminar tengas una configuración lista para usar en un entorno real.

Conceptos básicos de iptables

iptables se encarga de controlar el filtrado de paquetes a nivel de kernel a través de cadenas como INPUT, FORWARD y OUTPUT. Las reglas se ejecutan de arriba abajo y, cuando una coincide, se realiza la acción especificada: ACCEPT, DROP o REJECT, entre otras. Por lo general, trabajarás sobre la tabla filter y las cadenas más habituales.

  • INPUT: tráfico que llega al servidor.
  • OUTPUT: tráfico que sale desde el servidor.
  • FORWARD: tráfico que pasa a través del servidor, generalmente en tareas de routing.

Configurar iptables paso a paso

¿Necesitas hosting rápido y seguro?

Servidores en España con soporte 24/7. Desde 3,89€/mes.

Ver planes de hosting

Esta es una secuencia básica y segura para empezar. Ejecuta los comandos como root o usando sudo, y ajusta los puertos o direcciones según tus necesidades.

  1. Política por defecto: Deja INPUT y FORWARD en DROP, OUTPUT en ACCEPT:

    sudo iptables -P INPUT DROP

    sudo iptables -P FORWARD DROP

    sudo iptables -P OUTPUT ACCEPT

  2. Permitir loopback:

    sudo iptables -A INPUT -i lo -j ACCEPT

  3. Permitir conexiones ya establecidas:

    sudo iptables -A INPUT -m conntrack –ctstate RELATED,ESTABLISHED -j ACCEPT

  4. Abrir SSH (puerto 22 o el que utilices):

    sudo iptables -A INPUT -p tcp –dport 22 -m conntrack –ctstate NEW -j ACCEPT

  5. Abrir HTTP/HTTPS:

    sudo iptables -A INPUT -p tcp –dport 80 -j ACCEPT

    sudo iptables -A INPUT -p tcp –dport 443 -j ACCEPT

  6. Bloquear ICMP no deseado (opcional):

    sudo iptables -A INPUT -p icmp –icmp-type echo-request -j DROP

  7. Registrar y bloquear: Puedes añadir una cadena de registro para los paquetes descartados:

    sudo iptables -N LOGDROP

    sudo iptables -A LOGDROP -m limit –limit 2/min -j LOG –log-prefix «IPTables-DROP: » –log-level 4

    sudo iptables -A LOGDROP -j DROP

    Y enlazarla al final de INPUT: sudo iptables -A INPUT -j LOGDROP

Consejo: Prueba las reglas conectándote remotamente y mantén siempre una sesión abierta por si necesitas revertir algún cambio. Si te bloqueas, puedes limpiar todas las reglas con: sudo iptables -F, pero úsalo solo si sabes lo que haces.

Hacer las reglas persistentes

En Debian o Ubuntu suele ser útil instalar iptables-persistent o guardar la configuración manualmente con iptables-save:

  • Para guardar: sudo iptables-save > /etc/iptables/rules.v4
  • Para restaurar reglas al inicio, puedes crear un servicio systemd o utilizar los paquetes mencionados.

En CentOS y RHEL, existe el paquete iptables-services, aunque muchos sistemas nuevos prefieren firewalld. Elige según tu entorno.

Instalar y configurar fail2ban

fail2ban monitoriza los logs del sistema y bloquea temporalmente las IP que muestran patrones sospechosos, como varios intentos fallidos de acceso SSH. Instalarlo es sencillo:

  • Debian/Ubuntu: sudo apt update && sudo apt install fail2ban
  • CentOS: sudo yum install epel-release && sudo yum install fail2ban

El archivo de configuración recomendado es /etc/fail2ban/jail.local (no toques jail.conf directamente). Ejemplo básico para proteger SSH:

[sshd]

enabled = true

port = 22

filter = sshd

logpath = /var/log/auth.log (o /var/log/secure, depende de tu sistema)

maxretry = 5

bantime = 3600

fail2ban se apoya en iptables para crear reglas temporales de bloqueo. Puedes ver el estado general con sudo fail2ban-client status y consultar un jail específico, por ejemplo SSH, con sudo fail2ban-client status sshd.

Advertencia: fail2ban es solo una capa más de seguridad, no la única. Si realmente quieres proteger tus accesos SSH, utiliza claves en lugar de contraseñas, deshabilita el acceso directo como root y, si puedes, cambia el puerto por defecto o utiliza un jump host.

Pruebas y endurecimiento

Haz pruebas tanto localmente como desde IPs externas para asegurar que las reglas funcionan como esperas. Para revisar el estado actual:

  • sudo iptables -L -v -n
  • sudo fail2ban-client status

Algunos consejos extra:

  • Utiliza autenticación por clave SSH y restringe el acceso por IP si tienes esa posibilidad.
  • Implanta sistemas de monitorización y alertas, ya sea por syslog, SIEM, o notificaciones de eventos del firewall y bans de fail2ban.
  • Haz copias de seguridad de tus reglas antes de realizar cambios importantes; evita sorpresas.
HerramientaFunción principalVentaja
iptablesFiltrado de paquetes en kernelGran control y rendimiento
fail2banDetección y bloqueo de intrusos por logsBans automáticos y temporales

FAQ y recursos

¿Puedo usar nftables en vez de iptables? Sí, nftables es el sistema más moderno y, en muchas distribuciones, el recomendado. Pero iptables sigue estando presente en muchos sistemas y es perfectamente válido, sobre todo si ya lo tienes en funcionamiento.

¿Fail2ban bloquea para siempre? No necesariamente. Por defecto, los bloqueos son temporales (bantime). Si quieres que un ban sea permanente, ajusta bantime = -1 o añade manualmente la IP bloqueada a tus reglas de firewall.

¿Cómo recupero el acceso si me bloqueo? Si pierdes acceso remoto, utiliza la consola web de tu proveedor o, si tienes acceso físico, conecta un teclado y monitor. En virtualizados, la consola KVM/IPMI suele ser la vía de rescate.

Una buena combinación de iptables y fail2ban puede reducir mucho el riesgo frente a ataques comunes. Si buscas una solución gestionada en España, SOLTIA ofrece VPS, servidores dedicados, cloud y Guía Completa para Principiantes">Hosting WordPress Hispano: Guía Completa para Elegir en 2026">hosting WordPress sobre infraestructura propia, con soporte técnico real y disponibilidad garantizada.

Busca tu dominio ideal.

Más de 690 extensiones. Gestión DNS y SSL gratis incluidos.

.com.es.net .org.eu.info.online
Medio asociado: Galicia Universal