Firewall
Última actualización
Última actualización
Los firewalls son dispositivos de red que controlan los paquetes que entran y salen de una red informática. Normalmente, una empresa (y, más recientemente, un usuario doméstico) utiliza un firewall para impedir que personas externas a la red de la empresa (es decir, todos los que estén en Internet) accedan a los ordenadores y recursos dentro de la red de la empresa. Por ejemplo, considera un firewall que proteja la red interna de una universidad.
El filtrado de paquetes se usa como técnica de analisis de trafico de la red al atravesar un dispositivo y tomar decisiones:
Permitir el paso
Denegar el paso (silenciosamente o no)
Modificar el tráfico
Seleccionar determinado tráfico
El firewall puede utilizarse, por ejemplo, para:
Analizamos el tráfico proveniente de un nodo de nuestra red que esta provocando problemas.
Bloqueamos el trafico de un nodo de internet que esta atacando nuestra red
Bloqueamos el tráfico web desde una dirección IP que está haciendo descargas masivas ocasionando la ralentización del trafico al resto de usuarios.
Permitimos la respuesta de ping desde el exterior solo a un nodo de nuestra red y limitamos la tasa de solicitud a un ritmo máximo de 3 segundos.
Impedir que personas en Internet envíen virus y spam a ordenadores de la red empresarial.
El firewall también puede utilizarse para controlar el acceso a los equipos dentro de la red. Por ejemplo:
Impedir que los estudiantes universitarios accedan a sitios web inapropiados en Internet.
Impedir que los usuarios envíen paquetes de ping a routers en Internet.
El firewall suele ser un enrutador especializado que actúa como puerta de enlace entre la red local y las redes externas, es decir, todo el tráfico pasa por el firewall. En la imagen se ilustra la vista de un enrutador, R , con un firewall, donde una interfaz está conectada a la red externa y la otra a la red interna.
En ámbito corporativo es habitual que existan dispositivos específicos de cortafuegos (“Network appliances”), en ocasiones es hardware genérico con software específico del fabricante o software libre y en otras ocasiones no es más que un PC, real o virtual El dispositivo que actúa como cortafuegos puede realizar otras funciones tipicamente:
Proxy
Router
Dispositivo de NAT
Modificación del tráfico
VPN
Un router de puerta de enlace (es decir, el enrutador entre las redes internas y externas) normalmente recibe un paquete IP, mira la dirección IP de destino, busca en su tabla de enrutamiento para determinar dónde enviar el paquete y envía (o reenvía) el paquete.
El filtrado se puede relizar:
Por niveles utilizando las diferentes capas de TCP/IP
A nivel de enlace por cabecera, por ejemplo filtrando las MACs de origen o destino
A nivel de transporte, por ejemplo filtrando puertos UDP origen o destino o por el estado de la conexión TCP
A nivel de aplicación especifico de cada aplicación: DNS, HTTP, FTP...
Un firewall es un hardware o software que se ejecuta en el router de puerta de enlace y que proporciona funcionalidad adicional:
Al recibir el paquete IP, el firewall lo analiza y lo compara con un conjunto de reglas almacenadas en una tabla. Un ejemplo de regla podría ser: "Descartar todos los paquetes destinados a la dirección IP 64.233.189.104".
Cuando una regla coincide, se ejecuta la acción correspondiente. Esta suele ser DROP (descartar, no permitir el paso del paquete) o ACCEPT (reenviar, permitir el paso del paquete). En la regla anterior, si la dirección IP de destino era 64.233.189.104 , el paquete se descartaba.
Si el paquete no se descarta, el router de enlace sigue sus procedimientos normales (por ejemplo, buscar la tabla de enrutamiento y enviar el paquete).
Las reglas que utilizan los firewalls son el aspecto más importante. Pueden ser muy simples (p. ej., "descartar todos los paquetes destinados a la red local") o muy complejas (p. ej., miles de reglas).
Los firewalls de filtrado de paquetes generalmente crean las reglas utilizando la siguiente información:
Condiciones de coincidencia de paquetes:
Dirección IP de origen
Dirección IP de destino
Número de puerto de origen TCP/UDP
Número de puerto de destino TCP/UDP
Otros campos de encabezado IP/TCP/UDP
Dirección del tráfico:
¿El paquete viene de afuera (hacia adentro) o viene de adentro (hacia afuera)?
Comportamiento:
ACEPTAR o ABANDONAR
Usando las condiciones anteriores, se puede construir un firewall razonablemente bueno que pueda filtrar paquetes basándose en dónde provienen los paquetes, hacia dónde van y qué aplicaciones se están utilizando (recuerda, si un número de puerto de destino es 80, podemos asumir que se está utilizando una aplicación de navegación web; si quisieras detener toda navegación web, entonces podría descartar todos los paquetes destinados al puerto 80).
Se pueden crear firewalls más complejos (firewalls a nivel de aplicación) analizando no solo la información de los paquetes TCP/IP, sino también el contenido de los mensajes. Por ejemplo:
¿El paquete contiene un virus de correo electrónico o spam?
¿El paquete contiene spam?
¿La solicitud web es a un servidor inaceptable (por ejemplo, www.illegal-site.com)?
Sea el tipo de firewall que sea, generalmente no tendrá mas que un conjunto de reglas en las que se examina el origen y destino de los paquetes del protocolo tcp/ip. En cuanto a protocolos es probable que sean capaces de filtrar muchos tipos de ellos, no solo los tcp, también los udp, los icmp, los gre y otros protocolos vinculados a vpns.
Este podría ser (en pseudo−lenguaje) un el conjunto de reglas de un firewall del primer gráfico:
Política por defecto ACEPTAR. Todo lo que venga de la red local al firewall ACEPTAR Todo lo que venga de la ip de mi casa al puerto tcp 22 ACEPTAR Todo lo que venga de la ip de casa del jefe al puerto tcp 1723 ACEPTAR Todo lo que venga de hora.rediris.es al puerto udo 123 ACEPTAR Todo lo que venga de la red local y vaya al exterior ENMASCARAR Todo lo que venga del exterior al puerto tcp 1 al 1024 DENEGAR Todo lo que venga del exterior al puerto tcp 3389 DENEGAR Todo lo que venga del exterior al puerto udp 1 al 1024 DENEGAR
En definitiva lo que se hace es: − Habilita el acceso a puertos de administración a determinadas IPs privilegiadas − Enmascara el trafico de la red local hacia el exterior (NAT, una petición de un pc de la LAN sale al exterior con la ip pública), para poder salir a internet − Deniega el acceso desde el exterior a puertos de administración y a todo lo que este entre 1 y 1024. Hay dos maneras de implementar un firewall:
Política por defecto ACEPTAR: en principio todo lo que entra y sale por el firewall se acepta y solo se denegará lo que se diga explícitamente.
Política por defecto DENEGAR: todo esta denegado, y solo se permitirá pasar por el firewall aquellos que se permita explícitamente.
Como es obvio imaginar, la primera política facilita mucho la gestión del firewall, ya que simplemente nos tenemos que preocupar de proteger aquellos puertos o direcciones que sabemos que nos interesa; el resto no importa tanto y se deja pasar. Por ejemplo, si queremos proteger una máquina linux, podemos hacer un netstat −ln
(o netstat −an
, o netstat −autp | grep LISTEN
) para saber que puertos están abiertos, poner reglas para proteger esos puertos y ya está. ¿Para qué vamos a
proteger un puerto que realmente nunca se va a abrir?
El único problema que podemos tener es que no controlemos que es lo que esta abierto, o que en un momento dado se instale un software nuevo que abra un puerto determinado, o que no sepamos que determinados paquetes ICMP son peligrosos.
Si la política por defecto es ACEPTAR y no se protege explícitamente, nos la estamos jugando un poco. En cambio, si la política por defecto es DENEGAR, a no ser que lo permitamos explícitamente, el firewall se convierte en un auténtico MURO infranqueable. El problema es que es mucho más difícil preparar un firewall así, y hay que tener muy claro como funciona el sistema (sea iptables o el que sea) y que es lo que se tiene que abrir sin caer en la tentación de empezar a meter reglas super−permisivas.
Esta configuración de firewall es la recomendada, aunque no es aconsejable usarla si no se domina mínimamente el sistema.
IMPORTANTE
El orden en el que se ponen las reglas de firewall es determinante. Normalmente cuando hay que decidir que se hace con un paquete se va comparando con cada regla del firewall hasta que se encuentra una que le afecta (match), y se hace lo que dicte esta regla (aceptar o denegar); después de eso NO SE MIRARÁN MÁS REGLAS para ese paquete. ¿Cuál es el peligro? Si ponemos reglas muy permisivas entre las primeras del firewall, puede que las siguientes no se apliquen y no sirvan de nada
La mayoría de las aplicaciones funcionan en modo cliente/servidor, donde un cliente dentro de una red accede a un servidor externo. La mayoría de las computadoras dentro de la red NO ejecutan servidores accesibles desde la red externa. Por ejemplo, no es necesario que la computadora de un estudiante universitario ejecute un servidor web accesible desde fuera de la universidad.
Por lo tanto, es común configurar firewalls que:
Permitan que los equipos dentro de la red accedan a servicios específicos fuera de ella. Esto se logra permitiendo que el tráfico pase del interior al exterior si está destinado a un puerto específico (por ejemplo, el puerto 80 para el tráfico web).
No permitir que los ordenadores dentro de la red accedan a servidores no autorizados fuera de la red (por ejemplo, una universidad puede decidir que nadie dentro de ella puede acceder a servidores FTP en Internet).
No permitir que ningún ordenador externo a la red acceda a ningún servidor dentro de ella. Las únicas excepciones son permitir el acceso a servidores dedicados (por ejemplo, el campus virtual).
Aunque los casos anteriores pueden llegar a ser bastante complejos en la práctica, se pueden utilizar reglas muy básicas para implementar un firewall simplificado que realice esta funcionalidad.
Los firewalls se pueden dividir en dos tipos: firewalls basados en host y firewalls basados en red:
Un firewall basado en host se instala en cada dispositivo individual (PC, servidor, etc.), controlando el tráfico entrante y saliente de ese equipo en particular. Estos firewalls forman parte del sistema operativo o son aplicaciones independientes:
Es el caso de un usuario que instala Windows Defender Firewall en su ordenador personal para evitar que programas desconocidos accedan a Internet sin su permiso. También puede configurar reglas para bloquear conexiones entrantes desde direcciones IP sospechosas.
Es el caso también de:
iptables en Linux.
pfSense que proviene de sistemas BSD.
Host-based firewalls en servidores web para bloquear ataques dirigidos a servicios específicos.
Un firewall de red opera a nivel de red, filtrando el tráfico de todos los dispositivos conectados. Normalmente, estos firewalls están implementados en routers, switches o dispositivos de seguridad dedicados, algunos ejemplos son:
Cisco ASA: Un firewall empresarial que protege redes corporativas.
SonicWall: Se usa para filtrar tráfico en pequeñas y medianas empresas.
pfSense en modo router/firewall: Controla el tráfico de una red doméstica o empresarial.
Dentro de estos hay diferentes tipos:
Ejemplos de reglas:
Permitir solo tráfico SSH desde una IP específica:
Bloquear tráfico saliente a un sitio web malicioso:
Este tipo de firewall no inspecciona cada paquete, sino que monitorea las sesiones para garantizar que sean legítimas antes de permitir la comunicación. Por ejemplo, un firewall SOCKS proxy permite conexiones solo si la autenticación del usuario es válida. Esto es útil en redes corporativas donde solo ciertos empleados pueden acceder a recursos específicos en Internet.
Otros ejemplos:
Puerta de enlace de seguridad en VPN: Permite conexiones solo si se establece un túnel seguro.
Firewall en servidores de juegos en línea: Asegura que solo usuarios autorizados accedan a los servidores.
Estos firewalls registran el estado de las conexiones activas y permiten o bloquean paquetes en función de su relación con conexiones previas. Por ejemplo, un firewall en una empresa permite conexiones SSH entrantes solo si fueron iniciadas por un administrador previamente autenticado.
Otros ejemplos de reglas:
Permitir respuestas a conexiones HTTP pero no solicitudes directas:
Bloquear paquetes sospechosos que no pertenecen a una conexión establecida:
Estos firewalls analizan el tráfico en la capa de aplicación, permitiendo o bloqueando conexiones en función de reglas más detalladas, por ejemplo, un firewall proxy en una empresa filtra todo el tráfico HTTP y HTTPS. Solo permiten sitios aprobados, bloqueando redes sociales y páginas de descargas no autorizadas.
Otros ejemplos:
Squid Proxy: Se usa para filtrar contenido web en redes escolares o corporativas.
NGINX como firewall reverse: Protege servidores web contra ataques DDoS.
Zscaler Internet Access: Inspecciona tráfico de usuarios para bloquear contenido peligroso.
Estos firewalls combinan múltiples técnicas de inspección de seguridad, incluyendo filtrado de paquetes, inspección de estado y análisis avanzado del tráfico.
Características clave de los NGFW:
Inspección profunda de paquetes (DPI): Examina el contenido de los paquetes para detectar malware.
Prevención de intrusos (IPS/IDS): Detecta intentos de ataque y bloquea conexiones sospechosas.
Análisis de comportamiento: Identifica patrones de tráfico anormales que podrían indicar una intrusión.
En resumen, los usos prácticos para:
Un firewall basado en host protege dispositivos individuales.
Un firewall de red filtra el tráfico en toda una infraestructura.
Los firewalls de filtrado de paquetes bloquean tráfico basado en IP y puertos.
Las puertas de enlace a nivel de circuito verifican la legitimidad de las conexiones.
Los firewalls de inspección con estado rastrean sesiones activas para mejorar la seguridad.
Los firewalls proxy filtran contenido según las aplicaciones y servicios utilizados.
Los firewalls NGFW combinan múltiples capas de seguridad para detener amenazas avanzadas.
Como ya hemos dicho, un firewall es un hardware especifico con un sistema operativo o una IOS que filtra el tráfico TCP/UDP/ICMP/../IP y decide si un paquete pasa, se modifica, se convierte o se descarta. Para que un firewall entre redes funcione como tal debe tener al menos dos tarjetas de red.
Esta sería la tipología clásica de un firewall:
Función: Proteger una red local conectada a internet a través de un router. El firewall debe colocarse entre el router (con un único cable) y la red local (conectado al switch o al hub de la LAN).
Dependiendo de las necesidades de cada red, puede ponerse uno o más firewalls para establecer distintos perímetros de seguridad en torno a un sistema. Es frecuente también que se necesite exponer algún servidor a internet (como es el caso de un servidor web, un servidor de correo, etc..), y en esos casos obviamente en principio se debe aceptar cualquier conexión a ellos. Lo que se recomienda en esa situación es situar ese servidor en lugar aparte de la red, la llamada como DMZ o zona desmilitarizada. El firewall tiene entonces tres entradas:
En la zona desmilitarizada se pueden poner tantos servidores como se necesiten. Con esta arquitectura, permitimos que el servidor sea accesible desde internet de tal forma que si es atacado y se gana acceso a él, la red local sigue protegida por el firewall. Esta estructura de DMZ puede hacerse también con un doble firewall (aunque como se ve se puede usar un único dispositivo con al menos tres interfaces de red).
Sería un esquema como este:
En el esquema de la imagen se sigue la arquitectura clásica de un firewall con zona DMZ. Su propósito es permitir el acceso a ciertos servicios desde Internet sin comprometer la seguridad de la red interna. Funciona así:
El tráfico de Internet entra por el Router Exterior, donde se filtran algunas conexiones básicas.
El tráfico permitido es redirigido a la Red Perimetral (DMZ), donde se encuentran los servidores expuestos, como:
Un servidor web que aloja un sitio público.
Un servidor de correo que gestiona correos electrónicos.
Un servidor VPN que permite acceso remoto seguro.
El Router interior restringe el tráfico de la DMZ a la Red Interna, permitiendo solo conexiones autorizadas.
La Red Interna está protegida y solo permite comunicaciones específicas desde la DMZ, minimizando los riesgos de ataques directos desde Internet
Para configurar una zona desmilitarizada en la red de la organización, es necesario el firewall que será el encargado de segmentar la red y permitir o denegar las conexiones. En la siguiente tabla, de manera somera, se muestra el tipo de conexiones recomendables que permitiría o denegaría el firewall dependiendo su origen y destino:
La siguiente imagen muestra de forma gráfica el tráfico permitido y denegado por el firewall.
Utilizado principalmente con dos fines:
Un equipo con dirección privada pueda acceder a Internet (Source NAT o SNAT)
La opción más común hoy en día para acceder a Internet desde una red con direcciones privadas es source NAT, por ejemplo en el caso de un dispositivo de NAT modifica la IP privada origen por la IP pública y se puede utilizarse también entre redes privadas para evitar añadir reglas de encaminamiento estático.
Un equipo pueda acceder a un servicio ubicado en un equipo con dirección privada (Destination NAT o DNAT)
Este se utiliza cuando queremos exponer un servicio que está en un equipo con IP privada, por ejemplo, en el caso de un dispositivo de NAT que modifica la IP pública de peticiones que llegan a un determinado puerto por la IP privada del servidor.
[Por comprobar]
Pero cortafuegos es estrictamente un dispositivo de seguridad para controlar el tráfico de red. Una de las opciones más extendidas de cortafuegos es que proporciona más funciones que no son estrictamente de cortafuegos como NAT o modificación de los paquetes.
Estos firewalls comparan cada paquete de datos con reglas predefinidas antes de permitir o bloquear su paso. Se usan comúnmente en routers y switches. Con podemos realizar un ejemplo:
Más info: