Repository 32bit  Forum
Repository 64bit  Wiki

Configurazione di Reti Windows/Linux: differenze tra le versioni

Da Slacky.eu.
(Capitolo 6 - Non funziona niente -)
 
(34 revisioni intermedie di 2 utenti non mostrate)
Riga 1: Riga 1:
[[Category:Networking]]
[[Category:Networking]]
=Capitolo 1 - Requisiti -=
+
  +
  +
  +
  +
  +
=Requisiti =
Ho realizzato questo piccolo sistema automatizzato per condividere la connessione semplicemente avendo:
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 Linux Box connessa ad internet (per ora con il 56K dial-up);
Riga 14: Riga 14:
*# Driver di scheda di rete
*# Driver di scheda di rete
=Capitolo 2 - Configuriamo la Linux Box -=
+
= 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!
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:
Tipicamente la configurazione di un host in rete prevede pochi dati fondamentali:
Riga 24: Riga 24:
Esistono molteplici metodi per configurare il servizio di rete in Linux, molto di quanto viene qui riportato si applica a tutti gli Unix:
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);
* Editare i singoli file di configurazione del networking (ristartare il servizio per applicare le modifiche);
* Usare comandi shell come ifconfig, route;
+
* Usare comandi shell come:
  +
*#ifconfig
  +
*#route
* Utilizzare strumenti di configurazione con interfaccia a finestra come:
* Utilizzare strumenti di configurazione con interfaccia a finestra come:
*# Netconfig
*# Netconfig
Riga 45: Riga 45:
<pre> /etc/services </pre>
<pre> /etc/services </pre>
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.''
+
Contiene il mapping tra i numeri di porta e i nomi dei servizi. ''É un file che solitamente non si modifica, salvo l'aggiunta di porte e protocolli Custom.''
<pre> /etc/host.conf </pre>
<pre> /etc/host.conf </pre>
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.
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.
+
  +
