Newsgroup: it.comp.os.linux.iniziare
Titolo: iptables funziona, ma perche'?

Salve ragazzi!! 
Ho trovato non ricordo nemmeno dove i comandi necessari a condividere la 
connessione ad internet con un secondo pc collegato in rete.
Li ho aggiunti alla fine della script di connessione e funzionano ma tuttora 
non riesco a capire perche'... cosa fa ciascun comando? 
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -A POSTROUTING -d ! 
192.168.0.0/24
 -j MASQUERADE
iptables -A FORWARD -s 
192.168.0.0/24
 -j ACCEPT
iptables -A FORWARD -d 
192.168.0.0/24
 -j ACCEPT
iptables -A FORWARD -j DROP
echo "1" > /proc/sys/net/ipv4/ip_forward
Qualcuno ha la pazienza di spiegarmi comando per comando cosa succede? 
Vorrei capirci qualcosa...
Grazie
-- 
Michelangelo

 Vorrei capirci qualcosa...
Puoi trovare una spiegazione veloce e molto, molto pratica nel
Masquerading-Simple-HOWTO.
-- 
Tip | [DEBIAN] Un programma ha bisogno del file "nomefile" ma non lo trova.
of  | Come trovare il pacchetto che lo contiene?
the | $ dpkg -S nomefile               # Cerca nei pacchetti installati
day | $ apt-file search nomefile       # Cerca in tutti i pacchetti
0009| 
http://packages.debian.org
       # Scrivendo nomefile nel secondo form

 Masquerading-Simple-HOWTO.
Ho cercato questo masquerading-simple-HOWTO, e' per caso questo?:
http://howtos.linuxbroker.com/howtoreader.shtml?file=Masquerading-Simple-HOWTO.html
Non mi sembra che spieghi gran che... o comunque io non ci ho capito gran 
che....
-- 
Michelangelo

 echo "1" > /proc/sys/net/ipv4/ip_forward
Abilita l'IP forwarding: necessario per le tre regole di sopra ed 
infatti dovrebbe stare all'inizio...
Leggiti questo (occhio al wrapping): 
http://www.netfilter.org/documentation/tutorials/blueflux/iptables-tutorial.html
-- 
Testing? What's that? If it compiles, it is good, if it boots up it is 
perfect -- [Linus Torvalds]
To reply: news [at] mamakin1976 [dot] plus [dot] com

 che....
Lo spiega riga per riga:
First, allow any existing connections, or anything related (e.g. ftp server
connecting back to you)
+---------------------------------------------------------------------------+
|$> iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT        |
+---------------------------------------------------------------------------+
Then allow new connections only from our intranet
(local/internal network). Replace the ppp0 with eth0 or whatever your 
external device is. (The ! means anything but)
+---------------------------------------------------------------------------+
|$> iptables -A INPUT -m state --state NEW -i ! ppp0 -j ACCEPT              |
+---------------------------------------------------------------------------+
And now deny everything else:
+---------------------------------------------------------------------------+
|$> iptables -P INPUT DROP   #only if the first two are succesful           |
+---------------------------------------------------------------------------+
-- 
Tip | Per avviare un programma grafico non c'è bisogno di caricare l'intero
of  | GNOME o KDE, infatti può bastare caricare il solo programma e il server
the | grafico.  Per esempio, se si vuole solo leggere un file PDF:
day | 
0013| $ xinit /usr/bin/xpdf file.pdf

 iptables -A FORWARD -j DROP
Quest'ultima e' inutile; la chain forward si occupa di analizzare i
pacchetti che vengono routati attraverso la macchina, nel tuo caso solo i
pacchetti che provengono, o che sono destinati, alla rete 
192.168.0.0/24
 che
hai gia' compreso nelle due regole precedenti.
Ti consiglio, a meno tu non sappia esattamente cosa stai facendo (e a spanne
sembra di no) di leggere il documento che ti ha consigliato Massimiliano che
tra le tue regole non si vede nemmeno un ESTABLISHED,RELATED (e quello e'
*fondamentale*).
Ciao.
-- 
Sono un servitore del Fuoco Segreto, e reggo la fiamma di Anor.
A nulla ti servira' il fuoco oscuro, fiamma di Udun.
Torna nell'Ombra! Non puoi passare.

 *fondamentale*).
Giusto.
-- 
Tip | [RPM] Cosa si fa se, per intallare un programma, ne viene richiesto un
of  | altro che a sua volta fa riferimento al primo?  Si scaricano tutti i
the | file necessari, li si mette in una unica cartella e poi da console:
day | 
0021| # rpm -Uvh *.rpm

 detto non si applica.)
Si, hai ragione. Mi sono fatto trarre in inganno da due cose che faccio
abitualmente quando ho a che fare con un firewall:
	1- Metto sempre regole anti-spoofing almeno sull'interfaccia esterna
	2- Condisco regole delicate come queste (anche se io senza stateful
	non mi ci sarei neanche messo a fare un firewall) con particolari
	tipo l'interfaccia di arrivo, di uscita, in generale con piu'
	particolari possibili cosi' viene difficile che una regola possa
	essere usata per un fine diverso da quello per cui l'ho progettata.
Spero di essermi fatto capire, anche se temo il contrario ;)


 Spero di essermi fatto capire, anche se temo il contrario ;)
No no, ti sei fatto capire, e condivido. :-)
-- 
Tip | Per sostituire una stringa (o una espressione regolare) con un'altra:
of  | 
the | $ echo 'Buona Sera' | sed 's/Sera/Serata/g'          # flusso di dati
day | $ sed 's/Sera/Serata/g' vecchio_file > nuovo_file    # in un file (1)
0029| $ sed 's/\(sera\)/\1ta/g' vecchio_file > nuovo_file  # in un file (2)