PDA

View Full Version : Condividere ADSL: Ubuntu e XP


Ninja_3D
17-08-2007, 18:35
Ciao a tutti,
Dovrei condividere la connessione a Internet che ho sul mio PC con Ubuntu 7.04 con un client XPpro.

Ho cercato sulla rete/forum/guide varie ma da me non sembra funzionare nulla.

Il modem di Alice è collegato alla eth0
eth0 collegata al modem alice gate2+ (IP 192.168.1.250 - 255.255.255.0 - GW 192.168.1.1<--- ip del router)

eth1 (IP 192.168.251 - 255.255.255.0 GW nessuno) collegata al portatile con XP con un cavo ethernet incrociato.

Il portatile ha IP 192.168.1.xx - 255.255.255.0 - GW 192.168.1.250

Prima di rompervi le scatole ho provato di tutto ma non c'è verso di farlo funzionare:
-varie soluzioni con ipforward non so dove mettere le mani e rischio di fare casino
-firestarter mi areno sulle policy e per me lui fa un po di caos...

I 2 pc si pingano tranquillamente e condividono anche cartelle e file.
Ci vorrebbe una guida semplice come quella di Webwolf su Samba
C'è qualcuno che mi può seguire passo passo?
Grazie infinite
F.

W.S.
17-08-2007, 19:22
le 2 schede devono essere in subnet diverse:

eth1 metti 192.168.0.250 - 255.255.255.0 - gw nessuno
XP metti 192.168.0.xxx - 255.255.255.0 - gw 192.168.0.250
DNS di XP gli stessi che trovi in /etc/resolv.conf

il forward deve essere abilitato:
echo "1" > /proc/sys/net/ipv4/ip_forward

è possibile che, se il router non è settato per far passare xp, devi nattarlo da ubuntu:

iptables -t nat -I POSTROUTING -o eth0 -s 192.168.0.xxx -j MASQUERADE

dove 192.168.0.xxx è l'ip di XP

... dovrebbe essere tutto :)

Ninja_3D
17-08-2007, 19:45
Ma se gli IP hanno 2 subnet diverse mi perde la condivisione dei file/cartelle che è l'unica cosa che funzia, dopo come ovvio al problema?

Quindi ricapitolo e poi provo...
UBUNTU [eth0] 192.168.1.250 - 255.255.255.0 - GW 192.168.1.1
UBUNTU [eth1] 192.168.0.251 - 255.255.255.0 - GW nessuno
XP 192.168.0.XXX - 255.255.255.0 - GW 192.168.0.251 con DNS copiati dal file resolv.conf

Abilito IP-forward con:
echo "1" > /proc/sys/net/ipv4/ip_forward

e abilito la Network Address Translation con iptables:
iptables -t nat -I POSTROUTING -o eth0 -s 192.168.0.xxx -j MASQUERADE

Tutto questo va effettuato solo una volta anche dopo un eventuale riavvio?

Vado a provare e faccio sapere.
Intanto grazie 1000
F.

Ninja_3D
17-08-2007, 20:59
Niente da fare... non funzia :mc:

Mr.Bano
18-08-2007, 06:39
Rispondo in supervelocità senza aver capito molto la configurazione..
Comunque su due piedi se hai possibilità di attaccarti al modem/router usa quell indirizzo come gateway, altrimenti prova ad impostare quello del pc.

ps:

eth1 (IP 192.168.???.251 - 255.255.255.0 GW nessuno)

Ninja_3D
18-08-2007, 13:04
purtroppo non ho la possibilità di collegare entrambi i pc al router perchè nel tubo ci fosso far passare solo un cavo.... l'impianto è vecchio.
Ho fatto passare quello che collega Router a PC(ubuntu) ma con il portatile volevo
collegarmi solamente al PC(Ubuntu) e navigare... non mi sembrava una cosa così assurda ma è diventata un incubo e ora sta diventando una sfida...

o ce la faccio o ce la faccio...

Quindi... sono a piedi almeno con il pc con win