''order hosts,bind''; specifica di usare prima /etc/hosts e poi il DNS per risolvere gli IP.
<pre> /etc/nsswitch.conf </pre>
<pre> /etc/nsswitch.conf </pre>
Riga 55: Riga 55:
<pre> /etc/resolv.conf </pre>
<pre> /etc/resolv.conf </pre>
File di configurazione del client DNS ovvero contiene gli indirizzi del serve DNS e un possibile dominio dell'host e l'ordine di ricerca.
+
File di configurazione del client DNS ovvero contiene gli indirizzi del server DNS e un possibile dominio dell'host e l'ordine di ricerca.
Allora! Partiamo in console e otteniamo i privilegi di root.
Allora! Partiamo in console e otteniamo i privilegi di root.
Riga 64: Riga 64:
<pre> # netconfig </pre>
<pre> # netconfig </pre>
e ci apparirà un semplice tool per la configurazione della nostra interfaccia di rete (spesso denominata ''eth0'').
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.
+
Premiamo INVIO alla richiesta di configurare 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):
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):
Riga 70: Riga 70:
Con questi numeri il nostro PC verrà riconosciuto dalla nostra LAN.
Con questi numeri il nostro PC verrà riconosciuto dalla nostra LAN.
Prima di continuare è bene spendere qualche parola sul tipo di protocollo che useremo:
Prima di continuare è bene spendere qualche parola sul tipo di protocollo che useremo:
<pre> il Tcp/Ip </pre>
+
'''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).
+
(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.
+
Senza soffermarci troppo (ce ne sarebbe da pralare veramente tantissimo) chiariamo 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
Torniamo IN: Ora come maschera di rete (subnet mask) inseriamo
Riga 93: Riga 93:
</pre>
</pre>
Analizziamoli:
Analizziamoli:
eth0 p la nostra scheda di rete, è una Ethernet-based, ha indirizzo 192.168.0.1 con subnet mask 255.255.255.0.
+
eth0 è la nostra scheda di rete, è una Ethernet-based, ha indirizzo 192.168.0.1 con subnet mask 255.255.255.0.
'''Perfetto!'''
'''Perfetto!'''
Riga 116: Riga 116:
Interrompendo l'esecuzione del comando con un ctrl+C. Se l'output è simile allora è stato configurato correttamente.
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):
+
Per completare l'installazione 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):
<pre> # route add -net 192.168.0.0 netmask 255.255.255.0 eth0</pre>
<pre> # route add -net 192.168.0.0 netmask 255.255.255.0 eth0</pre>
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.
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 è? -=
+
= 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!
+
Ora mi permetto di fare un copia/incolla da http://linux.html.it/, veramente ben fatto, che riassume come andare avanti. Mi rendo conto che io stesso non potrei fare di meglio!
Masquerading
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.
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].
+
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. Questi 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.
É 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:
Per il kernel 2.0.XX quindi è necessario avere abilitato il supporto alle seguenti feature:
Riga 220: Riga 221:
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).
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 -=
+
= 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.
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.
Riga 234: Riga 235:
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.
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! -=
+
= 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.
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.
Riga 250: Riga 251:
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)
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 -=
+
= 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?
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?
Riga 285: Riga 286:
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.
  +
  +
= 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>
  +
  +
'''Netbios aliases'''
  +
  +
Questa opzione permette di assegnare più nomi NetBios allo stesso server oltre a quello definito con netbios name, in modo da farlo comparire fra le risorse di rete di Windows come macchine diverse, su cui è necessario eseguire login autonomi, anche se di fatto restano lo stesso server. Questa funzionalità può essere utile, per esempo, per raggruppare su un singolo server diversi server SMB che prima risiedevano su macchine diverse senza modificare alcun parametro sui client. Es.:
  +
  +
<pre>netbios aliases = vendite marketing amministrazione</pre>
  +
  +
  +
'''GESTIONE DEL NETWORKING'''
  +
  +
'''Hosts allow - Hosts deny'''
  +
Queste opzioni definiscono l'accesso al server. Hanno la stessa logica dei file /etc/hosts.allow e hosts.deny, possono essere presenti sia nella [global] che definiti per singola share. Come argomento si aspettano l'IP di una network o di un host (considernado che la rete 192.68.0.0/24, per esempio, si indica 192.168.0.0) oppure un singolo hostname (pippo.dominio.com) o un nome di dominio o sottodominio (.dominio.com).
  +
  +
Sono accettati anche gli argomenti speciali ALL (tutti gli IP) e EXCEPT, seguito da indirizzo o nomi di host.
  +
  +
Samba segue una logica ben precisa per gestire gli accessi con queste opzioni:
  +
* Se non sono definite, viene permesso l'accesso da ogni IP;
  +
* Se sono definite nella [global] queste si applicano ANCHE per le singole share (anche se si sono specificate a livello di share);
  +
* Se esisete solo hosts.allow viene permesso quanto specificato come argomento e vengono esclusi tutti gli altri IP;
  +
* Se esiste solo host.deny sarà permesso l'accesso a tutti gli IP trranne a quelli specificati come argomento;
  +
* Se esistono sia hosts.allow che hosts.deny vengono esclusi TUTTI gli IP tranne quelli che sono presenti in hosts.allow e non sono presenti in hosts.deny.
  +
  +
Nell'esempio che segue viene dato accesso a 192.168.0.10 e a tutti gli hosts della rete 10.0.0.0/24 tranne 10.0.0.15:
  +
  +
<pre>
  +
hosts allow = 10.0.0. 192.168.0.10
  +
hosts deny = 10.0.0.15
  +
</pre>
  +
  +
Questo esempio corrisponde a:
  +
  +
<pre>hosts allow = 192.168.0.10 10.0.0. EXCEPT 10.0.0.15</pre>
  +
  +
Se invece si vuole permettere l'accesso solo alla rete 192.168.0.0/16 si può scrivere semplicemente:
  +
  +
<pre>hosts allow = 192.168.</pre>
  +
  +
che coincide con:
  +
  +
<pre>hosts deny = ALL EXCEPT 192.168.</pre>
  +
  +
'''Interfaces - Bind interfaces only'''
  +
  +
Interfaces definisce su quale interfacce di rete dell'host locale Samba si metterà in ascolto. Di default Samba utilizza l'interfaccia di rete principale, ma se si vuole che resti in ascolto su latre interfacce o si vuole essere certi che Samba scelga l'interfaccia voluta, queste vanno specificate tramite il loro indirizzo IP:
  +
  +
<pre>interfaces = 10.0.0.3/24 192.168.0.4/255.255.255.0</pre>
  +
  +
Il comando bind interfaces only può avere valore yes o no (default). Se viene abilitato Samba ignorerà ogni pacchetto, anche di broadcast, che origina da rete diverse da quelle specificate con interfaces. Notare che se si abilita, è necessario includere esplicitamente il localhost (127.0.0.1) nell'elenco delle interfacce su cui Samba deve stare in listening:
  +
  +
<pre>bind interfaces only = yes</pre>
  +
  +
  +
'''GESTIONE DEL LOGGING'''
  +
  +
'''Log File'''
  +
Specifica su quale file Samba va a scrivere i suoi log. L'argomento può contenere delle variabili, per cui è possibile avere diversi file di log per ogni utente, per tipo di client ecc. Per creare un log diverso per ogni client NetBios, per esempio, si può scrivere:
  +
  +
<pre>log file = /var/log/samba.log.%m</pre>
  +
  +
'''Log Level'''
  +
Specifica il livello di logging da usare, va da 0 (minimo) a 10 (estremamente verboso). il valore di default è 1, su un server normale dovrebbe essere di 1 o 2, se si deve fare un pò di troubleshooting usare il livello 3, valori superiori servono soprattutto a chi sviluppa su Samba e rallentano notevolmente le operazioni:
  +
  +
<pre>log level = 2</pre>
  +
  +
'''Max Log Size'''
  +
  +
Definisce la dimensione massima in Kilobyte dei file di log. Quando viene raggiunto il limite, il file di log viene rinominato aggiungendo il suffisso .old (vengono eliminati eventuali file .old esistenti creati precedentemente) e si riparte con un file di log vuoto. Il valore di deault e 5000 Kb, il valore suggerito dipende fondamentalmente dallo spazio su disco disponibile, evitare di impostare un valore troppo alto che rischia di occupare tutto lo spazio (ocnsiderando anche il file .old)
  +
  +
<pre>max log size = 2000</pre>
  +
  +
'''Debug Timestamp'''
  +
Con questa opzione è possibile specificare se inserire data e ora per ogni riga di log generata. Coincide con l'opzione timestamp logs. Il valore di default è yes per cui nei log sono indicate data e ora in cui avvengono gli eventi. Per non specificare il timestamp scrivere:
  +
  +
<pre>debug timestamp = no</pre>
  +
  +
'''Syslog e Syslog only'''
  +
  +
Queste opzioni regolano la possibilità di usare il demone syslog, invece o parallelamente al demone diretto.
  +
Per potere usare il syslog è necessario compilare Samba con configure --with-syslog e configurare /etc/syslog.conf per gestire la facility daemon. Ad esempio con una riga tipo:
  +
  +
<pre>daemon.* /var/log/daemon.log</pre>
  +
  +
il valore specificato (da 0 a 10, default) indica quali messaggi di log inviare a syslog e, in riferimento agli argomenti dell'opzione log leve, cosa loggare direttamente sui file di log interni.
  +
  +
Ad esempio:
  +
  +
<pre>
  +
log level = 3
  +
Syslog = 2
  +
</pre>
  +
  +
Con queste opzioni i log di livello 0 e 1 (inferiori a 2) vengono mandati a syslog, quelli di livello 2 e 3 (compresi tra syslog e log level) vengono scritti sui file di log interno.
  +
Per loggare solo su syslog si deve attivare l'opzione syslog only:
  +
  +
<pre>syslog only = yes</pre>
  +
  +
  +
'''GESTIONE DEL BROWSING'''
  +
  +
'''Local master - Domain master'''
  +
  +
Queste opzioni servono per spingere Samba a cercare di diventare rispettivamente Local Master Browser (il server che mantien la browse list per una rete IP) e Domain Master Browser (il server che mantiene la browse list per un intero workgroup, anche esteso su più reti IP, nel qual caso raccoglie e coordina lo scambio di browse list dai Local Master Browser remoti). Di default Samba ha attiva l'opzione Local Master (con cui semplicemente gli viene detto di partecipare alle elezioni ma senza la certezza di vincerle) e non ha attivata l'opzione Domain Master ( è bene che il DOmain Master Browser sia la stessa macchina che fa eventualmente da Primary Domain Controller, sia esso un Samba o un Windows server). Le impostazioni di default sono quindi:
  +
  +
<pre>
  +
local master = yes
  +
domain master = no
  +
</pre>
  +
  +
'''Preferred Master - OS Level'''
  +
  +
Con queste opzioni si gestisce il comportamento di Samba nelle elezioni e la sua possibilità di vincerle.
  +
  +
La prima impone a Samba di chiamare un'elezione ogni volta che entra in rete e gli imposta una probabilità leggermente superiore di vincerle rispetto ad altre macchine con lo stesso livello. É bene imostarla a yes quando si configura Samba come Domain Master Browser o Local Master Browser:
  +
  +
  +
<pre>
  +
preferred master = yes
  +
domain master = yes
  +
</pre>
  +
  +
É comunque raccomandabile non avere troppe macchine in rete (windows o samba) che cercano di partecipare alle elezioni per evitare inutili e ripetuti broadcast e possibili incongruenze sulla browse list di riferimento.
  +
  +
L'opzione OS master, invece setta esplicitamente il livello con cui Samba si presenta alle elezioni. Può avere valore da 0 a 255, più alto e maggiore è la possibilità di diventare Master Browser. Un valore di 34 basta per fare vincere tutte le elezioni con server Windows ad eccezione di un PDC. Il valore di default è 20. Il seguente esempio dovrebbe bastare per vincere ogni elezione (ovviamente ad eccezione di altri server Samba con un OS level superiore):
  +
  +
<pre>
  +
os level = 65
  +
</pre>
  +
  +
'''Announce As - Announce version'''
  +
  +
Queste opzioni definiscono come Samba si presenta in rete. Announce as può avere come valori Win95, NT o WfW, il valore di default è:
  +
  +
<pre>
  +
announce as = NT
  +
</pre>
  +
  +
Announce version specifica la versione di Samba. Attualmente si presenta di default come:
  +
  +
<pre>
  +
announce version = 4.9
  +
</pre>
  +
  +
Generalmente non serve cambiare queste impostazioni di default.
  +
  +
'''Remote browse sync - remote announce'''
  +
  +
Queste opzioni permettono di sincronizzare la browse list di un server Samba quando esistono diversi local master su reti diverse.
  +
  +
La prima permette di richiedere la sincronizzazione della browse list dal server delle reti remote specificate:
  +
  +
<pre>
  +
remote browse list = 10.0.0.255 192.168.0.255
  +
</pre>
  +
  +
Con la seconda opzione si può esplicitamente annunciare il server locale, con un workgroup arbitrario, ai server sulla rete remota specificata:
  +
  +
<pre>
  +
remote announce = 192.168.0.255/WORKGROUP
  +
</pre>
  +
  +
In entrambi i casi si possonon indirizzare direttamente gli IP dei server remoti o gli indirizzi di broadcast della loro rete (in questo caso il "direct broadcast" deve potere essere consentito sulla rete remota, di default i router Cisco non lo permettono).
  +
  +
  +
'''GESTIONE DELLE PASSWORD'''
  +
  +
É importante configurare la logica con cui Samba gestisce l'autenticazione e come eventualmente sincornizza le sue password con quelle di sistema. I dati relativi agli utenti sono mantenuti nel file smbpasswd, che a sua volta si può modificare con l'omonimo comando shell.
  +
  +
Sulla gestione delle password esistono varie opzioni di configurazione.
  +
  +
'''Encrypt passwords'''
  +
  +
Di default ha valore NO, non prevedendo l'invio in chiaro delle password via rete. Sui Winsows recenti, comunque (tutti esclusi NT4 pre SP3 e Windows 95) le password vengono inviate criptate. Per cui o si modifica il registro (esiste .reg adatto nel tar.gz ufficiale) sui Windows o, meglio, si abilita la criptazione delle password:
  +
  +
<pre>
  +
encrypt password = yes
  +
</pre>
  +
  +
'''Password level'''
  +
  +
Di default samba esegue il matching delle password in lowercase (con caratteri minuscoli), compresa la prima lettera.
  +
  +
Password level permette di specificare, come nel caso di username level, quante lettere al massimo si possono rendere maiuscole per i tentativi di connettersi ad una smb share.
  +
  +
<pre>
  +
password level = 2
  +
</pre>
  +
  +
'''Null Password'''
  +
  +
Abilita o Disabilità la possibilità di utilizzare password (cryptate e non cryptate) pari a null.
  +
  +
Il valore di default è NO
  +
  +
<pre>
  +
password level = yes
  +
</pre>
  +
  +
'''Smb passwd file'''
  +
  +
Specifica il path del file contentente le password cryptate.
  +
  +
il valore di default è: /usr/local/samba/private/smbpasswd
  +
  +
<pre>
  +
smb passwd file = etc/samba/smbpasswd
  +
</pre>
  +
  +
  +
'''CONFIGURAZIONE DEI DOMINI'''
  +
  +
SAMBA permette di usufruire dei domini di windows in varie modalità:
  +
  +
* PDC, samba può essere configurato come primary domain controller per i client windows/unix;
  +
* BDC, (backup domain controller) feature non del tutto funzionante per le versioni correnti (2.x), occorre aspettare la versione 3.x per avere il supporto completo;
  +
* Host, facente parte di un dominio esistente.
  +
  +
Di seguito sono riportate alcune opzioni utili per configurare il logon dei client nel dominio:
  +
  +
'''Domain logons'''
  +
  +
Permette di loggarsi nel dominio tramite samba configurado come PDC server.
  +
  +
<pre>
  +
domain logons = yes
  +
</pre>
  +
  +
'''Logon script'''
  +
  +
Specifica lo script che verrà lanciato sui client una volta loggati nel dominio.
  +
  +
<pre>
  +
logon script = logon.bat
  +
</pre>
  +
  +
'''Logon Home'''
  +
  +
Specifica l'home dell'utente, per i comandi DOS NET:
  +
  +
<pre>
  +
logon home = \\server\home\%U
  +
</pre>
  +
  +
'''Logon Path'''
  +
  +
Identifica la locazione dei roaming file
  +
  +
<pre>
  +
logon path = \\server\profile\%U
  +
</pre>
  +
  +
  +
'''RISOLUZIONE DEI NOMI CON SAMBA'''
  +
  +
É possibile utilizzare una o più delle seguenti modalità di risoluzione dei nomi:
  +
  +
* Broadcasting
  +
* LMHOST file
  +
* Unix /etc/hosts o NIS
  +
* WINS (Windows Internet Name Service), samba ha la facoltà di appoggiarsi ad un WINS server esterno oppure configurare lo stesso samba per fungere da WINS server.
  +
  +
'''Name resolve order'''
  +
  +
Opzione che permette di specificare con quali metodi e il rispettivo ordine da utilizzare per la risoluzione dei nomi.
  +
  +
<pre>
  +
name resolve order = wins hosts bcast
  +
</pre>
  +
  +
'''Wins Server'''
  +
  +
Permette di appoggiarsi ad un wins esterno specificando semplicemente l'IP, sarà SAMBA stesso a ridirigere le singole richieste al server specificato.
  +
  +
<pre>
  +
wins server = 10.0.0.100
  +
</pre>
  +
  +
'''Wins Proxy'''
  +
  +
Abilita il forwarding di tutte le richieste di risoluzione dei nomi anche ad WINS che sono esterni alla subnet del SAMBA server.
  +
  +
<pre>
  +
wins proxy = yes
  +
</pre>
  +
  +
'''Wins support'''
  +
  +
Abilita il WINS server di SAMBA.
  +
  +
<pre>
  +
wins support = yes
  +
</pre>
  +
  +
''' DNS proxy'''
  +
  +
Permette di appoggiarsi al DNS configurato sul server SAMBA (/etc/resolv.conf) per la risoluzione dei nomi fallita tramite WINS.
  +
  +
<pre>
  +
dns proxy = yes
  +
</pre>
  +
  +
Come possiamo fare, ora, per vedere il contenuto del PC windows? Semplice! Andiamoo in Konqueror e digitiamo, nella barra degli indirizzi:
  +
  +
<pre>
  +
smb://
  +
</pre>
  +
  +
Naturalmente dovremo impostare la condivisione delle cartelle su Windows (click con il destro sulla cartella da condividere --> Menù condivisione). Dalla linea di comando si può utilizzare smbmount: creiamo in /mnt una cartella e diamogli i permessi di accesso. Dalla console di root digitiamo
  +
  +
<pre>
  +
smbmount //indir_ip_PCinRete/cartella/mnt/cartella -o ip=indirizzo_ip_del_PC_inRete
  +
</pre>
  +
  +
Et voilà!!
  +
  +
Esistono numerosi tool grafici che semplificano il tutto: io ho usato il centro di controllo di KDE....
  +
  +
=Cosa ho in mano ora?=
  +
  +
Un sistema LAN di due o più PC, che possono condividere la connessione di un server centrale Linux e che possono condividere file con gli altri client.
  +
  +
=Autore, Consigli=
  +
  +
Scritto da '''JJDaNiMoTh''', alcuni pezzi (ho menzionato SEMPRE la fonte, segnalatemi se ho commesso errori) li ho copiati da altri siti perchè mi sembra inutile riscrivere cose già analizzate in profondità da altri.
  +
  +
Potete copiare/incollare/distribuire tutto il documento (o solo in parte) a patto che citiate sempre l'autore (me in questo caso) o, per le parti a cui anche io mi sono appoggiato, il rispettivo proprietario. Non mi assumo nessuna responsabilità per quello che ho scritto, ogni cosa che fate la eseguite sotto il vostro volere e totalmente a vostro rischio e pericolo.
  +
  +
Spero di non avere scritto cose sbagliate, vi assicuro che la mia rete funziona perfettamente (anche se ci ho messo
  +
4 giorni a farla funzionare) e ringrazio PUBBLICAMENTE il channel '''#slackware''' su '''irc.syrolnet.org''', davvero gentili nello spiegarmi le cose più difficili.
  +
  +
