lunes , 16 septiembre 2024

¿Iptables?, el firewall preferido en Linux

¿Qué es un Firewall?

Un firewall también es conocido como muro de fuego, este funciona entre las redes conectadas permitiendo o denegando las comunicaciones entre dichas redes. También es considerado un filtro que controla el trafico de varios protocolos como TCP/UDP/ICMP que pasan por el para permitir o denegar algún servicio, el firewall examina la petición y dependiendo de este lo puede bloquear o permitirle el acceso.

Un firewall puede ser un dispositivo de tipo Hardware o software que de instala entre la conexión a Internet y las redes conectadas en el lugar, como podemos ver en la Figura 1.1.

Figura 1.1: Esquema básico de un firewall para una red local.

DMZ.

Un firewall con configuración DMZ indica que va tener una zona Desmilitarizada o red perimetral, es una red local en la cual se encuentra dentro de una organización. Para poder ser una zona tipo DMZ deben ver servidores ofreciendo servicios de WWW, FTP, DNS, Samba, etc, esto permite ofrecer servicios de una red local hacia el exterior.

Dentro de esta zona se podrá tener acceso desde la red local e internet y firewall controlara los accesos a los servicios que se encuentren alojados dentro de la DMZ, como podemos ver en la Figura 1.2.

Figura 1.2: Esquema de un Firewall con DMZ.

Firewall GNU/Linux.

En GNU/Linux existe gran variedad de herramientas que nos permite controlar nuestro firewall desde un servidor que este conectado a internet y a la red local.

Algunos clasicos de Linux son:

  • Iptables: Esta herramienta es la que se esta ocupando actualmente y apareció a partir del kernel 2.4 y 2.6 en adelante. Con Iptables crea las reglas mas rápidas y sencillas que ipchains.
  • Shorewall: Es una herramienta muy flexible, rápida y sencilla que permite crear reglas iptables, en shorewall se configuran varios archivos para poder controlar el firewall de nuestra red.
  • Ufw: Esta es un herramienta que nos permite crear reglas iptables de una forma demasiado sencilla dentro de distribuciones debian, Ubuntu y derivados.

Si deseas consultar otros software Firewall en Linux da clic aqui

Conceptos Iptables.

Antes de poder administrar nuestro firewall tendremos que saber para que nos sirve cada de una de las tablas que usa iptables para sus reglas.

Tablas.
Cuando nosotros enviamos un paquete o una solicitud de servicio este pasa por 3tipos de tablas que debemos conocer.

NAT.
Esta tabla que debe ser usada cuando se desea hacer los paquetes sean enrutados a una máquina cliente dentro de una red local o DMZ, pero también podremos enmascarar un red local y tener salida hacia internet.

Dentro de esta tabla tenemos las siguientes opciones:

  • DNAT: Este parámetro se emplea cuando tenemos casos en donde se tiene un IP Publica y el servicio se encuentra dentro de la red local o DMZ y el firewall el encargado de redirigir esta petición a la máquina en donde se encuentre el servicio.
  • SNAT: Esta opción se ocupa cuando queremos esconder nuestra IP de red local o DMZ, cambiándola dentro del firewall con la IP Publica del servidor.
  • MASQUERADE: Hace lo mismo que SNAT, pero MASQUERADE automáticamente convierte nuestra IP de la red local o DMZ a IP publica y se recomienda tener esta configuración cuando en nuestra red asignamos IP de forma DHCP.

MANGLE.
Esta tabla se usa principalmente para modificar paquetes.
Dentro de esta tabla tenemos las siguientes opciones:

  • TOS: Es usado para definir o cambiar el tipo de servicio de un paquete que puede ser usado para configurar políticas en la red considerando a ser enrutados los paquetes, no lo uses para paquetes que vayan hacia internet.
  • TTL: Es usado para cambiar el campo tiempo de vida de un paquete y con ello conseguir un TTL especifico.
  • MARK: Se usa para marca los paquetes con valores especifico, con estas marcas podremos limitar el ancho de banda y generar colas.

FILTER.
Esta esta la tabla principal para el filtrado de paquetes que podemos comparar y filtar paquetes dentro del firewall.
Dentro de esta tabla tenemos las siguientes opciones:

  • INPUT: Paquetes de entrada hacia nuestro firewall.
  • FORWARD: Paquetes enrutados por medio del firewall a otra máquina.
  • OUTPUT: Paquetes de salida de nuestro firewall.

ESTADOS
Los estados en realidad son los seguimientos de conexiones dentro del firewall.
Para esto tenemos las siguiente opciones:

  • ESTABLISHED: El paquete seleccionado se asocia con otros paquetes en una conexión establecida.
  • INVALID: El paquete seleccionado no puede ser asociado hacia ninguna conexion conocida.
  • NEW: El paquete seleccionado esta creando una nueva conexión o bien forma parte de una conexión de dos caminos.
  • RELATED: El paquete seleccionado esta iniciando una nueva conexión en algún punto de la conexión existente.
    Podemos tomar decisiones a partir del estado del paquete por medio del modulo state con el parametro “-m state”, se refiere a la posibilidad de mantener información sobre el estado de la conexión en memoria.

Manual sobre como configurar un firewall con UFW
Manual para configurar Shorewall

Si deseas aprender sobre la configuración de herramientas de diagnostico de redes Linux y configurar IPTABLES, consulta nuestro Curso de Redes Linux

Acerca de Isaac Lemus

15 años de experiencia como consultor en implementación de soluciones en open source (software libre). En la actualidad estoy a cargo de la gestión de proyectos para la capacitación y servicios de implementación open source de la empresa Conocimiento Libre.

Compruebe también

Warp, la terminal inteligente que te ayuda a trabajar mejor con Linux

Linux es un sistema operativo de código abierto que ofrece una gran flexibilidad, seguridad y …