Uff...quando non riesco a capire dove sbaglio mi faccio schifo da solo... :muro:
F.

Mr.Bano
18-08-2007, 16:45
si dicevo.. (se ho capito almeno spero il problema) io proverei qualcosa tipo:

se era per XP:
xp: IP 192.168.1.10 - SM 255.255.255.0 - GW l' ip del router
ricordati di abilitare ICS (condivisione della connessione).
linux: IP 192.168.1.20 - SM 255.255.255.0 - GW 192.168.1.10

se per linux nel caso specifico ti basta inserire l' ip di questa macchina (nel mio esempio -fatto a caso- 192.168.1.20) sul client windows come gw e abilitare il forward dei pacchetti ma tenendo i vari pc (quelli che comunicano tra loro) sulla stessa rete/subnet mask.

MrAsd
18-08-2007, 17:48
Quindi ricapitolo e poi provo...
UBUNTU [eth0] 192.168.1.250 - 255.255.255.0 - GW 192.168.1.1
UBUNTU [eth1] 192.168.0.251 - 255.255.255.0 - GW nessuno
XP 192.168.0.XXX - 255.255.255.0 - GW 192.168.0.251 con DNS copiati dal file resolv.conf

Abilito IP-forward con:
echo "1" > /proc/sys/net/ipv4/ip_forward

e abilito la Network Address Translation con iptables:
iptables -t nat -I POSTROUTING -o eth0 -s 192.168.0.xxx -j MASQUERADE



