Repository 32bit  Forum
Repository 64bit  Wiki

Configurazione di Reti Windows/Linux: differenze tra le versioni

Da Slacky.eu.
(Capitolo 6 - Non funziona niente -)
Riga 285: Riga 285:
Ora dovremmo essere in grado di fare funzionare tutto correttamente: Se non funziona ancora, per darvi un'iniezione di fiducia, andate in "Avanzate" e disabilitate il firewall: se tutto va correttamente significa che qualche regola è troppo restrittiva: trovatela e cambiatela secondo la vostra esigenza.
Ora dovremmo essere in grado di fare funzionare tutto correttamente: Se non funziona ancora, per darvi un'iniezione di fiducia, andate in "Avanzate" e disabilitate il firewall: se tutto va correttamente significa che qualche regola è troppo restrittiva: trovatela e cambiatela secondo la vostra esigenza.
  +
  +
=Capitolo 7 - Voglio vedere Windows e Windows deve vedere Linux! Voglio scambiare i file! -=
  +
  +
'''La soluzione si chiama SAMBA'''
  +
  +
Copio/incollo da http://www.openskills.info un sito veramente ben fatto.
  +
  +
La sezione [global] è praticamente presente in ogni smb.conf.
  +
Qui si definiscono le configurazioni generali riguardanti il server Samba e i suoi comportamenti di default.
  +
  +
Vediamo nel dettaglio alcune opzioni:
  +
  +
'''CONFIGURAZIONI BASE NETBIOS'''
  +
  +
''''Netbios name''''
  +
  +
Definisce il nome NetBios della macchina, così come viene visualizzato in rete. Di default coincide con il nome DNS per la parte relativa all'host (es: pippo.dominio.it prende di default il nome PIPPO). Es.:
  +
<pre> Netbios name = PLUTONE</pre>
  +
  +
''''Server string''''
  +
  +
É il commento che si può leggere visualizzando i dettagli su un host in rete. Non è indispensabile ma può essere utile per indicare le funzioNi o le caratteristiche della macchina. É possibile usare variabili, per esempio:
  +
  +
<pre> Server string = File Server - Samba %v (%h)</pre>
  +
  +
''''Workgroup''''
  +
  +
Definisce il workgroup di cui fa parte il server Samba. Di default il valore è "WORKGROUP", definito in fase di compilazione, ma può essere cambiato. Es.:
  +
  +
<pre> workgroup = INTRANET</pre>

Versione delle 23:27, 9 set 2006

Indice

Capitolo 1 - Requisiti -

Ho realizzato questo piccolo sistema automatizzato per condividere la connessione semplicemente avendo:

  • Una Linux Box connessa ad internet (per ora con il 56K dial-up);
  • Una scheda di rete vecchiotta (Realtek 8029) connessa ad un altro PC con scheda PCMCIA, con installato Windows ME