=Versione=
  +
  +
versione 0.87 07/02/2005
  +
  +
  +
=APPENDICE A=
  +
<small>
  +
{| align=left border=1 font-size=50%
  +
! FORNITORE!! INDIRIZZO!! POP3!! SMTP!! NMTP!! DNS!!
  +
|-
  +
| tiscali.it|| @tiscali.it|| pop.tiscali.it|| smtp.tiscali.it||news.tiscali.it|| 1:195.130.224.18 2:195.130.225.129
  +
|- bgcolor=#abcdef
  +
| msnhotmail|| @hotmail.com|| || || ||
  +
|-
  +
| TNT.IT – ALICE CLUBNET – VIRGILIO|| @tin.it @virgilio.it @aliceposta.it|| box.tin.it (aliceadsl) in.virgilio.it pop.tin.it box.clubnet.tin.it box2.tin.it|| mail.tin.it(aliceadsl) out.virgilio.it mail.clubnet.tin.it smtp.tin.it(?) mail.cs.interbusiness.it mail.tuttopmi.it|| news.tin.it|| domain: clubnet.tin.it
  +
|- bgcolor=#abcdef
  +
|alice adsl telecom|| @alice.it|| in.aliceposta.it|| out.aliceposta.it|| ||
  +
1:212.216.112.112
  +
2:212.216.172.62
  +
*131.154.1.3
  +
*151.99.125.2
  +
*151.99.125.3
  +
*194.243.137.99
  +
|-
  +
|yahoo.com|| @yahoo.com|| pop.mail.yahoo.com|| smtp.mail.yahoo.com|| ||
  +
|-bgcolor=#abcdef
  +
|yahoo.it|| @yahoo.it|| pop.mail.yahoo.it|| smtp.mail.yahoo.it|| ||
  +
|-
  +
|supereva.it|| @supereva.it||mail.supereva.it|| mail.supereva.it|| news|| ftp.supereva.it
  +
|-bgcolor=#abcdef
  +
|libero.it|| @lbero.it|| popmail.libero.it imapmail.iol.it(trovare in rete il programmino liberopops per outlook express)|| mail.libero.it|| powernews.libero.it|| 1:vuoto
  +
2:vuoto
  +
ProxyServer:
  +
*proxy.libero.it
  +
porta 8080)
  +
