iptables --uid-owner matchar Squids lokala sockets, inte LAN-användare
Använd betydelsen av --uid-owner som lokal socket-skapare när du bedömer Squids utgående trafik och håll vidarebefordrade LAN-paket åtskilda.
iptables owner-match kan identifiera paket som skapats av en lokal process socket. Till exempel refererar -m owner --uid-owner 1234 till en lokal socket som ägs av UID 1234; det identifierar inte ett HTTP-proxyanvändarnamn.
På en maskin som kör Squid, skilj mellan dessa vägar:
| Trafik | Relevant skillnad |
|---|---|
| En klient ansluter till Squid på den här maskinen | Inkommande anslutning till proxy-lyssnaren |
| Squid öppnar en destinationsanslutning | Lokalt skapad utgående socket |
| En LAN-klient dirigerar direkt genom den här maskinen | Vidarebefordrad trafik utan lokal skapar-socket |
Tillägget gäller i OUTPUT och POSTROUTING. Vidarebefordrade paket har ingen associerad lokal socket för denna matchning, så en FORWARD-regel kan inte ta reda på fjärrdatorns användare genom att fråga efter Squids UID.
En policy som tillåter Squids egna utgående sockets täcker därför bara en del av en nätverksdesign som enbart bygger på proxy. Vidarebefordran via gateway, åtkomst till lyssnaren, andra tillåtna tjänster och det faktiska proxy-tjänstekontot måste hanteras i sin rätta omfattning.
Använd den konfigurerade runtime-identiteten i stället för att anta att Squid körs som nobody. Flera processer kan dela en UID, så ett UID-baserat tillstånd är en kontogräns, inte bevis på att en viss körbar fil skapade varje tillåten anslutning.