Hace pocos días se dio a conocer el lanzamiento de la nueva versión de firewalld 2.0, la cual es una versión importante que ademas de marcar el cambio de rama, el lanzamiento es debido a la corrección de los problemas de políticas, asi como tambien mejoras de soporte y más.
Para quienes desconocen de Firewalld, deben saber que está implementado en forma de contenedor sobre los filtros de paquetes nftables e iptables. Firewalld se ejecuta como un proceso en segundo plano que permite que las reglas de filtrado de paquetes se cambien dinámicamente a través de D-Bus sin tener que volver a cargar las reglas de filtrado de paquetes y sin desconectar las conexiones establecidas.
Para administrar el firewall, se utiliza la utilidad firewall-cmd que, al crear reglas, no se basa en las direcciones IP, las interfaces de red y los números de puerto, sino en los nombres de los servicios, por ejemplo, para abrir el acceso a SSH, para cerrar SSH, entre otros.
La interfaz gráfica firewall-config (GTK) y el subprograma firewall-applet (Qt) también se pueden usar para cambiar la configuración del firewall. La compatibilidad con la gestión a través de D-BUS API firewalld está disponible en proyectos como NetworkManager, libvirt, podman, docker y fail2ban.
Además, firewalld mantiene de forma separada una configuración en ejecución y otra permanente. Así pues, firewalld también ofrece una interfaz para que las aplicaciones puedan añadir reglas de una forma cómoda.
-Principales novedades de firewalld 2.0
Tal y como se mencionó al inicio, este lanzamiento se destaca por la introducción de cambios en las políticas que violan la compatibilidad con versiones anteriores y eliminan el problema con el procesamiento de reglas que prescriben el procesamiento de paquetes entrantes solo en relación con una zona en una situación donde los rangos de direcciones se superponen con otras zonas (si los rangos de direcciones en las zonas se superponen, entonces el paquete podría caer en varias zonas, pasando por alto las reglas especificadas).
Otros cambios que se destacan de esta nueva versión de firewalld 2.0 es el soporte añadido para nftables, el cual permite poder usar el mecanismo de selección de ruta de reenvío de paquetes de tabla de flujo, que puede mejorar significativamente el rendimiento del reenvío de tráfico.
Tambien podremos encontrar que se agregó la configuración de NftablesCounters para usar contadores de paquetes de nftables. Firewalld con NftablesFlowtable habilitado ha aumentado el rendimiento de iperf con reenvío de red en aproximadamente un 59 %.
Ademas de ello, tambien podremos encontrar que se agregó el soporte para establecer diferentes prioridades para las zonas, lo que le permite al usuario el poder controlar el orden en que los paquetes ingresan a las zonas.
Por otra parte, vale la pena mencionar que en Firewalld 2.0 se eliminó el servicio de cliente TFTP, el cual básicamente no funciono como se esperaba, ya que este fue incorporado con la finalidad de permitir poder acceder a los servidores. Cosa que «en realidad nunca funcionó» cuando se agregaba a una zona.
De los demás cambios que se destacan de esta nueva versión:
- Se agregaron servicios para admitir Zabbix Java Gateway y Zabbix Web Service.
- Se agregaron servicios compatibles con Minecraft, 0AD, anno 1602, anno 1800, Civilization IV, Civilization V, factorio, Need For Speed: Most Wanted, Stellaris, Stronghold Crusader, Super Tux kart, Terraria, Zero K y Settlers.
- Servicio agregado para OpenTelemetry (OTLP).
- Además, las políticas ignoraron algunas reglas de larga data sobre la zona.
- Las fuentes siempre se envían antes que las interfaces
- Las fuentes se ordenan por nombre de zona
Si estás interesado en poder conocer más al respecto sobre esta nueva versión, puedes consultar los detalles en el siguiente enlace.
-Obtener Firewalld
Finalmente, para quienes estén interesados en poder instalar este Firewall, deben saber que el proyecto ya está en uso en muchas distribuciones de Linux, incluidas RHEL 7+, Fedora 18+ y SUSE/openSUSE 15+. El código de firewalld está escrito en Python y se distribuye bajo la licencia GPLv2. Pueden obtener el código fuente para su compilación desde el siguiente enlace.