[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