[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