¿Cómo puedo configurar un firewall específico de servicio en Linux?

¿Cómo puedo configurar un firewall específico de servicio en Linux?

¿Cómo podría configurar algún tipo de firewall que solo permita que programas específicos utilicen los puertos abiertos en el sistema (preferiblemente RHEL)?

Por ejemplo, si quiero yumpoder conectarme y actualizar normalmente, pero quiero bloquear las solicitudes web salientes, como la navegación, aún necesitaría que los puertos 80, 443, 53 y UDP-53 estén abiertos.

Sin embargo, necesitaría el firewall para poder distinguir entre yumun navegador web.

Respuesta1

iptablestiene la capacidad de verificar el usuario del programa.

Al utilizar las banderas --uid-ownero, --gid-ownertiene la capacidad de limitar la red solo a usuarios específicos (¿root?), y www-datalos paquetes de su servidor web (puede ejecutarse como ) se descartarán.

Por supuesto, esto limita por usuario/grupo y no por programa, pero la mayoría de los servicios actuales se ejecutan con sus propios usuarios y grupos.

Ejemplo:

iptables -I OUTPUT -m owner --uid-owner www-data -jDROP

Ejemplo que restringiría las redes salientes a cualquier persona excepto al root:

iptables -P OUTPUT DROP
iptables -I OUTPUT -m owner --uid-owner root -jALLOW

Otro enfoque sería configurar reglas con SELinux(generalmente incluidas con los productos RedHat). Personalmente creo que sería más difícil de gestionar.

información relacionada