libero adsl
  +
*1:192.106.1.1
  +
*2:193.205.245.8
  +
*193.70.152.25
  +
|-
  +
|inwind.it|| @inwind.it|| popmail.inwind.it|| mail.inwind.it|| powernews.libero.it|| ftp.inwind.it 212.245.255.2(non serve)
  +
|- bgcolor=#abcdef
  +
|iol|| @iol.it|| popmail.iol.it|| mail.iol.it|| ||
  +
|-
  +
|blu|| @blu.it|| popmail.blu.it|| mail.blu.it|| ||
  +
|- bgcolor=#abcdef
  +
|poste.it|| @poste.it|| relay.poste.it||relay.poste.it|| ||
  +
|-
  +
|jumpy.it|| @jumpy.it|| pop.jumpy.it|| mail.jumpy.it|| nesread.albacom.net|| 1:212.17.192.216
  +
2:212.17.192.56
  +
|- bgcolor=#abcdef
  +
|usa.net|| @usa.net|| pop.amexmail.com(a pagamento)|| n/a|| ||
  +
|-
  +
|interfree.it|| @interfree.it|| mail.interfree.it|| mail.interfree.it|| news.interfree.it|| ||
  +
|- bgcolor=#abcdef
  +
|fast.web|| || pop.fastwebnet.it|| smtp.fastwebnet.it|| ||
  +
|-
  +
