El firewall es un software especializado que se interpone entre las aplicaciones y el software de red para hacer un filtrado de paquetes:
- En el tráfico entrante, la tarjeta de red recibe el paquete y lo identifica, pero antes de entregarlo a la aplicación correspondiente, pasa por el firewall para que decida si prospera o no. En el ejemplo del servidor web, la máquina recibe un paquete destinado al puerto 80, pero antes de entregarlo al proceso que tiene abierto ese puerto (un apache.exe), el firewall decide.
- En el tráfico saliente, las aplicaciones elaboran sus paquetes de datos, pero antes de entregarlo al software de red para que lo envíe, pasa por el firewall. Por ejemplo, si sospechamos que una máquina hace spam, podemos bloquear todas las conexiones salientes al puerto 25.
En las máquinas servidor, generalmente el firewall actúa sobre tráfico entrante: los servicios que ejecutan en esa máquina abren determinados puertos y queremos controlar quién se conecta a ellos. En las máquinas cliente es más sencillo: por defecto, todas las conexiones entrantes están prohibidas y todas las salientes permitidas. Esto no quiere decir que no puedan entrar paquetes, porque no habría conversaciones; pero la conversación la tiene que iniciar el equipo cliente.
La inteligencia del firewall se expresa mediante reglas de configuración. El administrador de la máquina puede individualmente activarlas, desactivarlas, modificarlas o añadir nuevas. Este proceso puede ser automático: algunos programas que instalan un servidor en la máquina son capaces de configurar algunos programas de firewall, sin necesitar la intervención del administrador.
as reglas del firewall son mucho más sencillas que las reglas de un IPS y generalmente se aplican solo a las cabeceras TCP/IP de las capas 3 (red) y 4 (transporte): el firewall básicamente mira direcciones IP y puertos, aunque también puede reconocer conversa ciones entre dos equipos y controlarlas.
Dónde situarlo
Todas las máquinas de la empresa conectadas a la red necesitan activar un firewall. Incluso aunque no ejecuten ningún servidor: puede que el software de red del sistema operativo tenga una vulnerabilidad. Igual que el malware hay que bloquearlo con el antivirus porque es software no solicitado, el firewall nos ayuda a bloquear paquetes de red no solicitado.
Esta medida sería suficiente; pero, para evitar que se inunde la red con paquetes que no llegarán a su destino, o para ayudar a máquinas que no tienen firewall.
Los routers domésticos proporcionados por los ISP hacen funciones de firewall, porque por defecto se comportan como equipos de usuario y no permiten conexiones entrantes; pero una empresa suele necesitar más configuraciones, por lo que instalará su propio firewall de red.
En empresas pequeñas este firewall de red seguramente ejecutará en una máquina que también hace las funciones de router; incluso puede que también aloje determinados servicios de la empresa en Internet. En las empresas grandes hay máquinas distintas para cada servicio, todas situadas en una subred especial llamada DMZ. El firewall de esta zona es menos exigente que el que protege nuestra LAN, porque tenemos que permitir conexiones a esos servicios; pero, como está expuesto a más ataques, se suele acompañar de un IDS/IPS.
Firewall en Linux. Iptables
Cuando llega un paquete a la tarjeta de red, el sistema operativo decide qué hacer con él. El resultado de esa decisión puede ser:
- Descartarlo. Si el destinatario del paquete no es nuestra máquina o, aunque lo sea, ningún proceso actual lo espera, el paquete termina aquí.
- Aceptarlo, porque es para nosotros y hay un proceso que sabe qué hacer con ese paquete. Sería el ejemplo anterior, pero ahora sí tenemos un servidor web funcionando.
- Aceptarlo, aunque no sea para nosotros, porque somos un router y vamos a enviarlo por otra interfaz. En algunos casos llegaremos a modificar las cabeceras del paquete, como veremos más adelante.
- Aceptarlo, aunque no es para nosotros y tampoco somos un router: pero estamos escuchando todos los paquetes porque somos un sniffer de red.
En el caso de Linux, la utilidad iptables permite introducir reglas en cada una de estas fases:
- Cuando llega el paquete para un proceso nuestro pero todavía no se lo hemos entregado, en iptables hablamos de input.
- Cuando somos un router y estamos a punto de traspasar el paquete de una interfaz a otra, en iptables hablamos de forward.
- Cuando un paquete está listo para salir por una interfaz, en iptables hablamos de output.
Hay un par de etapas más:
- Prerouting. Se ejecuta antes de input. Sirve para obviar el enrutamiento porque sabemos exactamente qué tratamiento dar a esos paquetes. Veremos un ejemplo en el caso práctico de proxy de esta misma unidad.
- Postrouting. Se utiliza para aplicar alguna modificación a los paquetes que están a punto de abandonar la máquina. Veremos un ejemplo, el NAT, en el mismo caso práctico de proxy.
Las reglas de iptables tienen una lista de condiciones y una acción, de manera que, cuando un paquete cumple todas las condiciones de una regla, se ejecuta la acción. En las condiciones podemos utilizar la interfaz por la que entró, la interfaz por la que va a salir, la dirección IP o la subred del paquete, el tipo de protocolo, el puerto origen o destino, etc. Las acciones pueden ser simplemente aceptar o rechazar el paquete, o también modificarlo.
Pero no todas las acciones están disponibles en todas las situaciones. Por esto las reglas se agrupan en tres tablas principales:
- filter. Es la tabla principal. Su misión es aceptar o rechazar paquetes. Es el firewall propiamente dicho.
- nat. Las reglas de esta tabla permiten cambiar la dirección de origen o destino de los paquetes.
- mangle. En esta tabla podemos alterar varios campos de la cabecera IP, como el ToS. Se suele usar para aplicar QoS, marcando los paquetes de determinados servicios para luego priorizarlos.
Firewall en Windows 7
Los sistemas operativos Windows siempre han tenido mala fama en cuanto a seguridad ante malware; sin embargo, la versión XP introdujo un firewall muy robusto y sencillo. Las versiones posteriores han mantenido la robustez, aunque han sacrificado la sencillez para elaborar reglas complejas que permitan cubrir todas las necesidades del usuario.
Comparado con iptables, el firewall de Windows 7 es más sencillo y más agradable de usar. A diferencia de Linux, la configuración por defecto para las conexiones entrantes es rechazarlas, no aceptarlas.
No hay comentarios:
Publicar un comentario
Comenta lo que sea!