Newsgroup: it.comp.reti.ip-admin
Titolo: Proxy server sul gateway

Salve a tutti.
Devo configurare una macchina Linux (probabilmente Fedora Core 1 o 2) come
gateway su cui installare anche un server proxy (Squid) che verrà utilizzato
da tutti gli utenti.
La domanda che ho è la seguente: come dovrei configurare la macchina
suddetta per impedire ai client
che non hanno il proxy impostato sul browser di connettersi ad Internet?
Mi basta ridirigere con iptables le connessioni verso la 80/TCP sulla
8080/TCP sulla quale ascolta Squid?
Grazie a chi mi fornirà consigli o suggerimenti.

 che non hanno il proxy impostato sul browser di connettersi ad Internet?
puoi optare per fare tutto in modalità transparent (qui c'e' anche il
masquerading ), senza quindi dover settare proxy sul browser.
Con uno scriptino del tipo seguente.
# SNAT - masquerading per ip fissi
 EXT_INT="eth2"
IPTABLES="/sbin/iptables"
INTERNAL_NET="
192.168.4.0/24
"
INTERNAL="eth0"
EXT_IP="ip pubblico"
PROXY_PORT="8080"
# converte l'ind.sorgente
$IPTABLES -t nat -A POSTROUTING -o $EXT_INT -s $INTERNAL_NET -j
SNAT --to-source $EXT_IP
# transparent proxy
$IPTABLES -t nat -A PREROUTING -i $INTERNAL -p tcp -s $INTERNAL_NET -d
0/0 --dport 80 -j REDIRECT --to-port $PROXY_PORT
-- 
mi son sempre battuto contro gli ot non miei (scirio,IAC)

 masquerading ), senza quindi dover settare proxy sul browser.
Grazie per aver risposto.
In effetti è quello a cui pensavo io, redirigi il traffico http sulla 8080.
Quindi mi basta distribuire via dhcp la eth0 del proxy come nuovo gateway ed
è fatta...
P.S. Avevo letto che squid non può lavorare in modalità transparent e
contemporaneamente
fare l'autenticazione (mi serve fare anche l'autenticazione su Active
Directory), ma mi sembra che questo sia un caso diverso (con la macchina a
fare da gateway intendo). Confermi?

 8080/TCP sulla quale ascolta Squid?
Come giustamente ti ha suggerito n3tgan3sh, si puo' "costringere"
a passare per il proxy anche laddove esso non sia impostato, con
una apposita regoletta iptables per il trasparent proxy.
http://en.tldp.org/HOWTO/TransparentProxy.html
Preferibilmente, pero', a questo punto configurerei la macchina
non per essere semplicemente un gateway, ma anche per essere un
firewall: in tal modo potrai anche decidere a che protocolli vuoi far
accedere dalla lan quando esce verso internet. Ad esempio puoi
negare il peer to peer (e.g. scaricare musica con gli sharing networks),
o costringere ad usare come smtp l'mta relay opportunamente impostato
sulla linux box. Oltre ovviamente, a impedire eventuali intrusioni sulla
lan.
Netfilter/Iptables:
http://www.netfilter.org/
Iptables for fun: (salta la parte della compilazione, non serve)
http://www.commedia.it/ccontavalli/docs-it/iptables/iptables4dummies/iptables4dummies.html#toc8
Script di esempio: a iosa, basta cercare su google.
bye G.L.
-- 
« E' assolutamente evidente che l'arte del cinema
  si ispira alla vita, mentre la vita si ispira alla TV »
(Woody Allen)


 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 dovuti....idem per samba
Ho fatto qualche prova di basic authentication con msnt senza samba e senza
aggiungere la macchina al dominio e va. Lo squid è il 2.5.stable3 "di serie"
con Fedora Core 1. Ci sono molte possibilità per l'autenticazione. Ma dagli
howto leggo per certo che non funzionerà con la modalità transparent. Questo
è un problema...

