iptables --uid-owner corresponde aos sockets locais do Squid, não aos usuários da LAN
Use o significado de --uid-owner como criador de socket local ao raciocinar sobre a saída do Squid e mantenha separados os pacotes LAN encaminhados.
A correspondência owner do iptables pode identificar pacotes criados pelo socket de um processo local. Por exemplo, -m owner --uid-owner 1234 refere-se a um socket local pertencente ao UID 1234; não identifica um nome de usuário de proxy HTTP.
Em uma máquina que executa Squid, distinga estes caminhos:
| Tráfego | Distinção relevante |
|---|---|
| Um cliente se conecta ao Squid nesta máquina | Conexão de entrada para o listener do proxy |
| O Squid abre uma conexão de destino | Socket de saída criado localmente |
| Um cliente da LAN roteia diretamente por esta máquina | Tráfego encaminhado sem socket criador local |
A extensão é válida em OUTPUT e POSTROUTING. Os pacotes encaminhados não têm um socket local associado para esta correspondência, então uma regra FORWARD não consegue descobrir o usuário do computador remoto perguntando pelo UID do Squid.
Portanto, uma política que permite os sockets de saída do próprio Squid cobre apenas uma parte de um projeto de rede baseado só no proxy. O encaminhamento pelo gateway, o acesso ao listener, outros serviços permitidos e a conta real do serviço de proxy devem ser tratados no escopo adequado.
Use a identidade de execução configurada em vez de supor que o Squid roda como nobody. Vários processos podem compartilhar um UID, então uma permissão baseada em UID é uma fronteira de conta, não a prova de que um executável específico criou cada conexão permitida.