|ciaoweb|| @ciaoweb.it|| ciaopop3.ciaoweb.it pop3.ciaoweb.net|| ciaosmtp.ciaoweb.it smtp.ciaoweb.net mail.cioaweb.net|| news.ciaoweb.net||
  +
|- bgcolor=#abcdef
  +
|infinito.it|| @infinito.it|| pop3.infinito|| smtp.infinito|| news.albacom.net|| ||
  +
|-
  +
|kataweb.it|| @kataweb.it|| mail.katamail.com|| smtp.katamail.com|| news.albacom.net|| ||
  +
|- bgcolor=#abcdef
  +
|worldonline.it|| @worldonline.it|| pop.worldonline.it|| smtp.worldonline.it|| news.albacom.net|| ||
  +
|-
  +
|excite|| @ecxite.it|| pop.tiscali.it|| smtp.tiscali.it|| news.tiscali.it|| ||
  +
|- bgcolor=#abcdef
  +
|tele2 everyday|| || pop.tele2.it|| smtp.tele2.it|| virtual.everyday.com|| 1:130.244.127.161
  +
2:130.244.127.169
  +
|-
  +
|quipo.it|| @quipo.it|| quipo.it|| quipo.it|| news.quipo.it||
  +
*user: quipo
  +
*pass:quipo proxy.quipo.it
  +
(porta 80)
  +
|- bgcolor=#abcdef
  +
|freemail.it|| @freemail.it|| freemail.it|| || || pop account
  +
  +
myuser@freemail.it
  +
|-
  +
|lycos|| @lycos.it|| pop.lycos.it pop3.lycos.it|| smtp.lycos.it|| || ||
  +
|- bgcolor=#abcdef
  +
|monrif.net|| || mail.monrif.net|| mail.monrif.net|| || ||
  +
|-
  +
|galactica.it|| @galactica.it|| mail.galactica.it|| mail.galactica.it|| || ||
  +
|- bgcolor=#abcdef
  +
|nopay|| || mail.nopay.it|| mail.nopay.it|| || ||
  +
|-
  +
|fuorissimo.com|| @fuorissimo.com @postafree.com @ruttolibero.it|| || || || ||
  +
|- bgcolor=#abcdef
  +
|citiesonline.it|| @citiesonline.it|| || || || ||
  +
|-
  +
|webmailinet.it|| || pop.inet.it|| smtp.inet.it|| || ||
  +
|- bgcolor=#abcdef
  +
|elitel|| @elitel.biz|| pop.elitel.it|| smtp.elitel.it|| news.elitel.it|| 1:212.34.224.132
  +
2:217.146.65.7
  +
|-
  +
|aruba.it|| || pop3.aruba.it|| smtp.aruba.it|| || ||
  +
|- bgcolor=#abcdef
  +
|vodafone mail|| || popmail.vodafone.it|| smtp.net.vodafone.it|| || ||
  +
|-
  +
|gmx|| || pop.gmx.it|| mail.gmx.it|| || ||
  +
|- bgcolor=#abcdef
  +
|rimini.com|| @rimini.com|| mail.rimini.com|| smtp.rimini.com|| || ||
  +
|-
  +
|atlavia|| || || smtp.atlavia.it|| || ||
  +
|- bgcolor=#abcdef
  +
|rocketmail.com|| andare su yahoo|| non esiste|| non esiste|| || ||
  +
|-
  +
|albacom|| || || smtp.albacom.net|| || ||
  +
|- bgcolor=#abcdef
  +
|blu|| || pop.blu.it|| smtp.blu.it|| || ||
  +
|-
  +
|macromedia|| || || || forums.macromedia.com|| ||
  +
|- bgcolor=#abcdef
  +
|microsoft|| || || || msnnews.microsoft.com|| ||
  +
|-
  +
|email.it|| @email.it|| pop.email.it|| smtp.email.it|| || account: username@email.it ||
  +
|- bgcolor=#abcdef
  +
|people-vene|| || mail.people.it|| tuoprovider|| || ||
  +
|-
  +
|softhome-net|| || pop.softhome.net|| smtp.Softhome.net|| || ||
  +
|- bgcolor=#abcdef
  +
|caltanet.it|| @caltanet.it|| inbox.caltanet.it|| relay.caltanet.it|| ||1:192.106.1.1
  +
2:195.210.91.100
  +
|-
  +
|webzone|| @webzone.it|| michetti.webzone.it|| 151.99.135.2|| || ||
  +
|- bgcolor=#abcdef
  +
|metacrawler|| @metacrawler.com|| || || || ||
  +
|-
  +
|lillinet|| @lillinet.org|| || || || ||
  +
|- bgcolor=#abcdef
  +
|www.tre.it|| || || || || ||
  +
|-
  +
|xsmg|| @xsmg.com|| || || || ||
  +
|- bgcolor=#abcdef
  +
|www.gmx.net|| || pop.gmx.net|| mail.gmx.net|| || ||
  +
|-
  +
|diebspiel24.de|| || || || || ||
  +
|- bgcolor=#abcdef
  +
|protocol.it|| @protocol.it|| mail.protocol.it|| smtp.protocol.it|| news.protocol.it|| ||
  +
|-
  +
|iamonline.it|| @iamonline.it|| || || || ||
  +
|- bgcolor=#abcdef
  +
|icqmail.com|| @icqmail.com|| || || || ||
  +
|-
  +
|juno.com|| @juno.com|| || || || ||
  +
|- bgcolor=#abcdef
  +
|mail.com|| @mail.com|| || || || ||
  +
|-
  +
|zzn.com|| @zzn.com|| || || || ||
  +
|- bgcolor=#abcdef
  +
|klik|| @people.it @vene-dave.it @vene.ws|| mail.klik.it|| smtp.klik.it|| mail.klik.it||
  +
*62.94.0.1
  +
*62.94.0.2||
  +
|-
  +
|vebe|| @people.it @vene-dave.it @vene.ws|| mail.people.it|| || || ||
  +
|- bgcolor=#abcdef
  +
|news.fu-berlin.de|| || || || news.cis.dfn.de|| ||
  +
|-
  +
|operamail|| @operamail.com|| || || || ||
  +
|- bgcolor=#abcdef
  +
|tutto webmail mail.excite.com dontgotmail.com ezy-mail.com graffiti.net icqmail.com onebox.com usa.net|| || || || || ||
  +
|}

Versione attuale delle 21:43, 10 set 2006




Indice

[modifica] 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

[modifica] 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:
    1. ifconfig
    2. 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'aggiunta 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.

order 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 server 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 configurare 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) chiariamo 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 è 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'installazione 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.

[modifica] Masquerade, ma cosa è?

Ora mi permetto di fare un copia/incolla da http://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. Questi 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).

