[Tech] Stranezza su IPTables

Gianni Bianchini giannibi@firenze.linux.it
Mer 4 Lug 2001 13:21:08 CEST


On Wed, Jul 04, 2001 at 12:48:15PM -0400, St0rM wrote:

> No, perche' quando A gli manda il pacchetto prima di farlo uscire GW lo 
> MASQUERA cambiandone l'indirizzo do partenza con il suo. Quindi WWW 
> crede effettivamente di parlare con GW intutto e per tutto. =((
> 
> Esempio
> 
> 1) A spedisce un pacchetto SYN a WWW passandolo a GW che e' il suo gateway.

Alt! Allora non ho capito che cosa intendi. Quello che credevo tu
volessi evitare e' che WWW, macchina ESTERNA e che si trova sulla
stessa rete di GW (altrimenti i router con ogni probabilita' non fanno
passare), potesse iniziare una
connessione TCP con A, macchina INTERNA, attraverso GW che masquera,
sfruttando il fatto di poter utilizzare GW come gateway, il quale GW
e' poi istruito a forwardare il traffico verso la rete interna.

> 2) Il pacchetto arriva a GW che ne cambia l'indirizzo di partenza con il 
> suo, e lo forwarda a WWW segnandosi la su aporta locale, e segnandosi 
> che i pacchetti che arrivano su quella porta vanno De-Masquerati.
> 
> 3) WWW vede il pacchetto come proveniente da GW, e risponde con un SYN 
> ACK verso GW sulla stessa porta DI GW (com'e' standard)
> 
> 4) GW vede il pacchetto, vede che viene da una porta segnata come 
> utilizzata per il MASQUERADE e ne ri-cambia l'indirizzo di destinazione 
> conquello di A, facendolo passare attraverso il forwarding e inviandolo 
> ad A.
> 
> 5) A riceve il pacchetto SYN ACK proveniente da WWW (e poi continua col 
> SYN ACK ACK ecc.ecc.)

E questo e' lo scopo legittimo per cui esiste il masquerading, ok?

> Come si vede nel punto 4, e' NECESSARIO permettere il forwarding dei 
> pacchetti provenienti da indirizzi esterni diretti a indirizzi di rete 
> locale

Certo, quando ho detto "filtro o non filtro" non intendevo "forward o
non forward", intendevo "questo succede anche se tu non blocchi
l'inoltro di pacchetti SYN". Il forwarding e' necessario.

> ANCHE SE in effetti non ne sono mai arrivati, perche' questi 
> pacchetti vengono creati da GW con un artificio. Quello che io penso 
> sarebbe giusto e' che questi pacchetti "speciali" NON DOVREBBERO passare 
> attraverso le normali regoile di FORWARD...Dovrebbero esserci delle 
> regole di FORWARD "speciali" per loro, com'era per IPCHains per capirci.

A quali regole speciali ti riferisci? Da questo punto di vista
iptables e' piu' evoluto perche' permette di fare il connection
tracking. Nella catena di forwarding su GW potresti bloccare i pacchetti
diretti alla rete interna che non siano in stato ESTABLISHED o RELATED
(v. iptables howto) e lasciar passare tutti gli altri.
In questo modo ogni tentativo di iniziare una nuova connessione verso
le macchine interne da parte di quelle esterne (le connessioni generate
da GW stesso non attraversano la catena di forwarding) vengono bloccati.
Non e' questa la soluzione?
Oppure sto continuando a non capire... molto piu' che probabile. =)

Ciao.
Gianni.


--
   Gianni Bianchini - giannibi@firenze.linux.it
                      giannibi@iname.com





Maggiori informazioni sulla lista flug-tech