El cortafuegos
El elemento que separa dos redes y decide qué tráfico las cruza: qué es y con qué política trabaja, las cuatro familias clásicas según la capa en la que inspeccionan, qué añaden los de nueva generación y dónde está el cortafuegos que ya trae el propio sistema operativo.
Qué es un cortafuegos y qué decide
Un cortafuegos es el elemento que se coloca en la frontera entre dos redes de distinta confianza y decide, paquete a paquete o conexión a conexión, cuál pasa y cuál no. No es necesariamente una máquina dedicada: puede ser un aparato específico, un programa dentro de un router, una función del propio sistema operativo de un servidor o un servicio contratado a un proveedor. Lo que lo define no es la caja, es la función: aplicar una política de acceso en un punto por el que el tráfico está obligado a pasar.
De esa definición sale su primera condición de uso. Un cortafuegos solo controla el tráfico que lo atraviesa, así que si existe un camino alternativo entre las dos redes (un módem olvidado, un punto de acceso inalámbrico conectado por debajo, un portátil que va y viene) la política no se aplica a ese camino y el perímetro está roto. Por eso la seguridad perimetral empieza por garantizar que hay un único punto de paso.
La política se escribe como una lista ordenada de reglas, y lo importante no son las reglas sino qué se hace con lo que no encaja en ninguna. Hay dos posturas posibles y solo una es aceptable: permitir por defecto y prohibir lo peligroso deja fuera todo lo que aún no se conoce, mientras que denegar por defecto y abrir solo lo expresamente necesario obliga a justificar cada apertura. La segunda es la que se aplica siempre. (Ampliación de esta plataforma: el documento de partida no la trata.)
Y conviene saber qué NO hace, porque es materia de pregunta. Un cortafuegos no detiene lo que viaja por un canal que él permite: si se deja abierto el tráfico web, el código malicioso descargado por web entra igual. No protege del atacante que ya está dentro de la red que él considera de confianza. No sustituye al antivirus del puesto ni a la actualización de los servidores. Y no puede inspeccionar lo que va cifrado si no se le da la clave para descifrarlo.
Los cortafuegos se clasifican por la capa en la que inspeccionan el tráfico, que es lo que determina cuánto entienden de lo que dejan pasar. De menos a más profundidad son cuatro familias: el filtrado de paquetes, la inspección con estado, la pasarela de circuito y la pasarela de aplicación o proxy. Se desarrollan en el punto siguiente.
Regla de oro de la política: lo que no está expresamente permitido, está prohibido. Cualquier enunciado que proponga lo contrario es la opción incorrecta.
Para el examen
Cómo decide: por regla
Política implícita correcta: cerrar por defecto: se permite lo declarado y se deniega el resto
Las cuatro familias clásicas
Cada familia mira una parte distinta del paquete, y esa es toda la clasificación. Cuanto más arriba inspecciona, más sabe de lo que está dejando pasar y más caro le sale en rendimiento.
| Familia | Dónde inspecciona | Qué decide con ello |
|---|---|---|
| Filtrado de paquetes | Capa de red y algo de transporte: direcciones IP de origen y destino, protocolo y números de puerto | Trata cada paquete por separado, sin recordar nada de los anteriores. Es rapidísimo y muy limitado: no distingue una respuesta legítima de un paquete fabricado que finge serlo |
| Inspección con estado | Lo mismo, pero manteniendo una tabla con las conexiones en curso | Sabe si un paquete pertenece a una conexión que él mismo autorizó a salir. Permite el tráfico de vuelta sin abrir el puerto de entrada, que es lo que hace posible una política de denegación por defecto realista |
| Pasarela de circuito | Capa de sesión: la apertura y el cierre de la conexión, no lo que se transporta dentro | Comprueba que el establecimiento de la conexión sea correcto y, una vez validado, deja circular los datos sin mirarlos. El ejemplo típico es SOCKS |
| Pasarela de aplicación o proxy | Capa de aplicación: entiende el protocolo concreto, sea HTTP, FTP o correo | Es el único que puede decidir por el contenido: qué URL, qué método, qué tipo de fichero. Termina la conexión del cliente y abre otra por su cuenta hacia el destino, así que los dos extremos nunca se hablan directamente |
La diferencia entre las dos primeras es la que más se pregunta, y se resuelve con una palabra: memoria. El filtrado sin estado juzga el paquete que tiene delante y lo olvida; la inspección con estado recuerda la conversación. De ahí que a la segunda se la llame también inspección dinámica.
La pasarela de aplicación tiene una consecuencia que conviene retener: como rompe la conexión en dos, oculta la topología interna y puede registrar y filtrar con todo detalle, pero necesita un módulo distinto para cada protocolo que quiera entender y es, con diferencia, la familia más lenta.
Sin estado mira el paquete; con estado mira la conexión; la pasarela de circuito mira el establecimiento; el proxy mira el contenido.
Para el examen
De filtrado de paquetes: mira cabeceras, sin memoria
De estado: sigue la conexión
De circuito: trabaja en la capa de sesión
De aplicación: entiende el contenido
Proxy directo y proxy inverso
Un proxy es un intermediario de nivel de aplicación: recibe la petición de un extremo, la examina y la vuelve a emitir él mismo hacia el otro. Según a cuál de los dos extremos represente recibe un nombre distinto, y esa es la pregunta segura del punto.
| Proxy directo | Proxy inverso | |
|---|---|---|
| A quién sirve | A los clientes de la red interna que salen a internet | A los servidores publicados, ante clientes que vienen de internet |
| Dónde se coloca | Delante de los usuarios | Delante de los servidores |
| Quién sabe que existe | El cliente, que está configurado para usarlo | Nadie: el cliente cree estar hablando con el servidor final |
| Para qué se usa | Filtrar navegación, aplicar control de contenido, cachear páginas y ocultar las direcciones internas | Publicar varios servicios tras una sola dirección, repartir carga, cachear y terminar el cifrado |
Productos habituales en los dos papeles: Squid, que nació como proxy directo con caché, y Nginx, Varnish o HAProxy, que se usan sobre todo como proxy inverso y balanceador delante de servidores web.
El proxy inverso es además una de las piezas que se colocan en la zona desmilitarizada, porque permite que los servidores de aplicaciones no estén nunca expuestos directamente. Eso se ve en el subtema siguiente.
El directo protege y controla a los clientes; el inverso protege y publica a los servidores. Si la pregunta habla de balanceo o de publicar servicios, es el inverso.
Para el examen
Proxy directo: protege y controla a los clientes que salen
Proxy inverso: protege los servidores publicados, reparte carga y termina el cifrado
Cortafuegos de nueva generación, WAF y UTM
Las cuatro familias clásicas se quedan cortas cuando casi todo el tráfico viaja por el puerto 443 y por dentro puede ir cualquier cosa. La respuesta del mercado fue meter en el mismo aparato funciones que antes eran productos separados, y de ahí salen tres nombres que caen enfrentados.
| Nombre | Qué es | Qué aporta |
|---|---|---|
| NGFW (cortafuegos de nueva generación) | Un cortafuegos con estado que además identifica la aplicación y al usuario, y no solo el puerto | Puede permitir una aplicación concreta y prohibir otra aunque las dos usen el mismo puerto. Suele incorporar prevención de intrusiones e inspección del tráfico cifrado |
| IPS integrado | Un sistema de prevención de intrusiones metido dentro del propio cortafuegos | Además de decidir si el paquete pasa por dirección y puerto, examina su contenido buscando patrones de ataque conocidos y lo bloquea |
| WAF (cortafuegos de aplicaciones web) | Un cortafuegos especializado en un solo protocolo, HTTP, colocado delante de una aplicación web | Frena los ataques propios de la web (inyección, secuencias de comandos en sitios cruzados y demás) inspeccionando parámetros, cabeceras y cuerpo de la petición |
| UTM (gestión unificada de amenazas) | Un único equipo que reúne cortafuegos, antivirus, antispam, filtrado de contenidos, IPS y a menudo terminación de VPN | Simplifica la gestión en organizaciones pequeñas, a costa de concentrar todo en un solo punto de fallo y de un rendimiento menor que el de los productos dedicados |
El WAF es el que más se pregunta porque se confunde con el cortafuegos de red, y la diferencia es de ámbito: el de red decide si una conexión puede llegar al servidor web; el WAF decide si la petición que ya ha llegado es aceptable. Los dos son necesarios y no se sustituyen.
Sus reglas se apoyan en catálogos públicos de debilidades web, siendo OWASP la referencia del sector con su lista de los riesgos más frecuentes. La implantación de referencia en software libre es ModSecurity, un módulo que se instala sobre el servidor web (Apache, Nginx o IIS) y aplica un conjunto de reglas. Los catálogos generales de vulnerabilidades, CVE y CWE, se estudian en el tema de seguridad de los sistemas de información de este mismo bloque.
WAF es un cortafuegos de UNA aplicación (la web) y de UN protocolo (HTTP). UTM es lo contrario: muchas funciones distintas en UN solo equipo.
Para el examen
De nueva generación: identifica aplicación y usuario, e integra IPS
WAF: específico de web: inyección SQL y XSS
UTM: lo agrupa todo en un aparato
El cortafuegos que trae el sistema operativo
No todo cortafuegos está en el perímetro. Cada máquina lleva el suyo, que filtra únicamente el tráfico que entra y sale de ella misma, y es la última línea cuando el perímetro falla o cuando el atacante ya está dentro de la red. A ese se le llama cortafuegos de anfitrión, frente al de red que protege a un conjunto de equipos.
En Linux el cortafuegos no es un programa que se instale: es netfilter, un marco de filtrado que forma parte del propio núcleo. Conviene fijarlo bien porque circula mal escrito: netfilter NO es un proxy. Un proxy termina la conexión y abre otra en nombre del cliente, y netfilter no hace nada de eso; se limita a inspeccionar los paquetes que atraviesan el núcleo y a dejarlos pasar, descartarlos o modificarlos.
Lo que sí se instala son las herramientas con las que se le escriben reglas, que son varias y conviven. Se preguntan por su nombre.
| Herramienta | Qué es |
|---|---|
| iptables | La herramienta clásica de línea de órdenes, la que aparece en casi todos los manuales |
| nftables | El sustituto moderno de iptables, con una sintaxis unificada; su orden es nft |
| firewalld | Un servicio de gestión por zonas que se maneja con la orden firewall-cmd y que se apoya en lo anterior |
| ufw | Una capa sencilla pensada para escribir reglas rápidas sin conocer la estructura interna |
El detalle de cómo se escriben esas reglas (las cinco cadenas, las cinco tablas, el recorrido del paquete, los objetivos, la traducción de direcciones y cómo se hace que sobrevivan a un reinicio), junto con el cortafuegos de Windows y la orden netsh, es materia del tema de administración del sistema operativo de este mismo bloque. Aquí lo que hace falta saber es qué pieza es cada cosa y dónde encaja.
netfilter es el cortafuegos, dentro del núcleo. iptables, nftables, firewalld y ufw son solo formas de hablar con él.
Para el examen
Qué protege: ese equipo, no la red: es de host
En Linux: iptables, nftables, ufw o firewalld
En Windows: netsh advfirewall