[modifica] 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.

[modifica] 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)

[modifica] 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.

[modifica] 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

Netbios aliases

Questa opzione permette di assegnare più nomi NetBios allo stesso server oltre a quello definito con netbios name, in modo da farlo comparire fra le risorse di rete di Windows come macchine diverse, su cui è necessario eseguire login autonomi, anche se di fatto restano lo stesso server. Questa funzionalità può essere utile, per esempo, per raggruppare su un singolo server diversi server SMB che prima risiedevano su macchine diverse senza modificare alcun parametro sui client. Es.:

netbios aliases = vendite marketing amministrazione


GESTIONE DEL NETWORKING

Hosts allow - Hosts deny Queste opzioni definiscono l'accesso al server. Hanno la stessa logica dei file /etc/hosts.allow e hosts.deny, possono essere presenti sia nella [global] che definiti per singola share. Come argomento si aspettano l'IP di una network o di un host (considernado che la rete 192.68.0.0/24, per esempio, si indica 192.168.0.0) oppure un singolo hostname (pippo.dominio.com) o un nome di dominio o sottodominio (.dominio.com).

Sono accettati anche gli argomenti speciali ALL (tutti gli IP) e EXCEPT, seguito da indirizzo o nomi di host.

Samba segue una logica ben precisa per gestire gli accessi con queste opzioni:

  • Se non sono definite, viene permesso l'accesso da ogni IP;
  • Se sono definite nella [global] queste si applicano ANCHE per le singole share (anche se si sono specificate a livello di share);
  • Se esisete solo hosts.allow viene permesso quanto specificato come argomento e vengono esclusi tutti gli altri IP;
  • Se esiste solo host.deny sarà permesso l'accesso a tutti gli IP trranne a quelli specificati come argomento;
  • Se esistono sia hosts.allow che hosts.deny vengono esclusi TUTTI gli IP tranne quelli che sono presenti in hosts.allow e non sono presenti in hosts.deny.

Nell'esempio che segue viene dato accesso a 192.168.0.10 e a tutti gli hosts della rete 10.0.0.0/24 tranne 10.0.0.15:

hosts allow = 10.0.0. 192.168.0.10
hosts deny = 10.0.0.15

Questo esempio corrisponde a:

hosts allow = 192.168.0.10 10.0.0. EXCEPT 10.0.0.15

Se invece si vuole permettere l'accesso solo alla rete 192.168.0.0/16 si può scrivere semplicemente:

hosts allow = 192.168.

che coincide con:

hosts deny = ALL EXCEPT 192.168.

Interfaces - Bind interfaces only

Interfaces definisce su quale interfacce di rete dell'host locale Samba si metterà in ascolto. Di default Samba utilizza l'interfaccia di rete principale, ma se si vuole che resti in ascolto su latre interfacce o si vuole essere certi che Samba scelga l'interfaccia voluta, queste vanno specificate tramite il loro indirizzo IP:

interfaces = 10.0.0.3/24 192.168.0.4/255.255.255.0

Il comando bind interfaces only può avere valore yes o no (default). Se viene abilitato Samba ignorerà ogni pacchetto, anche di broadcast, che origina da rete diverse da quelle specificate con interfaces. Notare che se si abilita, è necessario includere esplicitamente il localhost (127.0.0.1) nell'elenco delle interfacce su cui Samba deve stare in listening:

bind interfaces only = yes


GESTIONE DEL LOGGING

Log File Specifica su quale file Samba va a scrivere i suoi log. L'argomento può contenere delle variabili, per cui è possibile avere diversi file di log per ogni utente, per tipo di client ecc. Per creare un log diverso per ogni client NetBios, per esempio, si può scrivere:

log file = /var/log/samba.log.%m

Log Level Specifica il livello di logging da usare, va da 0 (minimo) a 10 (estremamente verboso). il valore di default è 1, su un server normale dovrebbe essere di 1 o 2, se si deve fare un pò di troubleshooting usare il livello 3, valori superiori servono soprattutto a chi sviluppa su Samba e rallentano notevolmente le operazioni:

log level = 2

Max Log Size

Definisce la dimensione massima in Kilobyte dei file di log. Quando viene raggiunto il limite, il file di log viene rinominato aggiungendo il suffisso .old (vengono eliminati eventuali file .old esistenti creati precedentemente) e si riparte con un file di log vuoto. Il valore di deault e 5000 Kb, il valore suggerito dipende fondamentalmente dallo spazio su disco disponibile, evitare di impostare un valore troppo alto che rischia di occupare tutto lo spazio (ocnsiderando anche il file .old)

max log size = 2000

Debug Timestamp Con questa opzione è possibile specificare se inserire data e ora per ogni riga di log generata. Coincide con l'opzione timestamp logs. Il valore di default è yes per cui nei log sono indicate data e ora in cui avvengono gli eventi. Per non specificare il timestamp scrivere:

debug timestamp = no

Syslog e Syslog only

Queste opzioni regolano la possibilità di usare il demone syslog, invece o parallelamente al demone diretto. Per potere usare il syslog è necessario compilare Samba con configure --with-syslog e configurare /etc/syslog.conf per gestire la facility daemon. Ad esempio con una riga tipo:

daemon.* /var/log/daemon.log

il valore specificato (da 0 a 10, default) indica quali messaggi di log inviare a syslog e, in riferimento agli argomenti dell'opzione log leve, cosa loggare direttamente sui file di log interni.

Ad esempio:

log level = 3
Syslog = 2

Con queste opzioni i log di livello 0 e 1 (inferiori a 2) vengono mandati a syslog, quelli di livello 2 e 3 (compresi tra syslog e log level) vengono scritti sui file di log interno. Per loggare solo su syslog si deve attivare l'opzione syslog only:

syslog only = yes


GESTIONE DEL BROWSING

Local master - Domain master

Queste opzioni servono per spingere Samba a cercare di diventare rispettivamente Local Master Browser (il server che mantien la browse list per una rete IP) e Domain Master Browser (il server che mantiene la browse list per un intero workgroup, anche esteso su più reti IP, nel qual caso raccoglie e coordina lo scambio di browse list dai Local Master Browser remoti). Di default Samba ha attiva l'opzione Local Master (con cui semplicemente gli viene detto di partecipare alle elezioni ma senza la certezza di vincerle) e non ha attivata l'opzione Domain Master ( è bene che il DOmain Master Browser sia la stessa macchina che fa eventualmente da Primary Domain Controller, sia esso un Samba o un Windows server). Le impostazioni di default sono quindi:

local master = yes
domain master = no

Preferred Master - OS Level

