[Tech] Controllare l'accesso alla rete dei singoli programmi

Marco Ermini marco.ermini@gmail.com
Mar 31 Maggio 2005 12:57:20 CEST


On 5/31/05, David Di Lorenzo <zaphod42@virgilio.it> wrote:
> Forse è una domanda stupida, ma esiste un sistema per filtrare i
> pacchetti generati dalla macchina in funzione del programma che li ha
> creati?
> 
> Per esempio vorrei implementare una regola del tipo:
> "si può uscire su internet solo con firefox, mentre solla rete locale è
> possibile navigare con firefox e opera"
> 
> Questo potrebbe servire anche per consentire l'uscita di un browser ma
> non quella di altri programmi che si adattano ad utilizzare la porta 80
> proprio per aggirare un eventuale firewall.
> 
> David

La domanda non è stupida, è forse posta in modo un po' criptico. A che
livello vuoi mettere il controllo? di singola macchina o di gateway?

Supponendo che sia a livello di gateway, non hai modo ovviamente di
sapere quale programma ha generato, su una macchina remota, un certo
traffico (non semplicemente, almeno).

Non puoi comunque nemmeno metterti a discriminare lo user-agent a
livello di "pacchetti" (e non vuoi: se io uso Internet Explorer o
Safari? mi blocchi? :-). Inoltre la dovresti pure "spalmare" questo
meccanismo su altre porte (che fai, non consenti il traffico web se
non sulla porta 80? un po' brutto).

Quello che puoi fare con Linux è di installare sul tuo default gateway
una apposita patch al kernel (non lo fa di default, almeno con il
kernel di Fedora 3 e RHEL 3, netfilter ancora non lo supportava perché
è una cosa abbastanza recente: non so con FC4 o RHEL 4) in modo che
venga identificato il traffico non per sorgente/destinazione/porta
ecc., ma in modo "applicativo" (ci sono diversi protocolli supportati
ed è possibile aggiungerne con dei plugin); in questo modo, il
traffico in ingresso che avrai identificato come di tipo HTTP potrai
redirigerlo tutto verso una apposita box/porta, dove avrai installato
Squid (la classica configurazione in reverse proxy); da Squid potrai
più agevolmente filtrare per i parametri che ti servono (anche per
user agent, se ti serve).

Io ho configurato una cosa del genere tra l'altro pure in load balancing.

Nota comunque che comunque, per definizione, non puoi filtrare il
traffico HTTPS, quindi i tuoi sforzi (se ho capito bene cosa vuoi
fare) rischiano di essere del tutto inutili.


Ciao.
-- 
Marco Ermini
http://www.markoer.org
Dubium sapientiae initium. (Descartes)
root@human # mount -t life -o ro /dev/dna /genetic/research
<< This message is for the designated recipient only and may contain
privileged or confidential information. If you have received it in
error, please notify the sender immediately and delete the original.
Any other use of the email by you is prohibited. >>



Maggiori informazioni sulla lista flug-tech