Dovrebbe funzionare... secondo me c'è qualche altra policy di iptable che interferisce. Ti consigli di usare gli script già fatti che trovi nel masquerading howto (http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/IP-Masquerade-HOWTO.html#TESTING-THE-MASQED-PC); adatti lo script alla tua configurazione, lo lanci e se ancora non funziona temo che l'unica cosa che tu possa fare sia di procedere per tentativi, a colpi di ping, per capire dove stia il problema (
nell'howto c'e' scritto tutto comunque, sommariamente, basta pingare da Xp eth1 ed eth0 finché non si capisce dove stia la magagna).

Ninja_3D
18-08-2007, 18:34
nel primo post avevo specificato che i pc si pingano e che sembra tutto ok
ovvero:
ROUTER 192.168.1.1
UBUNTU [eth0] 192.168.1.250 - 255.255.255.0 - GW 192.168.1.1
UBUNTU [eth1] 192.168.0.251 - 255.255.255.0 - GW nessuno
XP - - - - - - - - - 192.168.0.XXX - 255.255.255.0 - GW 192.168.0.251 con DNS copiati dal file resolv.conf

Schema di collegamento:

WEB------Router------UBUNTU ETH0
UBUNTU ETH1-------- XPpro
PROVE EFFETTUATE:

**DA XP
--------Ping 192.168.0.251 ----- OK
--------Ping 192.168.1.250 ----- OK
--------Ping 192.168.1.1 -------- RICHIESTA SCADUTA

**Da UBUNTU
(ah! non so come fare il ping da una scheda ben precisa visto che XP è comunque collegato con la ETH1 immagino che ubuntu usi quella giusto?)

--------Ping 192.168.0.XXX ----- OK

Che altre prove devo fare?
Penso che sia ovvio che se non pingo il router mi posso anche scordare il web su XP.

Non sono un fenomeno con l'inglese e tradurmi tutto l'HOWTO sull'IP MASQUERADE mi sembra una roba improba....

Stavo pensando... nella vecchia azienda dove lavoravo mi sembra avessimo un Proxy server... è più complicato da configurare o mi semplifica la vita?
Grazie per l'eventuale aiuto
F.

MrAsd
18-08-2007, 19:11
**DA XP
--------Ping 192.168.0.251 ----- OK
--------Ping 192.168.1.250 ----- OK
--------Ping 192.168.1.1 -------- RICHIESTA SCADUTA


Come immaginavo: il problema sta nel fatto che in tutte le guide che ho visto il masquerading funziona nel momento in cui il computer con Linux ha una connessione diretta ad Internet ma siccome stai già utilizzando un altro gateway (ossia il tuo router) le richieste si bloccano.
Se non vuoi impazzire e ti basta l'accesso al web, in effetti l'idea del proxy non è malvagia: installi squid su Ubuntu e poi configuri Ie o Firefox sotto Xp per connettersi al proxy su 192.168.0.251


In ogni caso indagherò sulla questione del masquerading anche perché è un problema che potrebbe interessarmi in futuro...

Ninja_3D
19-08-2007, 00:54
Allora c'era qualcosa che non andava.... mh interessante...
vuol dire che io non sbagliavo....

Se per caso riesci a darmi una mano a configurare Squid te ne sarei grato...
ovviamente anche link a guide tipo quella di webwolf per Samba sono più che graditi.
(per la cronaca userei anche webmin che graficamente è molto comodo ma la documentazione è quasi tutta in inglese :mc: )

Ma come fanno a dire che si condivide la connessione...

Firestarter a me infatti non funzia..... ma proprio per nulla, se lo avvio non navigo più neppure sull'Host UBUNTU e poi figuriamoci dal client XP. MAH!!

Grazie del chiarimento e mi raccomando fammi sapere se risolvi!!
F.

MrAsd
19-08-2007, 11:23
Se per caso riesci a darmi una mano a configurare Squid te ne sarei grato...
ovviamente anche link a guide tipo quella di webwolf per Samba sono più che graditi.


Visto che devi collegare soltanto una manciata di computer ti consiglio di non complicarti la vita con un trasparent proxy ma di configurare soltanto squid seguendo ad esempio questa guida: qui (https://faberlibertatis.org/wiki/Squid_Mini_HOWTO).

Se invece volessi approfondire il discorso ti puoi divertire finché vuoi usando questo http://www.merlinobbs.net/Squid-Book/HTML/

W.S.
20-08-2007, 11:32
Allora c'era qualcosa che non andava.... mh interessante...
vuol dire che io non sbagliavo....

Bhe, vuol dire che non hai capito come funziona, quindi non è detto che l'errore non fosse tuo.

Ma come fanno a dire che si condivide la connessione...
In che senso?

Comunque per pingare tramite un'interfaccia specifica basta usare l'opzione -I, come riportato da "man ping"

Per verificare che l'inoltro dei pacchetti sia corretto usa il comando "route -n", visualizza la tabella delle rotte e permette di capire se il problema è la macchina linux che non sa dove mandare i pacchetti o altro.

La "condivisione di file e cartelle" funziona a prescindere dalla subnet, basta avere il nome del computer o l'IP. L'unica cosa che da problemi è forse la ricerca automatica, quella che permette di vedere tutti i pc della rete.

Ninja_3D
20-08-2007, 15:23
Bhe, vuol dire che non hai capito come funziona, quindi non è detto che l'errore non fosse tuo.

Non vorrei passare da presuntuoso... intendevo che quando non sai cosa stai facendo se sbagli anche la sintassi non ti accorgi di nulla... tutto qua.

In che senso?
Comunque per pingare tramite un'interfaccia specifica basta usare l'opzione -I, come riportato da "man ping".

Visto... grazie comunque

Per verificare che l'inoltro dei pacchetti sia corretto usa il comando "route -n", visualizza la tabella delle rotte e permette di capire se il problema è la macchina linux che non sa dove mandare i pacchetti o altro.

eccola qui:

Kernel IP routing table
Destination__Gateway______Genmask______Flags__Metric_Ref__Use Iface
192.168.0.0__0.0.0.0________255.255.255.0___U______0____0_____0__eth0
192.168.0.0__0.0.0.0________255.255.255.0___U______0____0_____0__eth1
0.0.0.0______192.168.0.50___0.0.0.0_________UG_____0____0_____0__eth0

Anche se userò un proxy mi piacerebbe risolvere il problema ugualmente.
Grazie per la pazienza!!! aka [scusate se sono "gnucco"]
F.

W.S.
21-08-2007, 10:22
eccola qui:

Kernel IP routing table
Destination__Gateway______Genmask______Flags__Metric_Ref__Use Iface
192.168.0.0__0.0.0.0________255.255.255.0___U______0____0_____0__eth0
192.168.0.0__0.0.0.0________255.255.255.0___U______0____0_____0__eth1
0.0.0.0______192.168.0.50___0.0.0.0_________UG_____0____0_____0__eth0

Anche se userò un proxy mi piacerebbe risolvere il problema ugualmente.
Grazie per la pazienza!!! aka [scusate se sono "gnucco"]
F.

:) tutti siamo "gnucchi".

Ma non hai 2 subnet, ne hai solo una: 192.168.0.0
Chi è 192.168.0.50 ?

Comunque, per far funzionare la pappardella scritta prima, il comando route -n deve tornare una cosa del tipo:

192.168.1.0__0.0.0.0________255.255.255.0___U______0____0_____0__eth0
192.168.0.0__0.0.0.0________255.255.255.0___U______0____0_____0__eth1
0.0.0.0______192.168.1.1___0.0.0.0_________UG_____0____0_____0__eth0

posto che:
192.168.1.1 è l'ip del router e sta attaccato a eth0.

La "tabella" che visualizza il comando route, indica come vengono instradati i pacchetti in base alla loro destinazione:
le prime 2 righe definiscono che i pacchetti destinati alle classi 192.168.0.0 e 192.168.1.0 (entrambe 255.255.255.0) vanno inviati rispettivamente sulle interfacce eth1 e eth0.
L'ultima riga, definisce cosa fare con i pacchetti con destinazioni diverse dalle precedenti (0.0.0.0 con netmask 0.0.0.0 = qualsiasi destinazione). Siccome questi pacchetti non sono destinati a nessuna delle reti a cui siamo connessi (ne eth0 ne eth1), viene definito un gateway (192.168.1.1) sulla eth0 a cui inviarli, esso avrà il compito di inoltrare i pacchetti nella direzione giusta.

Ninja_3D
22-08-2007, 11:28
Purtroppo ho un'altra apparecchiatura collegata alla rete con IP 192.168.1.1 e 192.168.0.50 è il router.

quindi devo cambiare l'IP classe 192.168.0.0 di (esempio) eth1 con uno di classe 192.168.1.0 quindi.... (mi sembra più logico non è per fare il bastian contrario... :) )

Kernel IP routing table
Destination__Gateway______Genmask______Flags__Metric_Ref__Use Iface
192.168.0.0__0.0.0.0________255.255.255.0___U______0____0_____0__eth0
192.168.1.0__0.0.0.0________255.255.255.0___U______0____0_____0__eth1
0.0.0.0______192.168.0.50___0.0.0.0_________UG_____0____0_____0__eth0

e dopo?
(una parentesi per sapere se devo stoppare servizi tipo proxy/firewall o cos'altro per vedere se le modifiche di configurazione funzionano, anche
perchè la vedo dura verificare il funzionamento con un firewall o un proxy che rompono le balle... a se si come?)

Un GRAZIE maiuscolo a tutti
F.

W.S.
22-08-2007, 17:35
perfetto.
Per vedere se funziona basta pingare da XP all'esterno, se non va non funziona (mavvà? :) )

Per "stoppare" il firewall (nel senso che lasci passare tutto il traffico in transito) basta il comando:
iptables -t filter -I FORWARD -j ACCEPT

per abilitare l'inoltro dei pacchetti ricordati di settare
echo "1" > /proc/sys/net/ipv4/ip_forward

è molto probabile che dovrai inserire la regola, altrimenti il router potrebbe inoltrare i pacchetti di xp verso la parte sbagliata.
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

altri test:
- ping da xp a ubuntu
- ping da ubuntu a router
- ping da xp a router

facci sapere...