Newsgroup: it.comp.os.linux.sys
Titolo: NAT STATICA CON LINUX

E' LA PRIMA VOLTA CHE SCRIVO QUI E MI RIVOLGO A VOI CON DISPERAZIONE
POICHE' NON RIESCO A CHIARIRE QUESTO DILEMMA:
Vi scivo per un problema abbastanza complesso.
Ho sempre configurato alcune DMZ con linux redhat 6.2 (kernel 2.2.19) ed
ipchains.
LA NAT STATICA (ip pubbl.-ip priv.) L'HO SEMPRE FATTA FARE A LIVELLO DI
ROUTER DAI TECNICI CISCO.
Lo schema che riporto è quello che ho sermpre fatto, tipico di una DMZ.
       router cisco (wan-ip pubbl.)
      con nat statica abilitata
                 |(lan)
                 |
                 |
                 |(lan)
               linux--------dmz
                 |       mailserv.
                 |      (nat stat)
                 |
                lan interna
Nella configurazione che dovrò fare ora, non ci sarà un router di mezzo,
e sarà quindi il linux a dover fare la nat statica oltre che da firewall
ovviamente.
Dopo ore di ricerca in internet, ho trovato il seguente link:
http://www.e-infomax.com/ipmasq/howto-trans/it/IP-Masquerade-HOWTO-1.90-it-7.html
che, alla sezione 7.32 spiega:
7.31 Mi servirebbe far uscire diverse reti interne Mascherate su diversi
indirizzi IP esterni (IPROUTE2)
Poniamo che la situazione sia questa: 
------howtoo----
LAN ----------> IP ufficiale 192.168.1.x --> 123.123.123.11 192.168.2.x
-->123.123.123.12
Va pria di tutto messo in chiaro che sia IPFWADM che IPCHAINS si
attivano *DOPO* che il sistema di instradamento (routing) ha stabilito
dove devono essere mandati i pacchetti. Questo dovrebbe essere stampato
in caratteri cubitali su tutta la documentazione per IPFWADM / IPCHAINS
/ IPMASQ. Bisogna quindi mettere a posto l'instradamento per prima cosa
e quindi aggiungere IPFWADM/IPCHAINS e/o l'IP-Masq.
Nel caso descritto prima, è necessario convincere il sistema di
instradamento a dirigere i pacchetti provenienti da 192.168.1.x per la
via 123.123.1233.11 e i pacchetti provenienti da 192.168.2.x per la via
123.123.123.12. Questa è la parte difficile; sarà poi facile aggiungere
l'IP-Masq su un sistema di instradamento corretto.
Per realizzare questo insolito instradamento, si deve usare IPROUTE2
-----fine howtoo---
Allora ho detto: bene è fatta!!!
Invece su altri siti dicevano di usare ipnatadm che però risulta
esistere solo sul sito di suse; redhat invece non ne parla nemmeno.
Non ho neanche trovato il pacchetto per redhat mentre iproute è
disponibile anche sul sito di redhat.
Inoltre le indicazioni su alcune mailinglist mi hanno confuso
ulteriormente le idee.
Potete darmi delle indicazioni più precise possibili su cosa usare e
come fare??
Grazie
Grazie
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Ho avuto a che fare con il mascheramento pre condividere un ip pubblico con
una rete privata
con gateway un linux.
Funzionave tutto.
Nel tuo caso credo che le opzioni possano essere due:
a) usi due iinterfacce ethernet fisiche diverse con due ip pubblici diversi
b) (se funge) numeri la stessa ethernet fisica con due ip pubblici ( eth0
eth1)
a questo punto instradi manualmente il routing iproute e mascheri le
sottoreti private che vuoi verso gli ip pubblici che vuoi
E' quello che mi viene in mente di più semplice e veloce.
In ogni caso non ho capito se il linux e' collegato verso la wan con una
dialup o una ethernet.
Ciao


 wrote in message
news:a55tul$ki1$1...@fe2.cs.interbusiness.it...

Innanzitutto la ringrazio moltissimo per avermi risposto.
Il linux verrà collegato verso la wan con una ethernet o meglio, sarà in
una webfarm
e sarà collegato ad un router del provider che ci fornische una linea
da 12 mbit come nel seguente schema
 
    router provider
          |
          |
          |
       linux box---------dmz
          |            |
          |           web
          |           serv.(nat ip pubbl.-ip priv)
          |
        lan
come vede, non c'è più di mezzo il router/firewall (nokia) di cui ho
parlato e quindi, la nat statica dovrà farla lui.
Per maggior chiarezza, riporto la configurazione attuale delle macchine
che, dovrebbe essere sostituita da quella sopra: 
    router provider
          |
          |
          |
       firewall
        nokia   (nat fra ip pubblico e privato)
          |
          |
          |
       web server
Grazie e cordiali saluti
-- 


 ha scritto nel messaggio
news:0a97735935f7df2f6c8...@mygate.mailgate.org...

