iptables --uid-owner coincide con los sockets locales de Squid, no con los usuarios de LAN
Use el significado de --uid-owner como creador de socket local al razonar sobre la salida de Squid y mantenga separados los paquetes LAN reenviados.
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áfico | Distinción relevante |
|---|---|
| Un cliente se conecta a Squid en esta máquina | Conexión entrante al listener del proxy |
| Squid abre una conexión de destino | Socket de salida creado localmente |
| Un cliente de LAN enruta directamente por esta máquina | Trá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.