Newsgroup: it.comp.os.linux.sys
Titolo: Strana richiesta..

Devo realizzare un arrocco strano e sono un newbie assoluto.. Putroppo chi
se ne intende e' all'ospedale e io non ho mai fatto queste cose.
Ho un router cisco al quale attacco un PC con una nic configurata con uno
degli ip statici del pool concesso dal provider.
A questo punto ho necessità che quando mi arriva su questo IP una
richiesta su di una porta XX me la faccia girare alla seconda nic
installata sul medesimo PC con l'ip della mia lan e collegata nella mia
lan, e che la richiesta raggiunga un ip dei miei privati, e la cosa deve
essere funzioante in maniera che chi e' all'esterno possa interagire, tipo
ad esempio come un server web interno, al quale arriva la richiesta ad uno
degli ip pubblici, questa viene ruotata ad un'altra interfaccia in questo
caso privata che la gira a sua volta ad un altro ip della stessa lan.
Intendendoci:
ADSL ROUTER
|
|
|
PC---NIC1 (IP PUBBLICO)
|----NIC2 (IP PRIVATO)----->PC DESTINAZIONE (IP PRIVATO)
Ho dato una lettura ad appunti linux e ho visto iptables e DNAT ma nella
opzione --to-destination ho visto l'ip, ma non la scheda di rete
destinazione.. E quindi non penso che se l'ip destinazione e' della stessa
classe di quella della nic "privata" possa funzionare (oppure si??).
Come si può risolvere questa cosa??
Due regole di destination in cascata, prima al primo indirizzo della prima
scheda di rete, e poi da questo verso l'altro??
Come faccio a far valere la cosa per entrambi "i sensi di marcia" dei
pacchetti??
Grazie in anticipo a chiunque voglia aiutarmi.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 pacchetti??
Cerca su google how-to su iptables, in particolare per quanto riguarda
DNAT, SNAT, PREROUTING e POSTROUTING (in particolare a te interessa SNAT
e POSTROUTING).
Trovi esempi che ti guidano passo-passo.
-- 
Massimo Bacilieri AKA Crononauta 
ICQ:4005815

 Trovi esempi che ti guidano passo-passo.
Se ho capito bene da questi howto, ricapitoldando anche quanto mi dici tu,
supponendo che su eth0 ci sia configurato l'ip pubblico statico, e su eth1
un ip 
192.168.1.1/24
, se faccio una regola del tipo:
# iptables -t nat -A PREROUTING -p tcp --dport 8080 -i eth0 -j DNAT
--to-destination 
192.168.1.7:7080
Dovrebbe esser già sufficiente a reindirizzare le richieste che pervengono
sull'eth0 (IP PUBBLICO STATICO) verso il mio server interno.. Giusto??
Il dubbio che mi permane è come sistemare la situazione inversa.. 
Devo fare un altra regola al contrario ovvero:
# iptables -t nat -A PREROUTING -p tcp --dport 7080 -i eth1 -j DNAT
--to-destination IPPUBBLICOSTATICO:8080
O come??
In pratica trattandosi di un webserver, deve poter accettare la richiesta
ma anche visualizzare al richiedente, le informazioni richieste.
Grazie ancora!


 --to-destination 
192.168.1.7:7080
Concettualmente è giusto, ma il PREROUTING (e -j DNAT) lo usi per
reindirizzare le connessioni che dall'interno vanno verso l'esterno.
Se vuoi il contrario, devi usare POSTROUTING e -j SNAT.


 Se vuoi il contrario, devi usare POSTROUTING e -j SNAT.
Grazie ancora, sei stato gentilissimo! 
Continuo il mio lurking, e spero di essere utile anche io, al ng.


 alcuna importanza se e' interna o esterna. 
Allora mi sto confondendo le idee.. Quindi è corretto quello che ho
scritto o devo usare POSTROUTING e quindi SNAT?
Come hai potuto leggere l'intento è che i pacchetti transitino in entrambe
le direzioni, trattandosi di un webserver interno.


 Se leggi l'IPTABLES-HOWTO c'e' chiaramente descritta sta' cosa.
Infatti nel primo messaggio, avevo infatti messo DNAT, da quel che avevo
capito dall'iptables e nat howto. Il messaggio dopo mi aveva confuso le
idee. Grazie anche per la precisazione successiva con tanto di esempio.


 apparire come in una DMZ).
Esatto, e questo mi pareva che fosse invece quello che voleva fare, no?
Ad ogni modo puoi anche limitarti a un PAT, visto che non sei obbligato
a inoltrare tutte le porte, ma puoi anche selezionarne solo alcune (es.
quelle per i servizi "classici" come web, pop e smtp).


 server e' un server di posta diventa un macello per gestirsi il relay...
Quindi ricapitolando, se non ho fatto confusione, per far in modo, che una
richiesta di una porta sull'ip statico, venga girata alla seconda nic e da
questa ad un server interno, e viceversa per far vedere all'utilizzatore
esterno ciň che richiede, mi bastano le seguenti 2 regole:
# iptables -t nat -A PREROUTING -p tcp --dport 8080 -i eth0 -j DNAT
--to-destination 
192.168.1.7:7080
# iptables -t nat -A PREROUTING -p tcp --dport 7080 -i eth1 -j DNAT
--to-destination IPPUBBLICOSTATICO:8080
Giusto??
