
[ 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