[RoLug] netfilter

Pierpaolo Bergamo rolug@lists.linux.it
Thu, 31 Oct 2002 16:03:37 +0100


ciarez@libero.it wrote:

>#Source NAT (SNAT)
>iptables -t nat -A POSTROUTING -o $OUTDEV  -j SNAT --to $OUTADD
>
>#Destination NAT (DNAT)
>iptables -t nat -A PREROUTING -i $OUTDEV -p tcp -d $OUTSRV_DEV -j DNAT -
>-to $INSRV_DEV
>iptables -t nat -A PREROUTING -i $OUTDEV -p tcp -d $OUTSRV_WS -j DNAT --
>to $INSRV_WS
>iptables -t nat -A PREROUTING -i $OUTDEV -p tcp -d $OUTSRV_MAILNOTES -j 
>DNAT --to $INSRV_MAILNOTES
>
ciao cris,
scusa il ritardo della risposta (ho risposte in arretrato di una 
settimana.... che periodaccio !)

ricapitolando...
il problema e' che hai una lan locale nattata e alcuni server dentro la 
rete locale (non in DMZ, a quanto dicono gli script di config) 
raggiungibili dall'esterno grazie al DNAT (e dall'interno in modo diretto)

la tua domanda era.... come mai non riesco a pingare un server interno 
tramite l'indirizzo esterno (in sostanza uscendo e rientrando dal 
firewall) ?

mi sono permesso di quotare PARTE del file di config del firewall... 
solo parte "innocua", non le regole di firewalling vere e proprie
(per gli altri... cristian mi ha mandato "fuori banda" lo script di 
config del firewall di una ditta.... quindi non si e' legittimamente 
sentita di pubblicarla in mailing list)

il SNAT fa un completo masquerading su tutti i protocolli... quindi da 
dentro la rete locale verso fuori c'e' completa trasparenza
quando da fuori tenti di indirizzare in modo trasparente i server 
interni, in realta' ce la fai solo con i servizi basati sul protocollo tcp
infatti, se guardi, le linee di configurazione il DNAT sulla chain di 
PREROUTING viene fatto solo su TCP
il tuo problema era che il ping non andava a buon fine.... e infatti 
ping e' basato su ICMP e non suTCP

mi aspetto pero' che tu riesca ad usare ad esempio il server web (non 
certo un server dns o nfs che sono basati principalmente su udp)

potresti provare a sostituire le righe di DNAT con:

iptables -t nat -A PREROUTING -i $OUTDEV -d $OUTSRV_DEV -j DNAT --to $INSRV_DEV
iptables -t nat -A PREROUTING -i $OUTDEV -d $OUTSRV_WS -j DNAT --to $INSRV_WS
iptables -t nat -A PREROUTING -i $OUTDEV -d $OUTSRV_MAILNOTES -j DNAT --to $INSRV_MAILNOTES