Inannzituto ti prego di darmi del tu .... :-)
la config che proponi e' del tutto uguale alla mia
l'unica cosa e' che io non avevo il web server dietro al firewall
per cui non ho affrontato il problema di dover far vedere un ip privato
dal mondo esterno (so per sentito dire che e' possibile configurare il linux
firewall
tipo proxy ma non ho mai testato niente di simile) e che avevo una dialup e
non una eth.
Comunque alcune domande per chiarire:
a) che cosa e' il "dmz" ?
b) perche' (dallo schema) la nat dovrebbe essere solo verso il web server e
non verso tutte le macchine della sottorete ?
Io usavo esclusivamente ipchains e avevo una redhat 6.0.
es:
wan-------dialup linux-------lan privata
   ip pubblico          ip privati
se hai piu' sottoreti potresti provare:
a)  con x eth fisiche e x sottoreti private
    indirizzo ethx       10.97.4.1 mask 255.255.255.0
    indirizzo ethx+1  10.97.5.1 mask 255.255.255.0     su queste lan ci
stanno 254 macchine ognuna
    indirizzo ethx+2  10.97.6.1 mask 255.255.255.0
    ip route 10.97.4.0 255.255.255.0 ethx
    ip route 10.97.5.0 255.255.255.0 ethx+1
    ip route 10.97.6.0 255.255.255.0 ethx+2
b) con x eth logiche e x sottoreti private
    lo stesso sistema solo che usi gli alias per definire piu' interfacce
ethernet su una scheda fisica (eth0:1, eth0:2 etc. mi sembra di ricordare)
a questo punto hai stabilito le tabelle di routing interne (private) e puoi
con ipchains
o ipfwadm (che non conosco) configurare le policies per l'instradamento dei
pacchetti
mascherati.
non so se risolvera' il tuo problema ma io avevo ragionato a questa maniera.
Ciao

Oops ho usato i comandi del Cisco "ip route ...."
intendevo ovviamente quelli linux "route add -net ....."
Ciao


Onestamente fatico a starti dietro, per cui ti propongo la mia soluzione 
su come risolverei io la situazione in cui sei tu.
In pratica hai una linux-box che fa da firewall con 3 interfacce: una 
pubblica, una privata e una per la dmz.
immagina di avere 5 ip pubblici su cui devono essere disponibili i 
servizi dei vari server in dmz.
Allora immaginiamo i seguenti env:
LAN=
192.168.0.0/24
DMZ=
192.168.100.0/24
DMZ1=192.168.100.1
DMZ2=192.168.100.2
DMZ3=192.168.100.3
DMZ4=192.168.100.4
IPPUB1=123.123.123.1
IPPUB2=123.123.123.2
IPPUB3=123.123.123.3
IPPUB4=123.123.123.4
IPPUB5=123.123.123.5
#Qui ipotizzo che tu abbia il router "TELECOM" sul 6, con una rete 
123.123.123.0/29
In tal caso associ ad eth0 il primo disponibile, ovvero $IPPUB1 ( e su 
questo verrà basato il masquerade delle macchine nella lan, tramite una 
stupida regola tipo
/sbin/iptables -A POSTROUTING -t nat -s $LAN -d ! $LAN -j MASQUERADE
...e su questa presumo non ci siano dubbi.
Quindi vuoi che sugli altri rispondano i servizi della server-farm. 
Questi saranno su macchine della dmz, quindi con ip privati appartenenti 
alla rete $DMZ, ovvero $DMZ1 ecc.
Quindi:
1) ifconfig eth0:0 $IPPUB2 netmask 255.255.255.240
Ovvero associ gli ip pubblici che hai a disposizione a interfacce 
virtuali, sulla stessa interfaccia fisica esterna. In tal modo il FW ti 
riponde anche sugli altri indirizzi. Poi, immaginando che su $IPPUB2 
debba girare un webserver; dài
2) /sbin/iptables -A PREROUTING -t nat -p tcp -d $IPPUB2 --dport 80 -j DNAT --to-destination $DMZ1:80
In tal modo ridirigi il traffico che richiede servizi dalla porta 80 
dell'indirizzo $IPPUB2 sulla macchina in dmz, tramite un semplice dnat. 
Nota che se usi iptables non hai bisogno di specificare altro, poichè il 
modulo ip_conntrack (compilalo, se non lo hai) si occupa di gestire il 
traffico di risposta, snattandolo da solo.
Da quanto mi risulta, ipchains non ha tali features, ma devo ammettere 
che non lo ho mai utilizzato a tale scopo.
A questo punto, dovrebbe essere evidente che associando gli altri ip 
disponibili a eth0:1, eth0:2 ecc puoi fare un poco quello che ti pare, 
ridirigendo le singole porte su cui vuoi far girare il servizio in 
direzione delle rispettive porte delle macchine (con ip privato) che 
gestiscono il servizio in questione.
Spero risponda + o meno a ciò che ti serviva, poichè devo dire che ti ho 
trovato un po' nebuloso...
Byez.
-- 
Emanuele "SKULL" Balla
--------------------------------------------------------------------
"How should I know if it works?  That's what beta testers are for.  I only
coded it."
(Attributed to Linus Torvalds, somewhere in a posting)

 1) ifconfig eth0:0 $IPPUB2 netmask 255.255.255.240 
e ho anche sbagliato i conti... essendo una /29 la netmask finiva con 
248. Vabbè, corro a vergognarmi sotto al mio sasso...
