¿Los firewalls siempre se ejecutan en el espacio de usuario?

1

Hay muchas soluciones de Firewall para el mundo en diferentes sistemas operativos: iptables, pf, ipfw.

Mi pregunta es: ¿Los firewalls se ejecutan en el espacio del kernel o todos ellos se ejecutan en el espacio del usuario? (en general, no solo los mencionados)

    
pregunta evachristine 27.05.2014 - 13:11
fuente

5 respuestas

2

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.

    
respondido por el tylerl 27.05.2014 - 22:15
fuente
2

Depende, la mayoría del software de firewall usa las interfaces de nivel de kernel disponibles para rastrear las conexiones, pero la administración y los conjuntos de reglas se definen dentro del espacio de usuario.

    
respondido por el Lucas Kauffman 27.05.2014 - 13:18
fuente
1

La mayoría de los cortafuegos se ejecutan en el espacio del kernel. Sé que iptables y pf se ejecutan en el espacio del kernel, y puedes conectar aplicaciones de espacio de usuario para hacer magia adicional en el tráfico inspeccionado.

Por ejemplo, puede configurar iptables para enviar paquetes a un proceso de espacio de usuario como, por ejemplo, los ID de suricata usando NFQUEUE.

Otros firewalls (Check Point) filtran los paquetes antes de que lleguen a la pila de red del sistema operativo. Esto es para aumentar el rendimiento de un firewall, y iptables no es realmente interesante para el software Check Point, ya que tienen su propio firewall.

    
respondido por el Dog eat cat world 27.05.2014 - 13:22
fuente
0

Los firewalls pueden ejecutarse en ambos espacios de usuario (Ring 3 OR Ring 0), sin embargo, se prefiere el uso de Ring 0, ya que los firewalls pueden observar todas las conexiones de red o las conexiones entrantes antes de que un malware lo inicie o pase por alto el firewall utilizando funciones de red de nivel inferior (ejemplo LSP). )

Los cortafuegos utilizan rastreadores de red para detectar heurísticamente malware, que puede ejecutarse en Usermode, pero otros cortafuegos utilizan desvíos / desvíos para interceptar toda la actividad de la red y analizarlos, y esto normalmente se ejecuta en el kernel, ya que los malwares no pueden pasar por alto sus desvíos ni desconectar eso.

Para concluir, pueden ejecutarse en cualquier anillo o incluso en ambos.

    
respondido por el LogicProgrammer 27.05.2014 - 14:56
fuente
0

Depende de las capacidades de un cortafuegos, especialmente la profundidad de la inspección:

  • los filtros de paquetes como iptables se ejecutan en el espacio del kernel, pero en su mayoría se preocupan por el origen y el destino y no inspeccionan el contenido (sí, pueden hacer esto un poco, pero esto generalmente es fácil de evitar)
  • Los IDS como snort, bro o suricata se ejecutan en el espacio de usuario. Aunque no son estrictamente cortafuegos, se pueden utilizar para inspeccionar el tráfico y provocar el bloqueo de las conexiones, etc.
  • Las puertas de enlace de nivel de aplicación (por ejemplo, proxies) se ejecutan en el espacio de usuario. No solo pueden inspeccionar los datos, sino también cambiarlos, por ejemplo. para filtrar mal tráfico o normalizar construcciones poco comunes y por lo tanto potencialmente dañinas. Un escáner de virus, que forma parte de la mayoría de los firewalls empresariales, también se ejecuta en el espacio del usuario.

Solo un ejemplo: Sophos UTM usa iptables como filtro de paquetes (kernel), pero también usa un proxy HTTP (espacio de usuario) y un IDS (snort, espacio de usuario también) para registrar o filtrar problemas potenciales.

En resumen, en el espacio del kernel, normalmente solo se filtra por origen y destino, el más complejo se realiza en el espacio del usuario pero puede "hablar" con el espacio del kernel para bloquear conexiones específicas.

    
respondido por el Steffen Ullrich 27.05.2014 - 21:17
fuente

Lea otras preguntas en las etiquetas