Redes y Sistemas

Filtrado de paquetes en Linux: Iptables, nftables y bpfilter

Hablamos de las diferentes herramientas que tenemos a nuestra disposición para el filtrado de paquetes en sistemas Linux, como son iptables, nftables y bpfilter

Publicado el 26 de Noviembre de 2018
Compartir

Hace unos años la única opción con la que contábamos era con iptables, un software muy conocido y que nos proporciona unas funcionalidades muy completas. Sin embargo, en los últimos años se están produciendo cambios en este campo, y hoy en día existen diferentes opciones para el filtrado de paquetes.

¿Qué es iptables?

Vamos a comenzar destacando algunos aspectos importantes de iptables:

Iptables es un software que sustituyó a su vez a dos aplicaciones anteriores, ipfwadm e ipchains, que se utilizaban y eran compatibles con versiones anteriores del kernel de Linux.

Comenzó a utilizarse a partir de 2001, en concreto desde que surgió la rama 2.4 del kernel de Linux.

El proyecto iptables es desarrollado por el proyecto netfilter, que es un proyecto de comunidad y no tiene en principio el respaldo de una gran empresa detrás. Es un proyecto creado por personas de manera altruista y voluntaria, que hacen un trabajo muy profesional y muy bueno. Además están integrados y trabajan de forma conjunta y continua con las personas que desarrollan el kernel de Linux, particularmente con los desarrolladores de la parte de redes.

Actualmente es un software muy utilizado, está desplegado prácticamente en cualquier maquina Linux, y se utiliza ampliamente en sistemas de cortafuegos en todo el mundo.

Además iptables normalmente no trabaja solo, y dependiendo de las características que necesitemos en el uso del filtrado de paquetes, se complementa con otros programas. En el caso de la doble pila con IPv6, se complementa con ip6tables, que se encarga de hacer la función equivalente que hace iptables con IPv4 en IPv6. También trabaja con dos aplicaciones más pequeñas, como son ebtables, que se encargar de algunas características del nivel de enlace, y arptables que se encarga de aspectos relacionados con ARP.

Hace unos años, las personas del proyecto netfilter, decidieron que no iban a incorporar nuevas funcionalidades a iptables, aunque iban a continuar con su desarrollo en cuanto a la modificación que fuera necesaria por cualquier parche de seguridad o cualquier modificación en cuanto al funcionamiento, pero no en lo relacionado a incorporar nuevas funcionalidades.

Por ese motivo, iptables es un proyecto que ya no va a ir a más, no va a incorporar grandes novedades. A pesar de esto, siendo un proyecto importante debido a su gran implantación, y por lo tanto seguirá utilizándose durante bastantes años.

¿Qué es nftables?

Hace unos años, las personas encargadas de netfilter decidieron comenzar un desarrollo nuevo denominado nftables, del que vamos a destacar algunos puntos:

Se comenzó a desarrollar por una serie de limitaciones de iptables que se encontraban en algunos usos específicos, normalmente en sitios donde el filtrado de paquetes tiene una alta demanda de características, por ejemplo en sitios con cortafuegos en los que hay miles de reglas muy complejas y con un tráfico muy intenso. A partir de esas limitaciones se decidió comenzar el desarrollo de una aplicación nueva, en este caso nftables.

Cuando se inicia un nuevo desarrollo no solo se intenta mejorar un aspecto, sino que se intentan mejorar varios con el conocimiento y la experiencia adquirida. Por ese motivo ya no se utilizan varios programas para hacer diferentes cosas, como ocurría con iptables, ip6tables, ebtables y arptables, sino que se integra todo en nftables.

En este proyecto cambia la parte que está en el espacio kernel y en el espacio de usuario, aunque para explicar esto habría que entrar en detalles un poco más complejos.

Fundamentalmente está orientado a conseguir un mayor rendimiento cuando se somete al filtrado de paquetes a unas situaciones complejas, para competir en esos sitios donde iptables tenía ciertas carencias.

Nftables empezó a desarrollarse en el año 2014 y se integró en el kernel de Linux en la rama 3.13, es decir, es un software que tiene cierta madurez, a día de hoy es totalmente usable y es una realidad cada vez más habitual en las diferentes distribuciones de Linux, en las que en su mayor parte cuentan tanto con iptables como con nftables.

