De owner-match van iptables kan pakketten identificeren die zijn gemaakt door de socket van een lokaal proces. Bijvoorbeeld verwijst -m owner --uid-owner 1234 naar een lokale socket die eigendom is van UID 1234; het identificeert geen HTTP-proxygebruikersnaam.

Op een machine waarop Squid draait, onderscheid deze paden:

VerkeerRelevant onderscheid
Een client maakt verbinding met Squid op deze machineInkomende verbinding naar de proxy-listener
Squid opent een bestemmingsverbindingLokaal gemaakte uitgaande socket
Een LAN-client routeert rechtstreeks via deze machineDoorgestuurd verkeer zonder lokale maker-socket

De extensie is geldig in OUTPUT en POSTROUTING. Doorgestuurde pakketten hebben geen bijbehorende lokale socket voor deze match, dus een FORWARD-regel kan de gebruiker van de externe computer niet achterhalen door naar Squids UID te vragen.

Een beleid dat Squids eigen uitgaande sockets toestaat, dekt daarom slechts één deel van een netwerkontwerp dat uitsluitend op een proxy leunt. Doorsturen via de gateway, toegang tot de listener, andere toegestane diensten en het werkelijke proxy-serviceaccount moeten in hun eigen juiste bereik worden behandeld.

Gebruik de geconfigureerde runtime-identiteit in plaats van aan te nemen dat Squid als nobody draait. Meerdere processen kunnen één UID delen, dus een op UID gebaseerde toestemming is een accountgrens, geen bewijs dat één bepaald uitvoerbaar bestand elke toegestane verbinding heeft gemaakt.

Gerelateerde artikelen