[Primipassi] nat, iptables e ipchains
Sergio Ballestrero
s.ballestrero@firenze.linux.it
Mar 20 Nov 2001 21:19:18 CET
Ciao Nicola,
piu' che da primipassi, mi sembra una domanda adatta alla lista
tech@firenze.linux.it; comunque comincio subito a darti qualche
indicazione.
Per cominciare, mi sembra una necessita' strana: per quale ragione le
macchine della rete locale devono andare a cercare qualcosa su degli IP
pubblici se quei servizi si trovano nella rete locale ? Scusa, ma mi
sembra contorto.
Comunque, il problema e' che le due macchine in questione, se non gli
sono stati assegnati _anche_ gli IP pubblici, rifiuterebbero i
pacchetti, che non gli sembrerebbero indirizzati a loro. Quindi, oltre a
far arrivare alle macchine i pacchetti (per questo basterebbe il
routing), devi trasformare gli indirizzi di destinazione dei pacchetti
che vanno verso di loro, e anche gli indirizzi di origine dei pacchetti
di risposta, dato che i client non sarebbero contenti di vedersi
rispondere da un indirizzo diverso da quello a cui hanno fatto la
richiesta.
Quindi, le cattive notizie: non basta il routing (che dice su che
interfaccia devono uscire i pacchetti, dato l'indirizzo di destinazione)
e non serve il forwarding (che dice sono se certi pacchetti possono
transitare da una interfaccia ad un'altra). Si potrebbe pasticciare una
soluzione con un masquerading ad hoc, ma non sarebbe una bella cosa. La
soluzione giusta e' il NAT (Network Address Translation), ma il supporto
per il NAT non c'e' in ipchains (o almeno non c'era l'ultima volta che
ho guardato un kernel 2.2), quindi ti servono le iptables del kernel 2.4
(che in generale sono molto piu' flessibili delle ipchains).
Ciao,
Sergio
On Tue, 2001-11-20 at 19:07, Ufficio Ced wrote:
Salve primipassi@firenze.linux.it,
avrei bisogno di un po' di chiarimenti per nat, iptables e ipchains.
Comincerei con un problema concreto:
io ho una rete privata della classe 10.0.0.0/255.255.255.0
ho una macchina linux che mi fa da firewall ed ho configurato
ipchains in maniera da mascherare gli indirizzi interni con una
semplice regola:
/bin/echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_irc
/sbin/ipchains -M -S 7200 10 160
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s 10.0.0.0/24 -j MASQ
ho un kernel 2.2.16-22
...e tutto va bene
gli indirizzi pubblici della mia sottorete sono
xxx.xxx.xxx.97/255.255.255.240
adesso ho bisogno di 'redirigere' tutti i pacchetti provenienti da un
definito range di un'altra sottorete, destinati a due indirizzi della
mia sottorete pubblica (che non sono stati assegnati fisicamente a
nessuna macchina) verso due macchine della rete privata.
Come devo fare?
Si tratta di routing tables o di forward o che altro?
Grazie mille
Nicola Mersi
--
War doesn't prove who's right, Sergio Ballestrero
just who's left. http://www.firenze.linux.it/~sash
GPG Key fingerprint = D974 2E34 B4C5 2EE6 0333 31BC 621B 0273 9FF7 BF97
Maggiori informazioni sulla lista
primipassi