Con queste opzioni si gestisce il comportamento di Samba nelle elezioni e la sua possibilità di vincerle.

La prima impone a Samba di chiamare un'elezione ogni volta che entra in rete e gli imposta una probabilità leggermente superiore di vincerle rispetto ad altre macchine con lo stesso livello. É bene imostarla a yes quando si configura Samba come Domain Master Browser o Local Master Browser:


preferred master = yes
domain master = yes

É comunque raccomandabile non avere troppe macchine in rete (windows o samba) che cercano di partecipare alle elezioni per evitare inutili e ripetuti broadcast e possibili incongruenze sulla browse list di riferimento.

L'opzione OS master, invece setta esplicitamente il livello con cui Samba si presenta alle elezioni. Può avere valore da 0 a 255, più alto e maggiore è la possibilità di diventare Master Browser. Un valore di 34 basta per fare vincere tutte le elezioni con server Windows ad eccezione di un PDC. Il valore di default è 20. Il seguente esempio dovrebbe bastare per vincere ogni elezione (ovviamente ad eccezione di altri server Samba con un OS level superiore):

os level = 65

Announce As - Announce version

Queste opzioni definiscono come Samba si presenta in rete. Announce as può avere come valori Win95, NT o WfW, il valore di default è:

announce as = NT

Announce version specifica la versione di Samba. Attualmente si presenta di default come:

announce version = 4.9

Generalmente non serve cambiare queste impostazioni di default.

Remote browse sync - remote announce

Queste opzioni permettono di sincronizzare la browse list di un server Samba quando esistono diversi local master su reti diverse.

La prima permette di richiedere la sincronizzazione della browse list dal server delle reti remote specificate:

remote browse list = 10.0.0.255 192.168.0.255

Con la seconda opzione si può esplicitamente annunciare il server locale, con un workgroup arbitrario, ai server sulla rete remota specificata:

remote announce = 192.168.0.255/WORKGROUP

In entrambi i casi si possonon indirizzare direttamente gli IP dei server remoti o gli indirizzi di broadcast della loro rete (in questo caso il "direct broadcast" deve potere essere consentito sulla rete remota, di default i router Cisco non lo permettono).


GESTIONE DELLE PASSWORD

É importante configurare la logica con cui Samba gestisce l'autenticazione e come eventualmente sincornizza le sue password con quelle di sistema. I dati relativi agli utenti sono mantenuti nel file smbpasswd, che a sua volta si può modificare con l'omonimo comando shell.

Sulla gestione delle password esistono varie opzioni di configurazione.

Encrypt passwords

Di default ha valore NO, non prevedendo l'invio in chiaro delle password via rete. Sui Winsows recenti, comunque (tutti esclusi NT4 pre SP3 e Windows 95) le password vengono inviate criptate. Per cui o si modifica il registro (esiste .reg adatto nel tar.gz ufficiale) sui Windows o, meglio, si abilita la criptazione delle password:

encrypt password = yes

Password level

Di default samba esegue il matching delle password in lowercase (con caratteri minuscoli), compresa la prima lettera.

Password level permette di specificare, come nel caso di username level, quante lettere al massimo si possono rendere maiuscole per i tentativi di connettersi ad una smb share.

password level = 2

Null Password

Abilita o Disabilità la possibilità di utilizzare password (cryptate e non cryptate) pari a null.

Il valore di default è NO

password level = yes

Smb passwd file

Specifica il path del file contentente le password cryptate.

il valore di default è: /usr/local/samba/private/smbpasswd

smb passwd file = etc/samba/smbpasswd


CONFIGURAZIONE DEI DOMINI

SAMBA permette di usufruire dei domini di windows in varie modalità:

  • PDC, samba può essere configurato come primary domain controller per i client windows/unix;
  • BDC, (backup domain controller) feature non del tutto funzionante per le versioni correnti (2.x), occorre aspettare la versione 3.x per avere il supporto completo;
  • Host, facente parte di un dominio esistente.

Di seguito sono riportate alcune opzioni utili per configurare il logon dei client nel dominio:

Domain logons

Permette di loggarsi nel dominio tramite samba configurado come PDC server.

domain logons = yes

Logon script

Specifica lo script che verrà lanciato sui client una volta loggati nel dominio.

logon script = logon.bat

Logon Home

Specifica l'home dell'utente, per i comandi DOS NET:

logon home = \\server\home\%U

Logon Path

Identifica la locazione dei roaming file

logon path = \\server\profile\%U


RISOLUZIONE DEI NOMI CON SAMBA

É possibile utilizzare una o più delle seguenti modalità di risoluzione dei nomi:

  • Broadcasting
  • LMHOST file
  • Unix /etc/hosts o NIS
  • WINS (Windows Internet Name Service), samba ha la facoltà di appoggiarsi ad un WINS server esterno oppure configurare lo stesso samba per fungere da WINS server.

Name resolve order

Opzione che permette di specificare con quali metodi e il rispettivo ordine da utilizzare per la risoluzione dei nomi.

name resolve order = wins hosts bcast

Wins Server

Permette di appoggiarsi ad un wins esterno specificando semplicemente l'IP, sarà SAMBA stesso a ridirigere le singole richieste al server specificato.

wins server = 10.0.0.100

Wins Proxy

Abilita il forwarding di tutte le richieste di risoluzione dei nomi anche ad WINS che sono esterni alla subnet del SAMBA server.

wins proxy = yes

Wins support

Abilita il WINS server di SAMBA.

wins support = yes

DNS proxy

Permette di appoggiarsi al DNS configurato sul server SAMBA (/etc/resolv.conf) per la risoluzione dei nomi fallita tramite WINS.

dns proxy = yes

Come possiamo fare, ora, per vedere il contenuto del PC windows? Semplice! Andiamoo in Konqueror e digitiamo, nella barra degli indirizzi:

smb://

Naturalmente dovremo impostare la condivisione delle cartelle su Windows (click con il destro sulla cartella da condividere --> Menù condivisione). Dalla linea di comando si può utilizzare smbmount: creiamo in /mnt una cartella e diamogli i permessi di accesso. Dalla console di root digitiamo

smbmount //indir_ip_PCinRete/cartella/mnt/cartella -o ip=indirizzo_ip_del_PC_inRete

Et voilà!!

Esistono numerosi tool grafici che semplificano il tutto: io ho usato il centro di controllo di KDE....

[modifica] Cosa ho in mano ora?

Un sistema LAN di due o più PC, che possono condividere la connessione di un server centrale Linux e che possono condividere file con gli altri client.

[modifica] Autore, Consigli

