La corrispondenza owner di iptables può identificare i pacchetti creati dal socket di un processo locale. Ad esempio, -m owner --uid-owner 1234 si riferisce a un socket locale di proprietà dell'UID 1234; non identifica un nome utente del proxy HTTP.

Su una macchina che esegue Squid, distingui questi percorsi:

TrafficoDistinzione rilevante
Un client si connette a Squid su questa macchinaConnessione in ingresso al listener del proxy
Squid apre una connessione verso una destinazioneSocket in uscita creato localmente
Un client LAN instrada direttamente attraverso questa macchinaTraffico inoltrato senza socket creatore locale

L'estensione è valida in OUTPUT e POSTROUTING. I pacchetti inoltrati non hanno un socket locale associato per questa corrispondenza, quindi una regola FORWARD non può scoprire l'utente del computer remoto chiedendo l'UID di Squid.

Una politica che consente i socket in uscita propri di Squid copre quindi solo una parte di un progetto di rete basato unicamente sul proxy. L'inoltro tramite gateway, l'accesso al listener, gli altri servizi consentiti e l'account effettivo del servizio proxy devono essere gestiti nel loro ambito appropriato.

Usa l'identità di runtime configurata invece di presumere che Squid giri come nobody. Più processi possono condividere un UID, quindi un'autorizzazione basata sull'UID è un confine di account, non la prova che uno specifico eseguibile abbia creato ogni connessione consentita.

Articoli correlati