View Full Version : spiegazione iptables.....
roxy1974
03-01-2004, 10:29
Ciao, volevo chiedere gentilmente a questo forum se qualcuno poteva spiegarmi concettualmente il comando
di linux x attivare la condivisione internet in una rete LAN dove il PC LINUX fa da gateway.
Il comando e' iptables -t nat -A POSTROUTING -d ! 192.168.0.0/24 -j MASQUERADE.
Leggendo i vari HOW-TO e in giro , la traduzione del comando e': nella tabella nat aggiungi in postrouting(cioe' i pacchetti
in uscita) il mascheramento di tutti i pacchetti che non hanno destinazione 192.168.0.0 a 192.168.0.254.
Ho provato che anche il comando iptables -t nat -A POSTROUTING -o ippp0(cioe' in suse 9.0 il collegamendo DIAL-UP) -j MASQUERADE
e anche questo abilita la condivisione internet.
Praticamente il comando MASQUERADE e' una versione speciale si SNAT, permette il rindirizzamento a indirizzi dinamici, quindi nei comandi precedenti lui permette(masquerade)
ai pacchetti di essere reindirizzati dal NAT da inidirizzi provenienti dalla rete lan a inidirizzi x INTERNET?
Beh se mi volete dare una spiegazione migliore.........perche' su questo concetto mi sono un po' perso........
ciao, innanzitutto scusa se rispondo al tuo 3d per farti una domanda e non per darti una risposta; ho appena spostato il mio modem adsl interno su linux mandrake, installato e funzionante dopo una mattinata di lavoro.
Questo è lo script che uso per il firewall-nat :
iptables -t nat -A POSTROUTING -d ! 192.168.1.0/24 -j MASQUERADE
iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -j DROP
la domanda è : perchè sul pc client (winXp) riesco a navigare solo su alcuni siti, non riesco a scaricare la posta mentre da linux faccio quello che voglio?
Lo script l'ho fatto minimale apposta (dopo piano piano lo sistemo) per non avere casini (anche levando le ultime tre righe e lasciando solo il nat non funge lo stesso)
il server ha ip 192.168.1.1 mentre il client con il 2 finale (la connessione ad internet si appoggia al pppoe)
devo dare altri comandi di nat?
#!/bin/sh
03-01-2004, 14:40
Originariamente inviato da roxy1974
Ciao, volevo chiedere gentilmente a questo forum se qualcuno poteva spiegarmi concettualmente il comando
di linux x attivare la condivisione internet in una rete LAN dove il PC LINUX fa da gateway.
Il comando e' iptables -t nat -A POSTROUTING -d ! 192.168.0.0/24 -j MASQUERADE.
Leggendo i vari HOW-TO e in giro , la traduzione del comando e': nella tabella nat aggiungi in postrouting(cioe' i pacchetti
in uscita) il mascheramento di tutti i pacchetti che non hanno destinazione 192.168.0.0 a 192.168.0.254.
Ho provato che anche il comando iptables -t nat -A POSTROUTING -o ippp0(cioe' in suse 9.0 il collegamendo DIAL-UP) -j MASQUERADE
e anche questo abilita la condivisione internet.
Praticamente il comando MASQUERADE e' una versione speciale si SNAT, permette il rindirizzamento a indirizzi dinamici, quindi nei comandi precedenti lui permette(masquerade)
ai pacchetti di essere reindirizzati dal NAT da inidirizzi provenienti dalla rete lan a inidirizzi x INTERNET?
Beh se mi volete dare una spiegazione migliore.........perche' su questo concetto mi sono un po' perso........
Il Masquerade è un SNAT: lo devi usare quando hai un'interfaccia che ha un ip dinamico. Mi spiego meglio: se tu avessi un'ip fisso pubblico su una scheda di rete (connessione in fibra ottica) potresti usare il nat in questo modo:
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to $ip-pubblico
Ora poiche' il tuo ip non è fisso se volessi usare la regola così com'e' dovresti scrivere ogni volta il tuo ip nella regola. Mettendo masquerade eviti questo problema. Non pensare a SNAT, DNAT o MASQUERADE in termini di reindirizzamento, ma pensali in termine di traduzione degli indirizzi. Iptables cambia l'indirizzo sorgente o destinazione del pacchetto, mentre il kernel in fase di routing decision decide dove va a finire il pacchetto. Se l'indirizzo di destinazione o di origine viene alterato, allora il pacchetto viene rediretto, ma questo è un effetto sul routing di una traduzione degli indirizzi.
La regola che hai scritto:
iptables -t nat -A POSTROUTING -d ! 192.168.0.0/24 -j MASQUERADE
ha lo stesso effetto di:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
L'unica differenza è che la prima dice:
- maschera tutti i pacchetti che hanno come destinazione un ip non appartenente alla lan
mentre la seconda dice:
- maschera tutti i pacchetti che escono dall'interfaccia ppp0
La prima va bene con quelsiasi interfaccia, mentre la seconda solo con ppp0.
#!/bin/sh
03-01-2004, 14:42
Originariamente inviato da Dwayne
ciao, innanzitutto scusa se rispondo al tuo 3d per farti una domanda e non per darti una risposta; ho appena spostato il mio modem adsl interno su linux mandrake, installato e funzionante dopo una mattinata di lavoro.
Questo è lo script che uso per il firewall-nat :
iptables -t nat -A POSTROUTING -d ! 192.168.1.0/24 -j MASQUERADE
iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -j DROP
la domanda è : perchè sul pc client (winXp) riesco a navigare solo su alcuni siti, non riesco a scaricare la posta mentre da linux faccio quello che voglio?
Lo script l'ho fatto minimale apposta (dopo piano piano lo sistemo) per non avere casini (anche levando le ultime tre righe e lasciando solo il nat non funge lo stesso)
il server ha ip 192.168.1.1 mentre il client con il 2 finale (la connessione ad internet si appoggia al pppoe)
devo dare altri comandi di nat?
Posta l'output di iptables -L e di iptables -t nat -L.
Se non hai attivato un proxy se con xp nevighi devi andae ovunque. Che distro usi?
roxy1974
03-01-2004, 15:01
molto strano xche cosi' ti dovrebbe funzionare tutto!!!! come da me fa'.
potresti fare iptables -t nat -nL dirmi cosa ti dice?
Originariamente inviato da #!/bin/sh
Posta l'output di iptables -L e di iptables -t nat -L.
Se non hai attivato un proxy se con xp nevighi devi andae ovunque. Che distro usi?
eccoli
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 192.10.10.0/24 anywhere
ACCEPT all -- anywhere 192.10.10.0/24
DROP all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere !192.10.10.0/24
MASQUERADE all -- anywhere !192.10.10.0/24
MASQUERADE all -- anywhere !192.10.10.0/24
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
non fate caso agli ip diversi ;)
P.S sono su mandrake 9.1 e su xp non ho nessun proxy
ma se il nat non va, come caspio faccio a postare sul forum? :confused:
oltretutto adesso, se la connessione fra client e server rimane inattiva per un pò, si impasta la connessione e devo far ripartire uno dei due pc (o da win xp disattivare e riattivare la scheda di rete)
ma a sto linux, che gli succede?
roxy, ormai t'ho rubato il 3d :D
come faccio a dire alla mandrake di impostare sulla scheda di rete i 100mb full duplex e non di negoziare la velocità?
roxy1974
03-01-2004, 17:02
Originariamente inviato da Dwayne
eccoli
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 192.10.10.0/24 anywhere
ACCEPT all -- anywhere 192.10.10.0/24
DROP all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere !192.10.10.0/24
MASQUERADE all -- anywhere !192.10.10.0/24
MASQUERADE all -- anywhere !192.10.10.0/24
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Allora fa da console iptables -t nat -D POSTROUTING 2 , 2 volte , praticamente elimini nella tua catena POSTROUTING la 2 e 3 regola ( che una volta eliminata la seconda la terza diventa seconda )
praticamente ti rimane cosi' :
B]iptables -t nat -L [/B]
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere !192.10.10.0/24
Non si sa mai meglio togliere le righe doppie
grazie roxy, ma rimane sempre tutto uguale :(
il forum va, il sito www.tin.it no anche se pingandolo lo trovo :confused: (e come quello anche altri ovviamente)
roxy1974
03-01-2004, 17:32
ma ....una cosa il DNS nel server e' stato impostato? e se si in XP hai messo come DNS il server?
Originariamente inviato da roxy1974
ma ....una cosa il DNS nel server e' stato impostato? e se si in XP hai messo come DNS il server?
su linux ho messo in resolv.conf i dns della tin, lo stesso ho fatto sulla scheda di rete in windows (cioè sempre i dns di tin)
la cosa che mi lascio perplesso è che se per esempio pingo tin.it lo trovo, se provo ad accederci mi sta 10 minuti a caricare e mi dice tempo esaurito (come la posta, ma non tutte le caselle, una sola)
roxy1974
03-01-2004, 17:41
un attimo linux ti naviga? e in xp hai qualche firewall? non e' che hai attivo quello sulla lan?
Originariamente inviato da roxy1974
un attimo linux ti naviga? e in xp hai qualche firewall? non e' che hai attivo quello sulla lan?
innanzitutto ancora grazie che mi dai una mano ;)
linux naviga benissimo, windows non ha firewall (ho zone alarm installato ma l'ho chiuso, quello di windows xp non l'ho mai abilitato)
ho provato a mettere pure
iptables -A FORWARD -j ACCEPT
cioè a prendere tutto ma fa sempre uguale, ho provato con iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE al posto del mio ma niente, sempre tutto uguale
comincia a venirmi il sospetto che sia windows a farmi qualche strano scherzo :rolleyes:
roxy1974
03-01-2004, 17:51
a questo punto credo anche io che sia xp, come e' configurato?
il problema di xp è che non c'è niente da configurare, metti ip della scheda, subnet mask, gateway, dns e dovrebbe andare
ho provato a disabilitare il firewire e la scheda dvb (che windows vede come schede di rete), ma nemmeno quello è servito
nessuno ha un firewall con iptables?
vi incollo anche l'output di route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.100.1 * 255.255.255.255 UH 0 0 0 ppp0
192.10.10.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 192.168.100.1 0.0.0.0 UG 0 0 0 ppp0
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.