> puoi optare per fare tutto in modalità transparent
<snip>
Si .. anche se personalmente eviterei una cosa
del genere, meglio bloccare l'output verso la 80
dalla LAN e permetterlo solo a "squid", non che
la config trasparente non vada bene, solo che...
secondo me è "meno sicura" nel senso che una
qualsiasi applicazione che tentasse la connex
internet anche senza "sapere nulla" del proxy non
avrebbe problemi ad uscire nel caso di transparent
proxy, mentre con il  proxy "a manovella" ... :-)
Ciao

 è un problema...
Vabbe'...: neghi con iptables la possibilita' di andare sul web
senza passare per il proxy.


 dalla LAN e permetterlo solo a "squid",
---8<---
Il tuo suggerimento è interessante, soprattutto perchè per me usare la
modalità transparent sarebbe un problema: sono "quasi obbligato" ad
implementare l'autenticazione su squid.
Credo che tu intenda implementare quello che dici con una particolare riga
di iptables...
Una cosa mi sfugge: cosa metteresti come "source" per specificare che solo a
squid è permesso l'output verso la 80/tcp? Forse l'interfaccia ethernet
esterna?
Ciao.

 verso la 80/tcp? Forse l'interfaccia ethernet esterna?
Hm .. no, sicuramente NON l'esterna; direi 127.0.0.1 ed
anche l'IP LAN di Squid, escludendo ovviamente tutti
gli indirizzi LAN, src port=any, dest=80 (questo solo per
HTTP) poi ci sarà da giocare anche con le ACL del
seppione ;-)
Ciao

 0/0 --dport 80 -j REDIRECT --to-port $PROXY_PORT
Alla luce di questa regola di redirezione in _prerouting_, mi spieghi
a cosa dovrebbe servire la prima, visto che si suppone che, utilizzando
un proxy trasparente, il forward sia negato?
-- 
Per non dimenticare:
http://snipurl.com/SdC_ed_il_vino



Ragazzi, l'output e' per i pacchetti generati localmente, ergo il
problema non si pone.
E' il _forward_ dall'$int_if all'$out_if che va negato.


 un proxy trasparente, il forward sia negato?
Per nattare il resto dei protocolli, suppongo. Poi non e' forward,
ma source nat in postrouting: la catena forward e' tutta da definire
(difatti non ve n'e' traccia), in quel piccolo script.


 E' il _forward_ dall'$int_if all'$out_if che va negato.
Si whip, hai ragione ... ieri sera ero proprio "cotto"
(varie "rogne" con un grosso cliente), mi sono reso
conto della fesseria dopo aver spento tutto :-)
Vabbè ...
Ciao

 wrote in message
news:cjhotn$h1h$1...@posted-at.bofh.it...


...naturalmente solo per il traffico diretto a 80/tcp o qualsiasi altro
protocollo per cui voglia usare il proxy, giusto?

 Poi non e' forward,
Un postrouting applicato sull'interfaccia esterna per indirizzi 
dellla rete interna serve proprio a valle di un forward.
Ciao.
-- 
Aderisci anche tu al Peppiniello Fan Club!
s/a/u

 Si whip, hai ragione ... ieri sera ero proprio "cotto"
Figurati: sapessi le cazzate che scrivo io...;)


 protocollo per cui voglia usare il proxy, giusto?
Chiaramente. :)



veramente io parlavo di qualcosa di più sofisticato: cioè l'utente non deve
inserire username e password perchè samba e squid vedono la sua
autenticazione che è avvenuta al dominio in precedenza.


 autenticazione che è avvenuta al dominio in precedenza.
Anche in questo caso usando squid 2.5 già compilato in Fedora Core 1 trovi
incluso
l'helper ntlm-auth che funziona alla grande come dici tu senza nessuno
sforzo, a parte quello di decommentare
4-5 righe in squid.conf, completarne una con il nome del domain controller
ed impostare le acl.
Ciao!

 dellla rete interna serve proprio a valle di un forward.
Ok, basta capirsi.   :-)


 Ok, basta capirsi.   :-)
Ma certo. ;)



grazie, questa è una cosa molto interessante non la sapevo, io tendo a
compilare tutto da zero....senza xwindows.....però se mi fanno risparmiare
tempo ;)
ciao
