Newsgroup: it.comp.os.linux.iniziare
Titolo: Problema condivisione connessione internet

Ho un PC con Mandrake 9.2 connesso ad internet con ADSL modem USB. Ho
collegato questo PC con un client WinXP. Da un punto di vista della
rete nessun problema (si pingano fra di loro etc...) non riesco però a
far condividere la connessione internet al client.
Ho seguito diversi tutorial e alla fine faccio sempre le stesse cose
ma il problema non si risolve:
echo "1" > /proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_nat
modprobe ipt_MASQUERADE
iptables -A POSTROUTING -t nat -o ppp0 -j MASQUERADE
Col client riesco a pingare l'indirizzo IP interno ed esterno del
Gataway Linux. ma non riesco ad andare oltre.
Sul client ho impostato il Gataway e i DNS di Alice oltre al suo
indirizzo IP e mask.
Avete una soluzione a questo problema?
Grazie
	Luca.
P.S: se sul gataway uso WinXP nessun problema nella condivisione.

 Avete una soluzione a questo problema?
Con cosi' pochi dati no. Verifica il firewall.
Davide
-- 
| O'Reilly's book about running W95 has a frog as the cover animal. 
| Makes sence; both have lots of warts and croak all the time.  --
| Michael Kagalenko 
| 

firewall consenta ai pacchetti dal client di passare su internet.
Se non sbaglio l'ip_forwarding l'ho abilitato con 
echo "1" > /proc/sys/net/ipv4/ip_forward
Per abilitare il masquereding cosa devo fare?
Per il resto, sul client ho messo come gataway l'indirizzo IP interno
del server e i DNS quelli di Alice.
Il firewall l'ho disabilitato dal DrakeX però dimmi se dovevo fare
qualcos'altro.


 Per abilitare il masquereding cosa devo fare?
C'e' il masquerading-howto per questo.
L'unica cosa che mi viene in mente e' il firewall.
Davide
-- 
| Windows 2000 is more secure than Linux...  Since the machine is
| offline half of the time because of crashes, it cannot be accessed
| globally, therefore producing higher security.      -- From a
| Slashdot.org post 

L'unica cosa che mi viene in mente e' il firewall.
Oltre a disattivarlo non saprei che fare, magari devo controllare
qualche file.
Cmq grazie lo stesso!
Luca.


 iptables -A POSTROUTING -t nat -o ppp0 -j MASQUERADE
I client sono  windows o linux?  Nel primo caso  -alcune- volte (e non
chiedermi perche',  sembra un mistero)  ho -dovuto- installare  un dns
(anche solo caching) in rete locale per far andare le windows in rete.
Prova  a pingare  da un  client un  ip numerico  (google,  ad esempio:
66.102.11.99), se  risponde il problema potrebbe essere  quello che ti
ho descritto.
Se no, si va di tcpdump...
-- 
Vuoi fare colpo su di lei con me?
Fai colpo su di lei con me! Fai colpo su di lei con me!
[Dr. Gonzo : Paura e delirio a Las Vegas]

 
Il client è WinXP. Dal client riesco al massimo a pingare l'indirizzo ip
esterno del server ma non oltre. Se faccio un ping all'indirizzo ip di
google niente da fare, mi dice "host sconosciuto".
Inoltre ho notato una cosa un pò strana: in DrakXservices il modulo
ip_tables compare "fermato" nonostante compaia quando faccio lsmod. Clicco
su "attiva" ma non fa niente mentre se clicco su "stop" fa il flush delle
tabelle.
Ciao.

 tabelle.
Non conosco  i tool che usi, in  ogni caso controlla se  la regola del
masquerade che giustamente hai messo compare nell'output di 
iptables -L -v -t nat -n
Poi proviamo con tcpdump.


 
Allora iptables -L mi dà come output:
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
iptables -L -v -t nat -n:
Chain PREROUTING (policy ACCEPT 24 packets, 1637 bytes)
 pkts bytes target     prot opt in     out     source              
destination
Chain POSTROUTING (policy ACCEPT 265 packets, 8422 bytes)
 pkts bytes target     prot opt in     out     source              
destination
    0     0 MASQUERADE  all  --  *      ppp0    
0.0.0.0/0
 
0.0.0.0/0
Chain OUTPUT (policy ACCEPT 265 packets, 8422 bytes)
 pkts bytes target     prot opt in     out     source              
destination
Ciao.

 
0.0.0.0/0
Coerente con quello che avevi postato, le regole sembrano giuste.
Ora  che  mi   viene  in  mente,  'cat  /proc/sys/net/ipv4/ip_forward'
restituisce il valore 1 ?
-- 
finche' c'e' shell c'e' speranza.

 restituisce il valore 1 ?
Si. 

 Si. 
Riproviamo a debuggare la cosa.
Sul  client  lancia  un   ping  a  216.239.59.104  (sempre  google)  e
contemporaneamente sul server tieni monitorati gli output dei comandi:
tcpdump -n -v -i eth0 icmp and host 216.239.59.104
tcpdump -n -v -i ppp0 icmp and host 216.239.59.104
Dove  eth0  e'  l'interfaccia  interna   (verso  la  lan)  e  ppp0  e'
l'interfaccia esterna.  Dovresti vedere sull'interfaccia interna degli
echo  request  provenienti  dall'  IP  del tuo  host  in  LAN,  mentre
sull'interfaccia esterna  degli echo request,  ma questa volta  con il
tuo  indirizzo pubblico  come  sorgente (cosi'  verifichi  che il  NAT
funzioni).
Controlla inoltre (non ricordo  se l'avevi gia' fatto) che l'indirizzo
di windows (che ottieni con  ipconfig) sia consistente con indirizzo e
netmask dell'interfaccia  interna della linux-box.   Controlla inoltre
col comando route print che la linux-box sia il default gateway.


 col comando route print che la linux-box sia il default gateway.
Tutto OK.
Grazie per la disponibilità!
Luca.

 Grazie per la disponibilità!
Figurati,  spero  piu'  che  altro  di riuscire  a  risolvere  i  tuoi
problemi, prima o poi ;-)


 impostiazioni delle interfacce di rete (ifconfig).
