Newsgroup: it.comp.os.linux.sys
Titolo: iptables...secondo voi dov'e' l'inghippo?

 iptables -t nat -A POSTROUTING -s 
10.0.0.0/8
 -o $EXTIF -j MASQUERADE
Vediamo... a parte quello mancano alcuni particolari, in quanto tu metti in
drop tutti i pacchetti non curante che la tabella postrouting non fa parte
di quella catena... in quel modo tu modifichi la destinazione o mittente del
pacchetto, ma gli neghi ovviamente il forward...
Ti mosto le mie rules, e se non lo hai fatto, i più importanti moduli per il
nat e masquerade (scrivo solo l'essenziale, rules e commenti, niente log o
altro...)
  modprobe ipt_LOG
  modprobe ip_conntrack
  modprobe ip_conntrack_ftp
  modprobe ip_conntrack_irc ports=6666,6667,6668,6669,7000
  modprobe ipt_MASQUERADE
  modprobe ipt_state
  modprobe iptable_nat
  modprobe ip_nat_ftp
  modprobe ip_nat_irc ports=6666,6667,6668,6669,7000
Una delle principali caratteristiche del nuovo netfilter è il tracciamento
delle connessioni, grazie ad esso molti compiti per il masquerade e per il
nat sono più efficenti e flessibili. Noterai in alcune rules delle strane
paroline al parametro state che fa parte dei moduli conntrack.
#CATENA DI INGRESSO
  $IPTABLES -P INPUT DROP
  #SQUID
  $IPTABLES -t nat -A PREROUTING -i $LOCALINTERFACE -p tcp -d !
$LOCALIP --dport 80 -j REDIRECT --to-port 8080
  $IPTABLES -A INPUT -i $LOCALINTERFACE -s $LOCALNET -j ACCEPT
  $IPTABLES -A INPUT -i lo -j ACCEPT
  $IPTABLES -A INPUT -i $INTERFACE -s $LOCALNET -j errore1
  $IPTABLES -N internet-in
  $IPTABLES -A INPUT -i $INTERFACE -d $INTERFACEIP -j internet-in
  $IPTABLES -A internet-in -p icmp --icmp-type 0 -j ACCEPT
  $IPTABLES -A internet-in -p icmp --icmp-type 3 -j ACCEPT
  $IPTABLES -A internet-in -p icmp --icmp-type 8 -j ACCEPT
  $IPTABLES -A internet-in -p icmp --icmp-type 11 -j ACCEPT
  # Accetta i pacchetti provenienti da una connessione già stabilita
  $IPTABLES -A internet-in -m state --state ESTABLISHED,RELATED -j ACCEPT
  #Servizi aperti all'esterno
  $IPTABLES -A internet-in -p tcp --syn (oppure -state NEW, per il tcp al
momento preferisco --syn) -d $LOCIP 80 -j ACCEPT
  $IPTABLES -A internet-in -m state -p udp --sport 520 --dport 520 --state
NEW -j ACCEPT
  $IPTABLES -A internet-in -p tcp --dport 113 --syn -j ACCEPT
#CATENA DI USCITA
  $IPTABLES -P OUTPUT DROP
  $IPTABLES -A OUTPUT -o $LOCALINTERFACE -d $LOCALNET -j ACCEPT
  $IPTABLES -A OUTPUT -o $INTERFACE -s $INTERFACEIP -j ACCEPT
  $IPTABLES -A OUTPUT -o lo -j ACCEPT
#CATENA FORWARD
  $IPTABLES -P FORWARD DROP
  # Mascheramento dell'interfaccia esterna
  $IPTABLES -t nat -A POSTROUTING -o $INTERFACE -j MASQUERADE
  # Permetti il forward dalla periferica locale a quella esterna dalla rete
  $IPTABLES -A FORWARD -i $LOCALINTERFACE -o $INTERFACE -j ACCEPT
  # Permetti il forward a qualsiasi pacchetto delle connessioni già attive
  $IPTABLES -A FORWARD -m state -i $INTERFACE -d $LOCALNET -o
$LOCALINTERFACE --state ! NEW,INVALID -j ACCEPT
Come puoi vedere ci sono notevoli differenze e in più è stato sfruttato il
tracciamento delle connessioni. Volendo si possono impostare rules che
limitano gli effetti dei syn flood, oppure moduli che permettono il match di
alcuni tipi di pacchetti o altro... ma credo che non siano molto utili al
momento, molto è ancora in sperimentazione.
--
| /
| \Byte - Andrea Briganti - 
kbyt...@tin.it
http://digilander.iol.it/kbytesystem
ICQ: 40872731 - C6: andreakbyte
Activelist Sentimenti: 47103807

 notare.Grazie.
...
I pacchetti da forwardare passano per la FORWARD (ma va? :-) che ha policy
drop.
--
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.mascanc.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! God Knows How Long I Tried To Change Fate !>-
  		Blind Guardian - Mordred's Song

 questo lo dovevo fare anch'io e non l'ho fatto giusto ?
Certo che devi fare.... anche se fai il masquerade, quei pacchetti
mascherati vengono comunque analizzati dalla catena di forward, a meno di
avere la policy di forward in accept... ma non te lo consiglio proprio...


 funziona ?
Perchè nel cambio del netfilter si è fatta una cosa attesa da tempo....
Il masquerade è una sorta di SNAT, il nuovo netfilter ha tutte le carte in
regola per creare un full nat e il masquerade è stato "avvicinato" ad esso.
In pratica mentre prima ipchains effettuava tutte le operazioni, adesso il
netfilter effettua un SNAT e il tracciamento delle connessioni in modo da
avere una organizzazione, sicurezza e efficienza (a sentire ciò di cui si
parlava nella mailing del netfilter) maggiore.
Infatti molte delle informazioni utili al masquerade sul nuovo netfilter le
trovi nel Linux 2.4 Packet Filtering HOWTO al capitolo  `Mescolare NAT e
filtraggio dei pacchetti'.
