Depende de su definición de firewall, y su definición de ejecutar .
El paquete real intercepción se realiza en el espacio del kernel, antes de que los programas de usuario vean los paquetes. La pila de red está en el kernel, por lo que, naturalmente, el filtrado en esa pila de red también tiene que estar en el kernel. Podría construir una pila de red de espacio de usuario, pero es mucho trabajo sin un beneficio real, y ya nadie lo hace.
Entonces, según esa definición, todos los firewalls modernos se ejecutan en el espacio del kernel.
Excepto que hay programas de espacio de usuario para administrar las reglas del firewall. La palabra iptables se refiere a veces al componente "netfilter" del kernel, y también a un programa de espacio de usuario llamado iptables
para administrar las reglas de netfilter. Hay historias similares para otros sistemas operativos.
Pero se vuelve aún más confuso porque la mayoría de los sistemas operativos modernos admiten la capacidad de enviar paquetes a una herramienta de espacio de uso para su inspección, modificación, etc. Desde las tareas del firewall a los programas de espacio de usuario.
Y aún menos claro cuando se trata de lo que califica como "firewall". Desde un punto de vista purista, un firewall se ejecuta en la capa 3 † que puede hacer un seguimiento de estado básico para TCP e incluso puede buscar asociaciones de puertos FTP, pero no está analizando las solicitudes HTTP. Sin embargo, eso no quiere decir que una casilla que hayas designado como "el firewall" no pueda hacerlo. No es infrecuente asociar un dispositivo "firewall" con un proxy HTTP transparente y causar todo tipo de dolores de cabeza a sus usuarios en nombre de la seguridad. Esto, por supuesto, es definitivamente no en el kernel. Eso no quiere decir que no pueda ser . Pero nadie lo hace.
† : Además de iptables , también hay ebtables , que hace lo mismo pero para marcos ethernet.