[Tech] SNATsemistatico (lunga)

Morpheus morpheus@mydotcomaddress.com
Gio 20 Mar 2003 14:03:23 CET


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Alle 08:33, giovedì 20 marzo 2003, Leonardo Boselli ha spippolato:

[snip]

> non è arroganza ... è semi-panico ....

ok, ho interpretato male io, cmq non "appanicarti", la questione è abbastanza 
semplice. Vediamo di risolverla:

> giusto ... ma guarda un po' che mi risponde:
>
> student:~# iptables -t nat -o 192.168.143.84 -j SNAT \
                                                                     ^^^^^^^^
>                              --to-destination a.b.c.28
                                ^^^^^^^^^^^^^^^
> iptables v1.2.7a: Unknown arg `--to-destination'
> Try `iptables -h' or 'iptables --help' for more information.
> student:~#

mi sa che nella concitazione abbiamo fatto un po' di casino, cmq rimediamo 
subito. Copio/incollo da man iptables:

  SNAT
       This  target  is only valid in the nat table, in the POSTROUTING chain.
       It specifies that the source address of the packet should  be  modified
       (and  all  future packets in this connection will also be mangled), and
       rules should cease being examined.  It takes one option:

       --to-source  ipaddr[-ipaddr][:port-port]
              which can specify a single new source IP address,  an  inclusive
              range  of  IP  addresses, and optionally, a port range (which is
              only valid if the rule also specifies -p tcp or -p udp). If  no
              port  range  is  specified,  then source ports below 512 will be
              mapped to other ports below 512:  those  between  512  and  1023
              inclusive  will  be  mapped to ports below 1024, and other ports
              will be mapped to 1024 or above. Where possible, no port alter-
              ation will occur.

DNAT
       This  target is only valid in the nat table, in the PREROUTING and OUT-
       PUT chains, and user-defined chains which are only called from those
       chains. It specifies that the destination address of the packet should
       be modified (and all future packets in this  connection  will  also  be
       mangled), and rules should cease being examined.  It takes one option:

       --to-destination ipaddr[-ipaddr][:port-port]
              which can specify a single new destination IP address, an inclu-
              sive range of IP addresses, and optionally, a port range  (which
              is  only valid if the rule also specifies -p tcp or -p udp).  If
              no port range is specified, then the destination port will never
              be modified.

Quindi, riassumendo, avrai due regole fatte così:

- -per le connessioni in ingresso-
iptables -t nat -A  PREROUTING  -d ip_pubblico -j DNAT \
                                             --to-destination ip_interno

- -per le connessioni in uscita-
iptables -t nat -A POSTROUTING -s ip_interno -j SNAT \
                                             --to-source ip_pubblico

Giustamente potresti farmi notare che, mentre la prima regola non può dare 
adito a fraintesi, la seconda sembra instradare indistintamente tutto il 
traffico della lan generato da ip_interno verso un, non sempre coerente, 
ip_pubblico. Di fatto ciò non accade, ma, per eccesso di zelo (che in certi 
casi non è mai sbagliato) possiamo eliminare ogni ambiguità modificando in 
questo modo la regola per le connessioni in uscita:

iptables -t nat -A POSTROUTING -s ip_interno -d !ip_lan/netmask -j SNAT \
                                             --to-source ip_pubblico

mi raccomando: specifica *sempre* le catene della tabella nat dove vuoi che 
questi particolari jump (istruzione -j) vengano applicati perchè, come puoi 
notare dai due stralci della pagina di manuale che ti ho riportato, 
l'accettazione di tali regole è strettamente connessa a questa condizione.

> > > se devono collagarsi a un server INTERNO usano gli indirizzi privati
> >
> > O_O boh, la tua rete la conosci te... se il gw è l'unica macchina che
> > regola gli instradamenti, la veggo molto dura in questo modo per le
> > macchine nattate.
>
> All'"interno" NON ci dovrebbero essere server

meglio così, altrimenti il discorso degli instradamenti sulla lan si complica 
un pochino. Se l'argomento ti interessa, magari possiamo approfondire in pvt 
visto che non so quanto la cosa possa essere di comune interesse a tutti i 
partecipanti alla ml e non vorrei tediare nessuno.

> grazie comunque a tutti per la collaborazione.

di niente, spero di averti aiutato a risolvere il problema.
Mi scuso con tutti per la lungaggine
- -- 
***********************************
  Powered by Red Hat Linux 8.0

   Linux Registered User 223916
 Linux Registered Machine 106779
***********************************
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)

iD8DBQE+ebwnE8+EZeDD8mQRAnBRAKCz8u/+aBNPfTnfetmCglVb05CpmwCgiuV4
Tpf7uEcfZa6JEaXqpzk4Dlw=
=gBtg
-----END PGP SIGNATURE-----




Maggiori informazioni sulla lista flug-tech