Newsgroup: it.comp.os.linux.iniziare
Titolo: Debian gateway

Scusate, ma mi sto un po' perdendo nei meandri di iptables.
Per mettere in piedi un semplice gateway che mi inoltri i pacchetti 
della LAN (in arrivo su eth0) verso internet (eth1), ho letto un po' in 
giro e vedo esempi "leggermente" differenti.
Un suggerimento trovato è questo:
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.254.2
Ma in realtà ricordavo che si usa il "-j MASQUERADE", e difatti trovo 
quest'altro esempio:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Ora, qual è il *minimo* setup per avere routing tra eth0 ed eth1?
Voglio solo questo, per ora. Al filtraggio ci penso dopo.
Grazie!

 Voglio solo questo, per ora. Al filtraggio ci penso dopo.
Solo il forwarding? Edita /etc/sysctl.conf: è tutto commentato.

 Grazie!
echo 1 > /proc/sys/net/ipv4/ip_forward

 Solo il forwarding? Edita /etc/sysctl.conf: è tutto commentato.
Si, scusa. Nel file che indichi tu ho già decommentato
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
Suggerisci di decommentare altri parametri?

 echo 1 > /proc/sys/net/ipv4/ip_forward
... che equivale poi a fare la modifica in /etc/sysctl.conf, giusto?


No, abbasta così. Hai riavviato la rete? Esegue il routing?


No. Se lo metti in sysctl.conf, il valore verrà caricato al prossimo 
avvio. Se fai echo 1 > /proc... il valore diventa attivo subito.
-- 
Massimo Bacilieri AKA Crononauta


Ma si perde al successivo riavvio...


A maggior ragione non è la stessa cosa di fare la modifica in 
sysctl.conf ;-)


 sysctl.conf ;-)
Mi sembra una disamina corretta :-)
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Certo, era solo per avvertire l'O.P.

 No, abbasta così. Hai riavviato la rete? Esegue il routing?
Non ancora, mi ci sto prima preparando e difatti mi vien da chiedere: 
non serve anche una riga di iptables per FORWARD, tipo:
-A FORWARD -m state -i eth0 -o eth1 --state ESTABLISHED,RELATED -j ACCEPT
?
Ho visto in alcune guide che viene indicato...


È un discorso diverso.
Quello serve a far passare un traffico che altrimenti, per un altra 
regola, verrebbe bloccato.
La direttiva -m state --state ESTABLISHED,RELATED si usa normalmente per 
fare il forward non di *tutto* quello che viene inviato, in ambo le 
direzioni, attraverso il gateway; bensì a far passare, da WAN a LAN, 
*solo* il traffico di risposta a una richiesta generata dalla LAN alla WAN.
È una regola tipica dei gateway di frontiera, dove si tende a bloccare 
*tutto* quello che da WAN vuole andare verso la LAN, ma si vuole fare 
passare il traffico che è stato "richiesto" dalla LAN (altrimenti 
nessuno potrebbe uscire su internet, con nessun servizio). Chiaramente 
per un gateway interno fra due segmenti di rete LAN potrebbe non essere 
necessario.


 Quello serve a far passare un traffico che altrimenti, per un altra
                                                              ^^^^^
AAARRRGGHHH scusate... "un'altra"... :-O


 necessario.
Il mio gateway avrà su eth0 la LAN e su eth1 ci collegherò il router 
DSL. Su quest'ultimo metterò come IP della DMZ l'IP della eth1, mi pare 
di non sbagliare nulla, giusto?!

OxygeN ha scritto:




Se vuoi fare routing per andare in internet, allora devi nattare il
traffico verso l'esterno e inserire una regola di masquerade
http://digilander.libero.it/amilinux/doc/netfilter-7.html
Se invece ti interessa soltanto il routing tra i device di rete, basta
l'espressione di ip_forward (o sysctl.conf).
Scusa se ti sottolineo una cosa, ma è esperienza che una buona parte cade
nell'errore.. eth0 e eth1 NON possono e NON devono far parte della stessa
subnet ;-)
Ciao, Davide.


 subnet;-)
Questo lo so, ma fai bene a sottolinearlo! ;-)

 inserisco nel "-j SNAT"?
Se hai il router, è probabile che il nat già lo fa lui e quindi non 
serve aggiungerne un altro...

 eth0 -j MASQUERADE
Scusa, ma a quest'ora iniziano ad orbitare i neuroni :-)

 serve aggiungerne un altro...
Quindi non mi serve mettere nè SNAT ne MASQ, giusto?
Intanto, ho notato che la risoluzione dei nomi è alquanto "lenta". Mi 
consigliate quali DNS utilizzare
a) per i client in LAN
b) per il gateway debian
?
Al momento i client in LAN usano il server DNS in LAN per risolvere. Su 
questo, ho impostato come server d'inoltro, l'IP del router (quindi già 
"oltre" il gateway, dato che sul gateway non ho installato alcun 
servizio DNS). Sul gateway vorrei usare anche qui il DNS della LAN, per 
avere la risoluzione dei nomi dei servizi interni alla LAN: andrebbe bene?


sul gateway installa dnsmasq che fondamentalmente fa da cache e può
risolvere i nomi locali, semplicissimo da installare.

 risolvere i nomi locali, semplicissimo da installare.
OK, quindi /etc/resolv.conf lo lascio impostato per la LAN:
search dominio.locale
nameserver 172.16.16.254
dove appunto l'IP indicato è del server DNS installato su Windows Server.
Confermate?! :-)

 gateway.
Aggiungo: in tal caso IMHO non hai alcun bisogno di installare il dns
sul gateway.

 sul gateway.
Si, i client sono Windows, ma a loro *non* faccio cambiare DNS.
La mia domanda č:
sul gateway, come imposto la risoluzione dei nomi? Faccio usare il DNS 
in LAN (cosě risolvo pure i nomi interni)?
Inoltre, dnsmasq ho visto che ha dato un output di questo tipo:
Starting DNS forwarder and DHCP server: dnsmasq.
Mi troverň mica un server DHCP attivo ora?!


Nono devi abilitarlo specificatamente editando dnsmasq.conf (man
dnsmasq). Dnsmasq puň anche essere configurato per inoltrare tutte le
query dns relative ad uno specificato dominio ad un altro server dns
quindi potresti:
1) lasciare installato dnsmasq e indirizzare la risoluzione nomi locali
al tuo server windows e il resto al tuo isp e/o a server dns pubblici;
2) disinstallare dnsmasq e mettere sul gateway come DNS nell'ordine il
tuo server windows, il tuo isp e qualche dns pubblico affidabile.