La coincidencia owner de iptables puede identificar paquetes creados por el socket de un proceso local. Por ejemplo, -m owner --uid-owner 1234 se refiere a un socket local propiedad del UID 1234; no identifica un nombre de usuario de proxy HTTP.

En una máquina que ejecuta Squid, distinga estas rutas:

TráficoDistinción relevante
Un cliente se conecta a Squid en esta máquinaConexión entrante al listener del proxy
Squid abre una conexión de destinoSocket de salida creado localmente
Un cliente de LAN enruta directamente por esta máquinaTráfico reenviado sin socket creador local

La extensión es válida en OUTPUT y POSTROUTING. Los paquetes reenviados no tienen un socket local asociado para esta coincidencia, así que una regla FORWARD no puede descubrir el usuario del equipo remoto preguntando por el UID de Squid.

Por tanto, una política que permite los sockets de salida propios de Squid solo cubre una parte de un diseño de red basado solo en el proxy. El reenvío de puerta de enlace, el acceso al listener, otros servicios permitidos y la cuenta real del servicio de proxy deben tratarse en su ámbito correspondiente.

Use la identidad de ejecución configurada en lugar de suponer que Squid se ejecuta como nobody. Varios procesos pueden compartir un UID, así que un permiso basado en UID es un límite de cuenta, no la prueba de que un ejecutable concreto haya creado todas las conexiones permitidas.

Artículos relacionados