Marcio Cunha

Cómo configurar reglas de firewall con iptables en Linux

Aprenda a proteger sus servidores contra ataques de denegación de servicio y filtrar paquetes de red de forma granular usando iptables.

Marcio Cunha•4 min
También disponible en:PortuguêsEnglish
Resumen
  • Iptables inspecciona la cabecera y el contenido de los paquetes que entran y salen de la interfaz de red del servidor.
  • Las tablas lógicas organizan el tráfico por funciones como filtrado, traducción de direcciones y marcado de paquetes.
  • Crear políticas restrictivas por defecto bloquea todo el tráfico no deseado antes de abrir puertos esenciales.
  • El límite de tasas evita que picos excesivos de peticiones maliciosas derriben aplicaciones en producción.
  • La persistencia correcta de las reglas garantiza que la seguridad del sistema no se pierda tras reiniciar.

Qué es iptables y cómo protege servidores Linux

Gestionar el tráfico de red que entra y sale de un servidor Linux es una de las tareas más importantes para garantizar la seguridad de la infraestructura. Iptables es la herramienta estándar de línea de comandos en el núcleo de Linux utilizada para configurar el sistema de filtrado de paquetes conocido como Netfilter. En la práctica, funciona como un vigilante estricto en la puerta de acceso, comprobando la identidad, origen y destino de cada paquete de datos que intenta entrar o salir del ordenador.

Cuando se configura correctamente, iptables impide accesos no autorizados, bloquea intentos de intrusión y mitiga impactos de ataques de denegación de servicio (DDoS), donde bots malintencionados intentan tirar un sitio enviando millones de peticiones simultáneas falsas. Antes de poner cualquier aplicación en producción, como sistemas monitorizados en entornos aislados, comprender la lógica detrás de las reglas de firewall evita dolores de cabeza y fugas de datos críticos.

Entendiendo tablas, cadenas y el orden de inspección

Para dominar iptables, hay que entender que organiza el trabajo en tres conceptos principales: tablas, cadenas (chains) y reglas. Las tablas dividen el trabajo según objetivos. La tabla más utilizada es filter, centrada en decidir si un paquete puede pasar o debe ser rechazado. Otras tablas se encargan de traducir direcciones IP o modificar paquetes en el camino.

Dentro de cada tabla existen las cadenas, que son los puntos de control por donde pasa el paquete. La cadena INPUT gestiona el tráfico que llega al propio servidor, OUTPUT maneja lo que sale, y FORWARD administra paquetes que solo atraviesan el servidor hacia otro destino. Cada paquete recibido se compara con las reglas de arriba a abajo. Tan pronto como una regla emite un veredicto de aceptar o bloquear, la búsqueda se detiene y se sella el destino del paquete.

Bloqueando ataques de denegación de servicio con límite de tasa

Los ataques de denegación de servicio suelen saturar el servidor con miles de conexiones por segundo, agotando la memoria y la capacidad de procesamiento. Para mitigar este problema sin apagar el servicio a usuarios legítimos, podemos usar el módulo hashlimit o el control básico de límites de iptables. Esto restringe cuántas peticiones puede hacer una misma dirección IP en un intervalo de tiempo determinado.

En la práctica, creamos una regla que le dice al sistema: si una IP intenta abrir más de un número seguro de nuevas conexiones en un puerto web en pocos segundos, los intentos posteriores serán ignorados o rechazados sumariamente. Este tipo de blindaje es esencial para mantener la estabilidad de la máquina, trabajando junto con buenas prácticas de mantenimiento de sistemas y recuperación ante fallos bajo alta presión operativa.

Guía paso a paso para crear un script de firewall seguro

Vamos a crear una plantilla de firewall funcional y segura que bloquea todo por defecto y abre únicamente lo necesario para la operación básica del servidor. Abra la terminal con privilegios administrativos y siga los pasos a continuación para aplicar y validar sus reglas.

  1. Configure la política por defecto para denegar todo el tráfico de entrada y reenvío, permitiendo solo la salida:
    iptables -P INPUT DROP
    iptables -P FORWARD DROP
    iptables -P OUTPUT ACCEPT
  2. Permita el tráfico loopback (comunicación interna de la propia máquina) y las conexiones ya establecidas para evitar bloqueos:
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
  3. Permita el acceso remoto mediante SSH definiendo un puerto seguro y protegiendo contra ataques de fuerza bruta limitando las tasas de nuevas conexiones:
    iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m hashlimit --hashlimit-above 3/min --hashlimit-burst 5/src -j DROP
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Filtrado granular y guardado permanente de las reglas

Además de prevenir caídas, el filtrado granular permite aislar servicios internos o conceder acceso exclusivamente a direcciones IP de confianza de administradores o socios. Por ejemplo, si desea que solo una IP segura acceda al panel de su base de datos, basta con crear una regla dirigida específicamente a ese origen, denegando todo lo demás.

Un detalle importante es que, por defecto, las reglas de iptables desaparecen al reiniciar el servidor. Para evitar perder su configuración, debe guardar el conjunto actual de reglas utilizando herramientas específicas de su distribución, como el paquete iptables-persistent. De este modo, el cortafuegos se recarga automáticamente con las mismas protecciones cada vez que se enciende la máquina. Para profundizar en estos conceptos arquitectónicos en producción, consulte también nuestro análisis técnico sobre Cómo probar capacitores SMD en la placa con osciloscopio.

Conclusión

Dominar iptables es una habilidad fundamental para cualquier profesional que gestione servidores Linux, uniendo la protección contra ataques de denegación de servicio con el control quirúrgico del flujo de datos. Al estructurar políticas restrictivas, aplicar límites de tasa inteligentes y garantizar la persistencia de las reglas, se construye una capa de defensa robusta y fiable.

Mantener el cortafuegos actualizado y monitorizar el comportamiento de la red en busca de anomalías completa el ciclo de seguridad de la infraestructura, asegurando que las aplicaciones críticas funcionen sin sorpresas no deseadas.