Allora con ifconfig:
eth0      Link encap:Ethernet  HWaddr 00:E0:18:A9:F3:0E
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:24 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:1730 (1.6 Kb)  TX bytes:2460 (2.4 Kb)
          Interrupt:10 Memory:e5800000-e5801080
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:140 errors:0 dropped:0 overruns:0 frame:0
          TX packets:140 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:10566 (10.3 Kb)  TX bytes:10566 (10.3 Kb)
ppp0      Link encap:Point-to-Point Protocol
          inet addr:82.51.136.218  P-t-P:192.168.100.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:1944 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2370 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:167278 (163.3 Kb)  TX bytes:2355339 (2.2 Mb)
Con route -n:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use
Iface
192.168.100.1   0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         192.168.100.1   0.0.0.0         UG    0      0        0 ppp0
Ciao!

 0.0.0.0         192.168.100.1   0.0.0.0         UG    0      0        0 ppp0
Le rotte sono corrette.
Non so piu' che dirti :(


 
Secondo me la cosa più strana è vedere in quel tool grafico del Kde
l'iptables fermato quando in realtà è caricato come modulo. Cercherò di
indagare ulteriormente su questo fatto ;-)
Grazie,
        Luca.

 indagare ulteriormente su questo fatto ;-)
Indagare  sul fatto  sicuramente male  non fa,  ma dubito  che  sia un
problema di iptables. Se iptables -L da' output significa che iptables
e' attivo.
Mi dispiace di non esserti  stoto molto d'aiuto, se riesci a risolvere
fammelo sapere.
Ciao.


 
Usando Webmin sono riuscito a far passare il ping dal client verso l'esterno
(216.239.59.104), il problema è che non avviene il masquerading! Nel senso
i pacchetti rimangono con lo stesso indirizzo IP mittente del client:
tcpdump -n -v -i ppp0 icmp and host 216.239.59.104
22:15:47.174265 192.168.0.2 > 
216.239.59.104
: icmp: echo request (ttl 127,
id 867, len 60)
22:15:48.232414 192.168.0.2 > 
216.239.59.104
: icmp: echo request (ttl 127,
id 869, len 60)
22:15:49.233765 192.168.0.2 > 
216.239.59.104
: icmp: echo request (ttl 127,
id 872, len 60)
22:15:50.235007 192.168.0.2 > 
216.239.59.104
: icmp: echo request (ttl 127,
id 874, len 60)
Qualche idea?
Ciao.

 id 867, len 60)
Molto strano, la regola di postrouting che usavi sembrava corretta.
Prova a mettere questa forma piu` completa:
iptables -t nat -A POSTROUTING -o ppp0 -s 
192.168.0.0/24
 -j MASQUERADE
onestamente non mi e` mai successa una cosa del genere...


 onestamente non mi e` mai successa una cosa del genere...
No, niente da fare, inoltre mi sono dimenticato di dire che riesco a far
passare il traffico dalla ppp0 settando nel webmin anche il protocollo
utilizzato TCP, però non sono sicuro che sia giusto metterlo...

 utilizzato TCP, però non sono sicuro che sia giusto metterlo...
Purtroppo non  conosco webmin, ma ti  posso chiedere per  cosa lo stai
usando?  Generi  con quello le regole  di iptables o  stai parlando di
altro?
