iptables --uid-owner coincide cos sockets locais de Squid, non cos usuarios de LAN
Use o significado de creador de socket local de --uid-owner ao razoar sobre a saída de Squid e manteña separados os paquetes LAN reenviados.
A coincidencia owner de iptables pode identificar paquetes creados polo socket dun proceso local. Por exemplo, -m owner --uid-owner 1234 refírese a un socket local propiedade do UID 1234; non identifica un nome de usuario de proxy HTTP.
Nunha máquina que executa Squid, distinga estas rutas:
| Tráfico | Distinción relevante |
|---|---|
| Un cliente conéctase a Squid nesta máquina | Conexión entrante ao listener do proxy |
| Squid abre unha conexión de destino | Socket de saída creado localmente |
| Un cliente de LAN encamiña directamente por esta máquina | Tráfico reenviado sen socket creador local |
A extensión é válida en OUTPUT e POSTROUTING. Os paquetes reenviados non teñen un socket local asociado para esta coincidencia, polo que unha regra FORWARD non pode descubrir o usuario do equipo remoto preguntando polo UID de Squid.
Por tanto, unha política que permite os sockets de saída propios de Squid só cobre unha parte dun deseño de rede baseado só no proxy. O reenvío de pasarela, o acceso ao listener, outros servizos permitidos e a conta real do servizo de proxy deben tratarse no seu ámbito axeitado.
Use a identidade de execución configurada en lugar de supor que Squid se executa como nobody. Varios procesos poden compartir un UID, así que un permiso baseado en UID é unha fronteira de conta, non a proba de que un executable concreto crease todas as conexións permitidas.