Scritto da JJDaNiMoTh, alcuni pezzi (ho menzionato SEMPRE la fonte, segnalatemi se ho commesso errori) li ho copiati da altri siti perchè mi sembra inutile riscrivere cose già analizzate in profondità da altri.

Potete copiare/incollare/distribuire tutto il documento (o solo in parte) a patto che citiate sempre l'autore (me in questo caso) o, per le parti a cui anche io mi sono appoggiato, il rispettivo proprietario. Non mi assumo nessuna responsabilità per quello che ho scritto, ogni cosa che fate la eseguite sotto il vostro volere e totalmente a vostro rischio e pericolo.

Spero di non avere scritto cose sbagliate, vi assicuro che la mia rete funziona perfettamente (anche se ci ho messo 4 giorni a farla funzionare) e ringrazio PUBBLICAMENTE il channel #slackware su irc.syrolnet.org, davvero gentili nello spiegarmi le cose più difficili.

[modifica] Versione

versione 0.87 07/02/2005


[modifica] APPENDICE A

FORNITORE INDIRIZZO POP3 SMTP NMTP DNS
tiscali.it @tiscali.it pop.tiscali.it smtp.tiscali.it news.tiscali.it 1:195.130.224.18 2:195.130.225.129
msnhotmail @hotmail.com
TNT.IT – ALICE CLUBNET – VIRGILIO @tin.it @virgilio.it @aliceposta.it box.tin.it (aliceadsl) in.virgilio.it pop.tin.it box.clubnet.tin.it box2.tin.it mail.tin.it(aliceadsl) out.virgilio.it mail.clubnet.tin.it smtp.tin.it(?) mail.cs.interbusiness.it mail.tuttopmi.it news.tin.it domain: clubnet.tin.it
alice adsl telecom @alice.it in.aliceposta.it out.aliceposta.it

1:212.216.112.112 2:212.216.172.62

  • 131.154.1.3
  • 151.99.125.2
  • 151.99.125.3
  • 194.243.137.99
yahoo.com @yahoo.com pop.mail.yahoo.com smtp.mail.yahoo.com
yahoo.it @yahoo.it pop.mail.yahoo.it smtp.mail.yahoo.it
supereva.it @supereva.it mail.supereva.it mail.supereva.it news ftp.supereva.it
libero.it @lbero.it popmail.libero.it imapmail.iol.it(trovare in rete il programmino liberopops per outlook express) mail.libero.it powernews.libero.it 1:vuoto

2:vuoto ProxyServer:

  • proxy.libero.it

porta 8080) libero adsl

  • 1:192.106.1.1
  • 2:193.205.245.8
  • 193.70.152.25
inwind.it @inwind.it popmail.inwind.it mail.inwind.it powernews.libero.it ftp.inwind.it 212.245.255.2(non serve)
iol @iol.it popmail.iol.it mail.iol.it
blu @blu.it popmail.blu.it mail.blu.it
poste.it @poste.it relay.poste.it relay.poste.it
jumpy.it @jumpy.it pop.jumpy.it mail.jumpy.it nesread.albacom.net 1:212.17.192.216

2:212.17.192.56

usa.net @usa.net pop.amexmail.com(a pagamento) n/a
interfree.it @interfree.it mail.interfree.it mail.interfree.it news.interfree.it
fast.web pop.fastwebnet.it smtp.fastwebnet.it
ciaoweb @ciaoweb.it ciaopop3.ciaoweb.it pop3.ciaoweb.net ciaosmtp.ciaoweb.it smtp.ciaoweb.net mail.cioaweb.net news.ciaoweb.net
infinito.it @infinito.it pop3.infinito smtp.infinito news.albacom.net
kataweb.it @kataweb.it mail.katamail.com smtp.katamail.com news.albacom.net
worldonline.it @worldonline.it pop.worldonline.it smtp.worldonline.it news.albacom.net
excite @ecxite.it pop.tiscali.it smtp.tiscali.it news.tiscali.it
tele2 everyday pop.tele2.it smtp.tele2.it virtual.everyday.com 1:130.244.127.161

2:130.244.127.169

quipo.it @quipo.it quipo.it quipo.it news.quipo.it
  • user: quipo
  • pass:quipo proxy.quipo.it

(porta 80)

freemail.it @freemail.it freemail.it pop account

myuser@freemail.it

lycos @lycos.it pop.lycos.it pop3.lycos.it smtp.lycos.it
monrif.net mail.monrif.net mail.monrif.net
galactica.it @galactica.it mail.galactica.it mail.galactica.it
nopay mail.nopay.it mail.nopay.it
fuorissimo.com @fuorissimo.com @postafree.com @ruttolibero.it
citiesonline.it @citiesonline.it
webmailinet.it pop.inet.it smtp.inet.it
elitel @elitel.biz pop.elitel.it smtp.elitel.it news.elitel.it 1:212.34.224.132

2:217.146.65.7

aruba.it pop3.aruba.it smtp.aruba.it
vodafone mail popmail.vodafone.it smtp.net.vodafone.it
gmx pop.gmx.it mail.gmx.it
rimini.com @rimini.com mail.rimini.com smtp.rimini.com
atlavia smtp.atlavia.it
rocketmail.com andare su yahoo non esiste non esiste
albacom smtp.albacom.net
blu pop.blu.it smtp.blu.it
macromedia forums.macromedia.com
microsoft msnnews.microsoft.com
email.it @email.it pop.email.it smtp.email.it account: username@email.it
people-vene mail.people.it tuoprovider
softhome-net pop.softhome.net smtp.Softhome.net
caltanet.it @caltanet.it inbox.caltanet.it relay.caltanet.it 1:192.106.1.1

2:195.210.91.100

webzone @webzone.it michetti.webzone.it 151.99.135.2
metacrawler @metacrawler.com
lillinet @lillinet.org
www.tre.it
xsmg @xsmg.com
www.gmx.net pop.gmx.net mail.gmx.net
diebspiel24.de
protocol.it @protocol.it mail.protocol.it smtp.protocol.it news.protocol.it
iamonline.it @iamonline.it
icqmail.com @icqmail.com
juno.com @juno.com
mail.com @mail.com
zzn.com @zzn.com
klik @people.it @vene-dave.it @vene.ws mail.klik.it smtp.klik.it mail.klik.it
  • 62.94.0.1
  • 62.94.0.2||
vebe @people.it @vene-dave.it @vene.ws mail.people.it
news.fu-berlin.de news.cis.dfn.de
operamail @operamail.com
tutto webmail mail.excite.com dontgotmail.com ezy-mail.com graffiti.net icqmail.com onebox.com usa.net
Strumenti personali
Namespace

Varianti