(ma i passaggi sono simili per qualsiasi versione dell'OS di Redmond)

  • Applicativi software in Linux:
    1. KDE 3.3.0-5
    2. Kernel 2.6.9-1.667
    3. Guardogg

utili i front-end grafici per la configurazione.

  • Applicativi software in Windows (solo lo stretto necessario):
    1. Protocolli TCP/IP installati
    2. Driver di scheda di rete

Capitolo 2 - Configuriamo la Linux Box -

Devo dire la verità, ho usato molto spesso i tool grafici che KDE mi ha messo a disposizione, ma vedremo come fare senza! Tipicamente la configurazione di un host in rete prevede pochi dati fondamentali:

  • Indirizzo IP
  • Subnet Mask
  • Default Gateway
  • DNS Server

Esistono molteplici metodi per configurare il servizio di rete in Linux, molto di quanto viene qui riportato si applica a tutti gli Unix:

  • Editare i singoli file di configurazione del networking (ristartare il servizio per applicare le modifiche);
  • Usare comandi shell come ifconfig, route;
  • Utilizzare strumenti di configurazione con interfaccia a finestra come:
    1. Netconfig
    2. Linuxconf
    3. Webmin

e altri facilmente individuabili su desktop KDE o Gnome.

I file di configurazione sono i seguenti:

 /etc/sysconfig/network 

Contiene le principali configurazioni per il Networking:

  1. Hostname
  2. DomainName
  3. Default Gateway (tipico di RedHat)
 /etc/sysconfig/network-script/ifcfg-XXX 

Directory contenente i file di configurazione delle singole interfacce (tipico di RedHat).

 /etc/hosts 

Contiene il mapping statico fra indirizzi e hostname ed alias.

 /etc/services 

Contiene il mapping tra i numeri di porta e i nomi dei servizi. É un file che solitamente non si modifica, salvo l'aggiiunta di porte e protocolli Custom.

 /etc/host.conf 

Specifica l'ordine secondo il quale il sistema effettuerà la ricerca di informazioni per risolvere gli indirizzi. Usato dalla resolver Library in sistemi con libc versione 5. ordere hosts,bind; specifica di usare prima /etc/hosts e poi il DNS per risolvere gli IP.

 /etc/nsswitch.conf 

Stessa funzione di host.conf nei sistemi con libc versione 6 (glibc). In pratica è sempre megio avere entrambi i file correttamente configurati.

 /etc/resolv.conf 

File di configurazione del client DNS ovvero contiene gli indirizzi del serve DNS e un possibile dominio dell'host e l'ordine di ricerca.

Allora! Partiamo in console e otteniamo i privilegi di root.

Io consiglio di segnarsi ogni singolo passaggio, cosicchè se succede qualcosa sapete esattamente cosa avete fatto e cosa potete modificare per riportare tutto alla normalità.

Siamo in console? Ok, digitiamo allora

 # netconfig 

e ci apparirà un semplice tool per la configurazione della nostra interfaccia di rete (spesso denominata eth0). Premiamo INVIO alla richiesta di configurre la rete.

Se premiamo la SPACEBAR useremo il DHCP per assegnare gli indirizzi IP (che noi non utilizzeremo). Spostiamoci con la freccetta in basso di una riga. Inseriamo l'indirizzo IP, che per semplicità e correttezza vi dico io (tranquilli, non voglio/posso impossessarmi del vostro PC):

 192.168.0.1 

Con questi numeri il nostro PC verrà riconosciuto dalla nostra LAN. Prima di continuare è bene spendere qualche parola sul tipo di protocollo che useremo:

 il Tcp/Ip 

(cioè Transmission Control Protocol/Internet Protocol) lo stesso usato su Internet che garantisce un'elevata affidabilità anche nelle reti molto congestionate. Questo protocollo, nella sua versione 4 (ma è in fase sperimentale lo sviluppo di IPv6, nel quale vengono introdotte nuove feature e una diversa gestione degli indirizzi), attribuisce a ogni interfaccia di rete e a ogni computer un indirizzo, detto IP (della lunghezza di 32 bit, cioè 4 byte) caratterizzato da quattro campi della lunghezza di 8 bit (un byte) separati da un . (punto), ogni campo contiene un numero da 0 a 255 (per un totale di 256 mumeri, quanti se ne possono comporre con un byte).

Senza soffermarci troppo (ce ne sarebbe da pralare veramente tantissimo) chiarimao che ogni IP contraddistingue univocamente una determinata interfaccia (per esempio una schedaa ethernet) o un determinato computer. Per fare distinzione tra Internet e rete locale sono stati riservati a ques'ultimo dei dei range IP determinati a seconda dell'esigenza di chi li usa (se non ci fosse questa distinzione sarebbe probabile che ci siano più interfacce o PC con lo stesso IP sulla Rete). Gli indirizzi tra il 0.0.0.0 e il 127.255.255.255 fanno parte della classe A (nella quale varia il byte, cioè 8 bit, più significativo partendo da sinistra (il primo campo) che identifica la rete di appartenenza, per un totale di 128 reti disponibili (per esempio 0.xxx.xxx.xxx, 1.xxx.xxx.xxx, 2.xxx.xxx.xxx, ecc.) aventi un massimo di 32.554.430 IP ognuna, riservandone una, quella da 10.0.0.0 a 10.255.255.255, per le reti locali. Alla classe B appartengono invece gli IP da 128.0.0.0 a 191.255.255.255 nella quale sono i 16 bit più significativi da sinistra a contraddistinguere la rete (variano quindi i primi 2 campi per ogni classe), lasciando i restanti 2 campi per le interfacce di ogni rete (formata quindi da 65.025 IP) e riservando 16 reti (da 172.16.0.0 a 172.31.0.0) per le Lan. Infine la restante classe C occupa gli indirizzi da 192.0.0.0 a 223.255.255.255 (questa volta con i 24 bit più significativi da sinistra a indicare la rete, ognuna composta da 256 IP) riservando ben 256 reti (da 192.168.0.0 a 192.168.255.0) per le Lan.

Torniamo IN: Ora come maschera di rete (subnet mask) inseriamo

 255.255.255.0 

Ora spostiamoci su OK e battiamo INVIO. Abbiamo assegnato un indirizzo alla nostra schede di rete!

Ora digitiamo

 # ifconfig 

il risultato sarà simile a questo:

eth0 Link encap: Ethernet HWaddr 00:E0:4C:69:79:10
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
[altre righe che non ci interessano]
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host

Analizziamoli: eth0 p la nostra scheda di rete, è una Ethernet-based, ha indirizzo 192.168.0.1 con subnet mask 255.255.255.0. Perfetto!

Volendo utilizzare solo la riga di comando, potremo digitare:

 # ifconfig eth0 192.168.0.1 up netmask 255.255.255.0 

con questo comando abbiamo detto di attivare (up) l'indirizzo 192.168.0.1 per la scheda di rete corrispondente a eth0 avente come netmask 255.255.255.0 (quella per le Classi C), che indica quanti dei 32 bit (in questo caso 8) che identificano un IP verranno riservati per indicare interfacce di rete e quanti per indicare la rete (i restanti 24).

Per controllare che tutto sia andato a buon fine è possibile pingare l'IP della scheda di rete appena attivata con il comando

 
# ping 192.168.0.1 
PING 192.168.0.1 from 192.168.0.1:56(84) bytes of data.
64 bytes from 192.168.0.1:icmp_seq=0 ttl=255 time=703 usec
64 bytes from 192.168.0.1:icmp_seq=1 ttl=255 time=112 usec
64 bytes from 192.168.0.1:icmp_seq=2 ttl=255 time=111 usec
64 bytes from 192.168.0.1:icmp_seq=3 ttl=255 time=113 usec

---192.168.0.1. ping statistics---
4 packets transmitted, 4 paackets received, 0% packet loss
round-trip min/avg/max/mdev = 0.111/0.259/0.703/0.256 ms

Interrompendo l'esecuzione del comando con un ctrl+C. Se l'output è simile allora è stato configurato correttamente.

Per completare l'installazine della nostra scheda di rete rimane soltanto da fare le modifiche opportune alla tabella di instradamento. La tabella di instradamento (routing table) definisce le modalità di trasmissione dei pacchetti IP. In poche parole stabilisce a quale interfaccia di rete va trasmesso un pacchetto IP una volta ricevuto. Anche qui il discorso può farsi molto lungo e noioso, quindi passiamo direttamente a spiegare le procedure che ci occorrono per un corretto funzionamento. Una volta visto che la nostra scheda di rete risponde bene ai nostri ping, eseguiamo (sempre da utente root):

 # route add -net 192.168.0.0 netmask 255.255.255.0 eth0

dove -net indica la rete a cui appartiene l'interfaccia (nel nostro caso abbiamo scelto 192.168.0.xxx, quindi mettiamo 192.168.0.0), netmask ha lo stesso significato che aveva in ifconfig e eth0 indica l'interfaccia sulla quale stiamo agendo.

Capitolo 3 - Masquerade, ma cosa è? -

Ora mi permetto di fare un copia/incolla da Linux-Html.it, veramente ben fatto, che riassume come andare avanti. Mi rendo conto che io stesso non potrei fare di meglio!

Masquerading

Come già accennato tramite Linux abbiamo la possibilità di far "vedere" internet a tutta la nostra rete locale. In questo modo avremo tutti i nostri computer della Lan in Rete, con un solo modem, una sola linea telefonica e una sola connessione. Ovviamente l'IP pubblico (con IP pubblico intendiamo l'IP su internet) sarà uguale per tutti i PC, penserà il nostro gateway con installato Linux a smistare i pacchetti a chi li aveva chiesti e a inoltrare quelli ricevuti. La configurazione del nostro gateway varierà a seconda della versione del kernel presente. Infatti per ogni serie di kernel abbiamo uno strumento diverso che ci permette di agire sul traffico che passa per la nostra rete. Wuesti sono ipfwadm per il kernel 2.0.XX (non presente su nessuna delle recenti distribuzioni, ma ugualmente presente ancora su alcuni PC per la sua leggerezza), ipchains per il kernel 2.2.XX (presente su alcune distribuzioni che ancora non sono passate al nuovo kernel) e il recentissimo iptables per il kernel 2.4.XX (presente nelle ultimissime distribuzioni). Anche se si sta utilizzando un kernel della serie 2.4 è sempre possibile continuare ad usare sia ipfwadm che ipchains, a patto che vi sia il supporto apposito nel kernel [noi usiamo iptables].

É inoltre necessario che sia presente il supporto nel kernel per il masquerading. Per il kernel 2.0.XX quindi è necessario avere abilitato il supporto alle seguenti feature:

Network Firewalls

  • IP:Forwarding/gatewaying
  • IP:firewalling
  • IP:masquerading
  • IP:ICMP masquerading
  • IP:always defragment


Per il Kernel 2.2.XX sono:

Network Firewalls

  • IP:firewalling
  • IP:masquerading
  • IP:ICMP masquerading
  • IP:masquerading special modules support
  • IP:always defragment

Per il kernel 2.4.XX abilitate:

  • Network packet filtering (replaces ipchains)
  • Connection tracking (required for masq/NAT)
  • FTP protocol support
  • IP tables support (required for filtering/masq/NAT)
  • MAC address match support
  • Multiple port match support
  • Packet filtering
  • REJECT target support
  • MIRROR target support (EXPERIMENTAL)
  • full NAT
  • MASQUERADE target suppport
  • REDIRECT target support
  • Packet mangling
  • TOS target support
  • MARK target support
  • LOG target support

Molte delle opzioni per il kernel 2.4.XX non sono strettamente necessarie, ma offono delle innovazioni e delle interessanti caratteristiche. Ad ogni modo sono sufficienti i moduli:

  • ip_table
  • ip_conntrack
  • iptable_nat
  • ipt_MASQUERADE

[Molto tecnico, probabilmente non dovrete preoccuparvene].

prima di tutto abilitiamo l'ip forwarding, che è disabilitato di default:

 # echo "1" > /proc/sys/net/ipv4/ip_forward

Caricate i moduli del kernel, in particolare se ritenete che gli utenti della vostra Lan useranno servizi come ftp o irc dovrete attivare i seguenti moduli:

  • ip_masq_ftp
  • ip_masq_irc

Se avete intenzione di usare anche programmi come CuSeeme o VDO-live per la video conferenza oppure intendete giocare online a Quake ci sono i seguenti moduli:

  • ip_masq_cuseeme
  • ip_masq_vdolive
  • ip_masq_quake

Per caricare i moduli eseguiamo:

 
# modprobe ip_masq_ftp
# modprobe ip_masq_irc

A questo punto dobbiamo dire al kernel cosa fare per far condividere la connessione ad internet a tutti i PC collegati alla rete. Per questo usiamo itables e diamo i seguenti comandi:

 # iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o pppO -j MASQUERADE

Con questo comando impostiamo il mascheramento per tutto quello che non è destinato alla Lan. Se usassimo solo questo comando avremo anche l'effetto indesiderato che ognuno potrebbe usare il nostro gatewat per mascherare i propri pacchetti. Per evitarlo impostiamo iptables perchè faccia il forward solo per la nostra sottorete:

# 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

In questo modo permettiamo il forwarding per i pacchetti che hanno come origine (-s) e come destinazione (-d) la nostra sottorete (192.168.0.0/24) e di scartare tutti gli altri (ultimo comando).

A questo punto se tutto è andato bene dovremo essere riusciti a impostare il nostro Linux per funzionare come gateway della nostra rete logale.

Per automatizzare le cose è comunque sempre conveniente mettere tutti i comondi in uno script (per esempio con nome masq) da rendere eseguibile con:

 # chmod 755 masq

e metterlo quindi in una directory del path (per esempio /usr/bin o /usr/local/bin) in modo da richiamarlo quando ne abbiamo la necessità, oppure inserirlo in uno script di avvio a seconda della distribuzione usata (per esempio uno sotto /etc/rc.d; oppure in /etc/ppp/ip-up che viene caricato in automatico appena ci si collega a Internet usando il PPP (come con i provider).

Capitolo 4 - Ora tocca a Windows -

La configurazione dei client ovviamente varia con ili sistema operativo. Essa richiede comunque solo poche operazioni. Per quanto riguarda Windows 9X, una volta installata la scheda di rete (e averle quindi assegnato un IP tramite Impostazioni --> Pannello di Controllo --> Rete --> TCP/IP [vs scheda di rete] --> Indirizzo IP), dovrete inserire l'indirizzo del gateway appena configurato (192.168.0.1) nel menu che si trova in Impostazioni --> Pannello di Controllo --> Rete --> TCP/IP scheda di rete ..... --> Gateway e clicare su aggiungi.

Altra cosa importante, settare i DNS del vostro provider per permettere a windows di navigare. Inoltre, per potere utilizzare al meglio tutte le risorse, è buona cosa (anzi ottima se non addirittura indispensabile) cosa disabilitare il Firewall (sia quello integrato in Windows XP sia quelli eventualmente installati), altrimenti potrete incappare in fastidiosi problemi del tipo "Windows pinga Linux ma Linux non pinga Windows".

Per sapere che DNS usa il vostro provider fate riferimento all'appendice A.

Una volta eseguito questo, possiamo tranquillamente usare la LAN per connetterci ad internet (c'è anche un semplice toot che vi aiuta a configurarlo, si chiama "Connessione guidata ad internet": specificate che volete utilizzare la LAN. Se utilizzate già una connessione remota sul PC Windows, invece di cancellarla e poi magari riutilizzarla, mettete l'opzione "utilizza accesso remoto se non è disponibile una connessione LAN". Facendo in questo modo prima tenterà di connettersi con la LAN, e se la cosa avrà esito negativo vi chiederà di connettervi utilizzando l'accesso remoto.

É davvero impensabile, ma la cosa che mi ha dato più problemi è stata proprio la configurazione di Windows. Spero che a voi vada meglio !!

RRicapitolando: su Windows occhio ai DNS, algateway e al firewall!! Se non vi funzione niente la soluzione è, nel 90% dei casi, in queste tre cose.

Capitolo 5 - Vogliamo Linux come Client! -

Per quel che riguarda la configurazione di un client con Linux (dopo aver configurato correttamente la scheda di rete presente e averle assegnato un indirizzo IP libero) ci torna utile route, che ci permette anche di impostare il gateway da usare.

In questo caso la sintassi è:

 # route add default gw 192.168.0.1

Per inserire il DNS da usare bisogna modificare il file /etc/resolv.conf (per esempio con un editor di tesot come vi, joe, pico, emacs...ecc) seguendo la sintassi:

nameserver XXX.XXX.XXX.XXX 
nameserver XXX.XXX.XXX.XXX

dove al posto di XXX.XXX.XXX.XXX ci sta l'indirizzo IP del DNS del nostro provider primario (prima riga) o secondario (seconda riga)

Capitolo 6 - Non funziona niente -

Windows dà un bell'errore di timeout. Eppure la nostra scheda di rete lavora (vediamo la luce lampeggiare) e noi siamo in internet. Come mai?

La causa, probabilmente, dta nei settaggi di Guarddog, il nostro tool grafico per la configurazione del firewall. Con i privilegi di root facciamolo partire e aggiungamo una zona denominata "LAN. Come indirizzo mettiamo 192.168.0.1/255.255.255.0, ci permetterà di adeguare le sue impostazioni a tutta la nostra LAN. Ok. ora facciamo in modo che la nostra nuova zona sia in grado di accedere sia alla zona "internet" che alla zona "Locale". Ovviamente, anche "internet" e "locale" dovranno essere in grado di comunicare con "LAN", quindi mettiamo i tick vicino a "LAN" nelle altre due zone di rete predefinite.

Ora spostiamoci in "Protocollo" e andiamo con ordine.

Analizziamo ad una ad una le zone di rete e vediamo cosa possiamo abilitare:

  • Internet:
    1. se vogliamo abilitare la posta ai nostri client, andiamo in "POSTA" e selezioniamo, sotto la olonna LAN, il protocollo POP3 e SMTP.
    2. Sotto "RETE" invece, abilitiamo verso la LAN i protocolli DNS, ident/auth e il ping.
    3. Sotto "trasferimento File" abilitiamo l'HTTP e l'HTTPS. In aggiunta, anche il protocollo FTP.
  • Locale
    1. Abilitiamo tutti i servizi, verso LAN, che hanno a che fare con:
      1. SAMBA
      2. DNS
      3. PING
      4. HTTP
      5. FTP
      6. NETBIOS (da Locale a LAN, mi raccomando)
  • LAN
    1. Abilitiamo verso "Locale" tutto quello che abbiamo impostato in precedenza da "Locale" a "LAN"
    2. Verso Internet, invece, bastano i soliti servizi:
      1. DNS
      2. PING
      3. HTTP
      4. FTP

Il resto possiamo lasciarlo così.

Ora dovremmo essere in grado di fare funzionare tutto correttamente: Se non funziona ancora, per darvi un'iniezione di fiducia, andate in "Avanzate" e disabilitate il firewall: se tutto va correttamente significa che qualche regola è troppo restrittiva: trovatela e cambiatela secondo la vostra esigenza.

Capitolo 7 - Voglio vedere Windows e Windows deve vedere Linux! Voglio scambiare i file! -

La soluzione si chiama SAMBA

Copio/incollo da http://www.openskills.info un sito veramente ben fatto.

La sezione [global] è praticamente presente in ogni smb.conf. Qui si definiscono le configurazioni generali riguardanti il server Samba e i suoi comportamenti di default.

Vediamo nel dettaglio alcune opzioni:

CONFIGURAZIONI BASE NETBIOS

'Netbios name'

Definisce il nome NetBios della macchina, così come viene visualizzato in rete. Di default coincide con il nome DNS per la parte relativa all'host (es: pippo.dominio.it prende di default il nome PIPPO). Es.:

 Netbios name = PLUTONE

'Server string'

É il commento che si può leggere visualizzando i dettagli su un host in rete. Non è indispensabile ma può essere utile per indicare le funzioNi o le caratteristiche della macchina. É possibile usare variabili, per esempio:

 Server string = File Server - Samba %v (%h)

'Workgroup'

Definisce il workgroup di cui fa parte il server Samba. Di default il valore è "WORKGROUP", definito in fase di compilazione, ma può essere cambiato. Es.:

 workgroup = INTRANET
Strumenti personali
Namespace

Varianti