[ Home | Liste | F.A.Q. | Risorse | Cerca... ]


[ Data: precedente | successivo | indice ] [ Argomento: precedente | successivo | indice ]


Archivio: Marzo 2005 ml@sikurezza.org
Soggetto: Re: [ml] Ancora su iptables e situazioni pseudo-reali.
Mittente: Skull
Data: Wed, 23 Mar 2005 11:49:05 +0100 (CET)

On Mar 18, 2005, at 10:09 AM, sys@xxxxxxxxxxx wrote:
$IPTABLES -t nat -A PREROUTING -i $INTERFACE_ESTERNA -p udp --dport 53 -j DNAT --to-destination $MACCHINA_DMZ:53
il :53 è ridondante ma corretto.

Occhio che questa regola non viene applicata ristretta allìip destinazione, ma a tutto il traffico entrante dalla $INTERFACE_ESTERNA.
Se questa ha più IP, li ridirige *tutti*.


suppongo di dover gestire nella catena di FORWARD del firewall il suddetto pacchetto esattamente come se fosse stato originariamente buildato per raggiungere la macchina in DMZ no? Quindi dovrò aggiungere cose del tipo:

$IPTABLES -A FORWARD -p udp --dport 53 -d $MACCHINA_DMZ -m state --state NEW -j ACCEPT

Yep. Ma con un MA


In questo modo, in una sola regola risolvo anche l'inoltro dei pacchetti provenienti dalla 3° scheda (avevo assunto che aveva 3 interface il firewall...) che comunque avranno già di loro (provenendo da una rete interna) l'indirizzo ip della macchina in DMZ come destinazione.


E' corretto il mio ragionamento? Manca qualcosa?

Il MA. Ovvero una questione strettamente di approccio e relativi dettagli.


1) è in linea di massima sempre desiderabile verificare esplicitamente le interfacce di ingresso/uscita del traffico. Affidarsi solo all'IP non è consigliabile.
2) L'approccio di "applico il nat solo alle porte che servono" è indispensabile solamente nel caso in cui tu abbia un solo IP pubblico su cui devi far rispondere più macchine interne.
Altrimenti è consigliabile nattare "tutto l'IP" e effettuare poi in FORWARD i check del caso.
Questo evita da un lato di dover replicare il ruleset (una volta per il NAT e una volta per il filter), e dll'altro risparmia grossi mal di testa nel caso di protocolli multiporta, dove altrimenti ti ritrovi a dover inseguire le porte una a una.



Ultima cosa: volendo far "passare" anche il traffico verso internet sono necessarie regole particolari che controllano i tcp-flags dei pacchetti o mi basta una cosa tipo:


$IPTABLES -A FORWARD -s $NETDMZ -m state --state NEW,RELATED -j ACCEPT


Questa funzionerebbe, ma manca il traffico ESTABLISHED, quindi non staresti lasciando passare le risposte al traffico NEW.
Vale anche qui (*enormemente* qui, per come la hai scritta) la regoletta della interfaccia di ingresso/uscita. Una regola siffatta permette alla DMZ di entrare in LAN. Non credo sia quello che volevi.



Se posso permettermi un po' di pubblicità, prova a dare una spizzata a http://www.skullkrusher.net/linux/iptables.html e a http://www.skullkrusher.net/linux/statemachine.html
Premettendo che sono
- datati
- pensati come FAQ per newbie su di usenet


forse ci trovi comunque un paio di delucidazioni.

Se vuoi un consiglio (e questo è in risposta parziale al richiamo che hai fatto al port-forwarding), dimentica per un po' quello che sai dell'approccio seguito da altri vendor, e limitati a capire i concetti di chain e state, insieme con l'ordine il percorso seguito dai pacchetti nello stack.
Se lo capisci e ragioni nei suoi termini, iptables/netfilter è probabilmente il tool di filtering/nat più limpido che c'è in giro.


Saluti.

A poweful "Yep".

--
The Skull says:
A Linux machine! Because an (i386|ppc|alpha|PA-RISC) is a terrible thing to waste!






[ Home | Liste | F.A.Q. | Risorse | Cerca... ]

www.sikurezza.org - Italian Security Mailing List
(c) 1999-2005