Conceptos de Seguridad Informática II

Por Liso Gallo

Javier Diez

Llegó finalmente el segundo capítulo de conceptos de Seguridad
Informática: FIREWALLS

Lo que implementé en Minotauro la semana pasada fue un script basado en
"iptables", la herramienta de firewall por excelencia en sistemas Linux.

Muy resumidamente podemos decir que un firewall es un
dispositivo/programa que filtra conexiones entre dos o más redes, siendo
el siguiente uno de los casos reales más comunes:

INTERNET <----> FIREWALL <----> RED INTERNA

Un firewall tiene sentido siempre y cuando todas las conexiones pasen a
través de él. Es decir, para que yo pueda controlar el
tráfico entrante y saliente a una red, las mismas tienen que converger
en este único punto de paso, lo más parecido a lo que es (o debería ser,
jeje) un puesto de control fronterizo.

Hay otros dispositivos de seguridad como IDS, WAF, Honeypots, etc (no aflojan con los acrónimos los gringos) que tienen otras características, y que podrían tranquilamente convivir con un firewall pero no por ello ubicarse necesariamente en el perímetro de una red. Pero esa es otra historia, diría Conan... (chiste cinéfilo =P).

Los paquetes que llegan al firewall (paquetes HTTP, SMTP, SSH, etc.) son inspeccionados, y pueden tener "permiso de paso" en función de ciertos criterios que nosotros definamos, como ser tipo de servicio, protocolo, puerto, origen y/o destino. Para ello todos los paquetes pasan a través de una tabla de filtros que contiene ciertas cadenas predefinidas:

- INPUT: paquetes destinados al mismo firewall o sistema (por ejemplo, todo lo que llega a Minotauro).
- OUTPUT: paquetes que salen del mismo sistema (las conexiones salientes desde Minotauro).
- FORWARD: paquetes que pasen a través del sistema para ser enrutados a otro destino.

Esas son las más importantes pero no las únicas pero como no me quiero extender demasiado para no marear, las menciono únicamente: las tablas de NAT (traducción de direcciones) y MANGLE. "Mangle" en inglés significa exprimir, destrozar... así que imaginen las cosas preciosas que se pueden hacer con esto =)

Y para ir terminando, las acciones más comunes que puede tomar iptables sobre un paquete son:
 

- ACCEPT: lo deja pasar.
- REJECT: se lo saca de encima pero manda un mensaje de error al emisor.
- DROP: lo descarta silenciosamente.

Iptables es una herramienta increíble, porque permite no solamente filtrar paquetes, sino también realizar NAT, mantener registros de log, QoS (para priorizar cierto tipo de tráfico), balanceo de carga, etc. En fin, un arsenal de cosas limitadas únicamente por la imaginación del sysadmin, y no exagero. En otros tiempos he visto cosas armadas en iptables cuasiartesanales, cuando no había nada apt-geteable al alcance de la mano.