¿Qué es un Cortafuegos y Cómo Funciona?
Un cortafuegos (firewall) es un componente esencial de la seguridad de red que actúa como una barrera entre una red interna confiable y redes externas no confiables, como Internet. Su función principal es controlar el tráfico de red entrante y saliente basándose en un conjunto de reglas predefinidas.
Funciones Principales de un Cortafuegos
- Filtrado de Tráfico: Examina los paquetes de datos y permite o bloquea el tráfico según las reglas configuradas.
- Imposición de Políticas de Seguridad: Aplica políticas de seguridad para controlar el acceso a los recursos de la red.
- Protección de la Red Privada: Aísla la red interna de las amenazas externas.
- Prevención de Intrusiones: Bloquea intentos de acceso no autorizados.
- Limitación de Servicios: Restringe el acceso a servicios específicos.
- Control de la Actividad Interna: Monitoriza y controla el tráfico dentro de la red.
Limitaciones de un Cortafuegos
Un cortafuegos no puede proteger contra:
- Robos de información si el atacante ya está dentro de la red.
- Virus informáticos (generalmente, esta es tarea de un antivirus).
- Ataques de ingeniería social.
- No cifra el tráfico (para eso se usan VPNs u otras tecnologías de cifrado).
Tipos de Cortafuegos
Existen varios tipos de cortafuegos, cada uno con diferentes niveles de seguridad y funcionalidad:
- Cortafuegos de Capa de Red: Controlan el flujo de datos entre redes aplicando reglas a nivel de red (capa 3 del modelo OSI).
- Cortafuegos de Filtrado de Paquetes: Examinan cada paquete individualmente y deciden si permitirlo o bloquearlo según reglas predefinidas (direcciones IP, puertos).
- Cortafuegos Proxy (Pasarelas de Aplicaciones): Actúan como intermediarios entre los clientes y los servidores, filtrando el tráfico a nivel de aplicación (capa 7 del modelo OSI).
- Cortafuegos de Inspección de Estado (Stateful Inspection): Analizan el contexto de la conexión y el contenido de los paquetes, no solo los encabezados.
- Cortafuegos Domésticos/SOHO: Diseñados para redes domésticas o pequeñas oficinas, ofrecen una protección básica.
- Cortafuegos de Nueva Generación (NGFW): Combinan características de los cortafuegos tradicionales con funcionalidades avanzadas como inspección profunda de paquetes (DPI), prevención de intrusiones (IPS) y control de aplicaciones.
Filtrado Estático vs. Filtrado Dinámico
En el filtrado estático, no se estudia la relación entre paquetes consecutivos. Las reglas son fijas y se aplican a cada paquete individualmente, sin tener en cuenta el estado de la conexión. En cambio, el filtrado dinámico (stateful) sí considera el contexto de la conexión y la relación entre paquetes.
Zona Desmilitarizada (DMZ) con Doble Cortafuegos
Una zona desmilitarizada (DMZ) con doble cortafuegos es una configuración de red que proporciona una capa adicional de seguridad. Se utilizan dos cortafuegos:
- El primer cortafuegos se sitúa entre la red externa (Internet) y la DMZ.
- El segundo cortafuegos se sitúa entre la DMZ y la red interna.
Esta configuración ofrece mayor protección, ya que un atacante tendría que comprometer ambos cortafuegos para acceder a la red interna.
Operaciones de Administración y Auditoría de Cortafuegos
Para facilitar las auditorías y mantener la seguridad, los administradores de red deben realizar las siguientes operaciones:
- Mantener registros detallados de eventos (logs).
- Revisar periódicamente los registros.
- Actualizar el cortafuegos con los últimos parches de seguridad.
- Realizar pruebas de penetración (pentesting).
- Revisar y actualizar las reglas y políticas.
- Realizar auditorías de configuración.
- Proporcionar capacitación al personal.
Configuración de Reglas de Cortafuegos con iptables
iptables
es una herramienta de administración de cortafuegos en sistemas Linux que permite configurar reglas para controlar el tráfico de red. A continuación, se presentan ejemplos de comandos iptables
:
Comandos Básicos
- Añadir una regla a la cadena OUTPUT:
iptables -A OUTPUT [opciones] -j ACCIÓN
Poner a cero los contadores de paquetes de la cadena INPUT en la tabla nat:iptables -t nat -Z INPUT
Aplicar una regla a todas las cadenas de una tabla (ejemplo con la tabla filter):iptables -t filter [opciones] -j ACCIÓN
Nota: Si no se especifica la tabla, por defecto se usa ‘filter’.
Ejemplos Prácticos
- Denegar el tráfico Telnet desde una IP específica:
iptables -A INPUT -s 172.16.0.200 -p tcp --dport 23 -j DROP
Aceptar conexiones Oracle desde una IP pública específica:iptables -A INPUT -s 200.0.34.155 -p tcp --dport 1521 -j ACCEPT
Bloquear el puerto Apache (80):iptables -A INPUT -i <nombre_interfaz> -p tcp --dport 80 -j DROP
Reemplaza <nombre_interfaz>
con el nombre real de la interfaz (ej: eth0, enp0s3).
iptables -A INPUT -i <nombre_interfaz> -p tcp --dport 21 -j DROP
iptables -A INPUT -i <nombre_interfaz> -p tcp --dport 22 -j DROP
Bloquear todos los puertos TCP y UDP no conocidos (superiores a 1024):iptables -A INPUT -i <nombre_interfaz> -p tcp --dport 1025:65535 -j DROP
iptables -A INPUT -i <nombre_interfaz> -p udp --dport 1025:65535 -j DROP
Configuración de un Cortafuegos con Dos Interfaces
Si tienes un cortafuegos con dos interfaces de red (una conectada a la red local y otra a un router), puedes configurar las siguientes reglas:
Política por Defecto (Denegar Todo)
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
Permitir Conexiones desde la Red Local
iptables -A INPUT -i eth0 -s 172.16.0.0/16 -j ACCEPT
(Asumiendo que la red local es 172.16.0.0/16 y la interfaz conectada a la red local es eth0)
Enmascaramiento (NAT) para la Salida a Internet
iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -o eth1 -j MASQUERADE
(Asumiendo que la interfaz conectada al router/Internet es eth1 y que la red local 172.16.0.0/16 necesita acceder a internet)
Si se quiere hacer NAT a una subred, por ejemplo, 172.17.0.0/16:
iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -o eth1 -d 172.17.0.0/16 -j MASQUERADE
(Asumiendo que la interfaz conectada al router/Internet es eth1 y que la red local 172.16.0.0/16 necesita acceder a la subred 172.17.0.0/16)