Otra de las cosas que nftables incorpora es una capa de compatibilidad con iptables, que nos permite una transición suave, es decir, aunque creamos que en un determinado momento sigue utilizando iptables, porque sigue utilizando la misma sintaxis y las reglas aparecen como si fueran de iptables, es realmente nftables el que está funcionado por debajo. Esto nos permite comprobar que todas las reglas y todo el sistema funciona correctamente de iptables funciona con nftables, entonces la migración de un sistema a otro sea más simple.

¿Qué es bpfilter?

Vamos a hablaros ahora de un nuevo proyecto llamado bpfilter, del que destacamos algunos aspectos a continuación:

  • Es un proyecto que se ha incorporado en la última versión publicada y estable del kernel de Linux, la 4.18.
  • Permite la utilización de bpf (Berkeley Packet Filter) en sistemas Linux. Este tipo de filtrado es el que se utiliza en la aplicación tcpdump o en otros sistemas que no son Linux.
  • Bpfilter está pensado para alto rendimiento.
  • Es un software que aún está poco maduro, aunque últimamente se está hablando mucho del mismo.

Comparativa

Vamos a hacer una especie de comparativa de la situación hoy en día de estas tres opciones vistas anteriormente. Iptables está muy establecido y, debido al tipo de software que es, existe cierta reticencia al cambio por parte de sus usuarios, porque la funcionalidad que requieren la cumple completamente iptables y no tienen necesidad de cambiar a nftables, ya que no aprecian ninguna falta de rendimiento.

Sin embargo en grandes empresa o para usos más intensivos de determinadas características, es dónde nftables se está implantando y se está comenzando a utilizar en lugar de utilizar iptables.

También es importante destacar este que grandes distribuciones de Linux, como Debian, que desde el principio optó claramente por nftables, y Red Hat, que recientemente ha modificado FirewallD, una aplicación propia que antes se encargaba de manejar iptables, y que se ha cambiado al sistema de nftables. Que estas dos grandes distribuciones hayan optado por el cambio a nftables es un gran respaldo a ese proyecto, además seguramente arrastre a otras muchas distribuciones a hacer lo mismo.

Sobre bpfilter comentar que es una opción que a día de hoy, con la situación que hay, no es usable para el público en general, y solo es una opción para algunas compañías que desarrollen kernels a medida y tengan equipos específicos para conseguir algunas de las prestaciones que tiene bpfilter. Por la falta de madurez del proyecto, aun no es una opción, aunque tal vez lo sea en el futuro.

Que existan varios proyectos que ofrezcan lo mismo es bueno y es natural en el mundo del software libre, sin embargo las formas que están empleando las personas que desarrollan bpfilter no son las adecuadas. Esto es así porque tienen el respaldo de grandes empresas detrás, como Facebook o Google, y están “ensuciando” un poco el trabajo de los desarrolladores del proyecto netfilter innecesariamente.

Veremos en unos años cómo evolucionan estos proyectos, pero todo parece indicar que nftables será el que se termine de establecer y que bpfilter quede para determinados usos puntuales.

Si quieres aprender en profundidad sobre Iptables, puedes hacer el curso de nuestro profesor experto Alberto Molina de esta herramienta, en el que te enseña paso a paso cómo crear un cortafuegos con Iptables.

curso-iptables

Recuerda que puedes comenzar este curso con tu suscripción de OpenWebinars. Si todavía no estás suscrito, aprovecha para hacerlo ahora.


Compartir este post

También te puede interesar...

Tecnología

Introducción a Iptables

26 Septiembre 2013 Esaú Abril Nuñez
Redes TCP/IP

Curso de fundamentos de Redes: TCP/IP

4 horas y 48 minutos · Curso

Consigue comprender las características principales de la pila de protocolos de Internet TCP/IP para ser capaz de configurar y utilizar configuraciones de red básicas.

  • Redes
Curso de iptables

Curso de Iptables

4 horas y 50 minutos · Curso

Conoce qué es un cortafuegos y cómo se implementa de forma práctica con iptables

  • Redes
Artículos
Ver todos