Lanzamiento del firewall 1.0

Se presenta una versión del firewalld 1.0 controlado dinámicamente, implementado en forma de contenedor sobre los filtros de paquetes nftables e iptables. Firewalld se ejecuta como un proceso en segundo plano que le permite cambiar dinámicamente las reglas de filtrado de paquetes a través de D-Bus sin tener que recargar las reglas de filtrado de paquetes ni interrumpir las conexiones establecidas. El proyecto ya se utiliza en muchas distribuciones de Linux, incluidas RHEL 7+, Fedora 18+ y SUSE/openSUSE 15+. El código firewalld está escrito en Python y tiene la licencia GPLv2.

Para administrar el firewall, se utiliza la utilidad firewall-cmd, que, al crear reglas, no se basa en direcciones IP, interfaces de red y números de puerto, sino en los nombres de los servicios (por ejemplo, para abrir el acceso a SSH, debe ejecute “firewall-cmd —add —service= ssh”, para cerrar SSH – “firewall-cmd –remove –service=ssh”). Para cambiar la configuración del firewall, también se pueden utilizar la interfaz gráfica firewall-config (GTK) y el subprograma firewall-applet (Qt). El soporte para la gestión de firewall a través de D-BUS API firewalld está disponible en proyectos como NetworkManager, libvirt, podman, docker y fail2ban.

Un cambio significativo en el número de versión está asociado con cambios que rompen la compatibilidad con versiones anteriores y cambian el comportamiento al trabajar con zonas. Todos los parámetros de filtrado definidos en la zona ahora se aplican solo al tráfico dirigido al host en el que se ejecuta firewalld, y el filtrado del tráfico de tránsito requiere la configuración de políticas. Los cambios más notables:

  • El backend que le permitía funcionar sobre iptables ha sido declarado obsoleto. El soporte para iptables se mantendrá en el futuro previsible, pero este backend no se desarrollará.
  • El modo de reenvío intrazona está habilitado y activado de forma predeterminada para todas las zonas nuevas, lo que permite el libre movimiento de paquetes entre interfaces de red o fuentes de tráfico dentro de una zona (pública, bloqueada, confiable, interna, etc.). Para devolver el comportamiento anterior y evitar que los paquetes se reenvíen dentro de una zona, puede utilizar el comando “firewall-cmd –permanent –zone public –remove-forward”.
  • Las reglas relacionadas con la traducción de direcciones (NAT) se trasladaron a la familia de protocolos “inet” (anteriormente agregadas a las familias “ip” e “ip6”, lo que generó la necesidad de duplicar reglas para IPv4 e IPv6). El cambio nos permitió deshacernos de los duplicados cuando usamos ipset; en lugar de tres copias de las entradas de ipset, ahora se usa una.
  • La acción "predeterminada" especificada en el parámetro "--set-target" ahora equivale a "rechazar", es decir Todos los paquetes que no se ajusten a las reglas definidas en la zona se bloquearán de forma predeterminada. Se hace una excepción sólo para los paquetes ICMP, que todavía se permiten. Para devolver el comportamiento anterior para la zona "confiable" de acceso público, puede utilizar las siguientes reglas: firewall-cmd —permanent —new-policy enableForward firewall-cmd —permanent —policy enableForward —set-target ACCEPT firewall-cmd —permanent — política enableForward —add-ingress -zone firewall-cmd público —permanente —política enableForward —add-egress-zone firewall-cmd confiable —recargar
  • Las políticas de prioridad positiva ahora se ejecutan inmediatamente antes de que se ejecute la regla "--set-target catch-all", es decir, en el momento antes de agregar la caída final, rechace o acepte reglas, incluso para zonas que usan “--set-target drop|reject|accept”.
  • El bloqueo ICMP ahora se aplica solo a los paquetes entrantes dirigidos al host actual (entrada) y no afecta a los paquetes redirigidos entre zonas (reenvío).
  • Se eliminó el servicio tftp-client, diseñado para rastrear conexiones para el protocolo TFTP, pero que se encontraba en un formato inutilizable.
  • La interfaz "directa" ha quedado obsoleta, lo que permite insertar directamente reglas de filtrado de paquetes ya preparadas. La necesidad de esta interfaz desapareció después de agregar la capacidad de filtrar paquetes redirigidos y salientes.
  • Se agregó el parámetro CleanupModulesOnExit, que se cambia a "no" de forma predeterminada. Usando este parámetro, puede controlar la descarga de módulos del kernel después de que firewalld se apague.
  • Se permite utilizar ipset al determinar el sistema de destino (destino).
  • Se agregaron definiciones para los servicios WireGuard, Kubernetes y netbios-ns.
  • Se implementaron reglas de autocompletado para zsh.
  • La compatibilidad con Python 2 ha sido descontinuada.
  • La lista de dependencias se ha acortado. Para que firewalld funcione, además del kernel de Linux, ahora se requieren las únicas bibliotecas de Python dbus, gobject y nftables, y los paquetes ebtables, ipset e iptables se clasifican como opcionales. El decorador y el deslizamiento de las bibliotecas de Python se han eliminado de las dependencias.

Fuente: opennet.ru

Añadir un comentario