iptables --uid-owner odpovídá lokálním socketům Squidu, ne uživatelům LAN
Při uvažování o odchozím provozu Squidu používejte význam --uid-owner jako tvůrce lokálního socketu a přeposílané pakety LAN držte odděleně.
Shoda owner v iptables umí rozpoznat pakety vytvořené socketem lokálního procesu. Například -m owner --uid-owner 1234 označuje lokální socket vlastněný UID 1234; neidentifikuje uživatelské jméno HTTP proxy.
Na stroji se Squidem rozlišujte tyto cesty:
| Provoz | Příslušný rozdíl |
|---|---|
| Klient se připojuje k Squidu na tomto stroji | Příchozí spojení k naslouchajícímu proxy |
| Squid otevírá spojení k cíli | Lokálně vytvořený odchozí socket |
| Klient LAN směruje přímo přes tento stroj | Přeposílaný provoz bez lokálního socketu tvůrce |
Rozšíření platí v OUTPUT a POSTROUTING. Přeposílané pakety nemají pro tuto shodu přidružený lokální socket, takže pravidlo FORWARD nemůže zjistit uživatele vzdáleného počítače dotazem na UID Squidu.
Zásada povolující vlastní odchozí sockety Squidu tedy řeší jen jednu část návrhu sítě postavené výhradně na proxy. Přeposílání brány, přístup k naslouchajícímu portu, další povolené služby a skutečný účet proxy služby se musí řešit ve svém rozsahu.
Používejte nakonfigurovanou identitu za běhu, místo abyste předpokládali, že Squid běží jako nobody. Několik procesů může sdílet jedno UID, takže povolení podle UID je hranice účtu, nikoli důkaz, že konkrétní spustitelný soubor vytvořil každé povolené spojení.