SAMBA: configurazione lato server: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
mNessun oggetto della modifica
 
(7 versioni intermedie di 3 utenti non mostrate)
Riga 1: Riga 1:
{{SAMBA}}{{SAMBA1}}
{{SAMBA1}}
= Modulo principale =
= Modulo principale =


Riga 82: Riga 82:
</pre>
</pre>


{{Box|Nota|Data  la moltitudine di parametri configurabili in questa guida ci si  limiterà a trattarne solo una piccola parte. Per una panoramica completa  si invita il lettore a fare riferimento alla pagina (man5) di  [http://www.samba.org/samba/docs/man/smb.conf.5.html Samba]. }}
{{Box|Nota|Data  la moltitudine di parametri configurabili in questa guida ci si  limiterà a trattarne solo una piccola parte. Per una panoramica completa  si invita il lettore a fare riferimento alla pagina (man5) di  [https://www.samba.org/samba/docs/man/manpages/smb.conf.5.html Samba]. }}


{{  Warningbox | Esistono parametri che devono essere dichiarati nella sola  sezione <code>global</code>, parametri che devono essere  dichiarati solo nelle sezioni dedicate alle singole risorse e infine  parametri che possono essere definiti in entrambi i tipi di sezione. }}
{{  Warningbox | Esistono parametri che devono essere dichiarati nella sola  sezione <code>global</code>, parametri che devono essere  dichiarati solo nelle sezioni dedicate alle singole risorse e infine  parametri che possono essere definiti in entrambi i tipi di sezione. }}
Riga 119: Riga 119:
<pre>   
<pre>   
[global]
[global]
     allow hosts = 127.0.0.1 192.168.1.0/24     
     hosts deny = ALL
    hosts allow = 127.0.0.1 192.168.1.0/24     
     workgroup = debianizzati
     workgroup = debianizzati
     server string = server@debianizzati.org
     server string = server@debianizzati.org
Riga 136: Riga 137:
     unix password sync = Yes
     unix password sync = Yes
</pre>
</pre>
* <code>'''allow hosts'''</code>: range di IP ai quali è permesso l'accesso a tutte le risorse specificate nel seguito del file di configurazione; in questo caso vengono accettati tutti gli indirizzi compresi tra 192.168.1.1 e 192.168.1.254. Si noti che è possibile specificare più indirizzi e/o gruppi di indirizzi semplicemente separandoli con uno spazio, ad esempio <code>allow hosts = 127.0.0.1 192.168.1.0/24</code>. Qualora l'utente non volesse rendere disponibile tutte le risorse agli stessi range di indirizzi allora il parametro <code>allow hosts</code> non dovrebbe essere definito qui, ma in ciascuna delle sezioni dedicate alle singole risorse condivise. Il parametro è sostanzialmente additivo, ovvero il gruppo di indirizzi ammissibile per ogni risorsa è dato dalla somma di quelli specificati in questa sezione e da quelli definiti per la singola risorsa. Questo parametro è del tutto equivalente a <code>hosts allow</code>.
* <code>'''host deny''' e '''hosts allow'''</code>: combinazione di istruzione per definire un range di IP ai quali è permesso l'accesso a tutte le risorse specificate nel seguito del file di configurazione; in questo caso vengono accettati tutti gli indirizzi compresi tra 192.168.1.1 e 192.168.1.254. Si noti che è possibile specificare più indirizzi e/o gruppi di indirizzi semplicemente separandoli con uno spazio, ad esempio <code>allow hosts = 127.0.0.1 192.168.1.0/24</code>. Qualora l'utente non volesse rendere disponibile tutte le risorse agli stessi range di indirizzi allora il parametro <code>allow hosts</code> non dovrebbe essere definito qui, ma in ciascuna delle sezioni dedicate alle singole risorse condivise. Il parametro è sostanzialmente additivo, ovvero il gruppo di indirizzi ammissibile per ogni risorsa è dato dalla somma di quelli specificati in questa sezione e da quelli definiti per la singola risorsa. Questo parametro è del tutto equivalente a <code>hosts allow</code>.
* <code>'''workgroup'''</code>:  nome del gruppo di lavoro; non è un parametro critico, nel senso che  anche se viene definito un nome differente da quello cui appartengono  tutte le altre macchine della rete il risultato è che in windows il nome  del server comparirà sotto un differente gruppo di lavoro.
* <code>'''workgroup'''</code>:  nome del gruppo di lavoro; non è un parametro critico, nel senso che  anche se viene definito un nome differente da quello cui appartengono  tutte le altre macchine della rete il risultato è che in windows il nome  del server comparirà sotto un differente gruppo di lavoro.
* <code>'''server string'''</code>: stringa che identifica il server.
* <code>'''server string'''</code>: stringa che identifica il server.
* <code>'''security'''</code>: definisce il "modo" con cui samba gestisce l'autenticazione degli utenti.
* <code>'''security'''</code>: definisce il "modo" con cui samba gestisce l'autenticazione degli utenti.
**  ''user'': è il valore predefinito, implica che sia il nome delle  risorse sia il loro contenuto risultano indisponibili all'utente  fintanto che questi non si è autenticato con successo; deroga a questo  principio il caso in cui l'utente venga automaticamente autenticato come  ospite (si veda ''map to guest'').
**  ''user'': è il valore predefinito, implica che sia il nome delle  risorse sia il loro contenuto risultano indisponibili all'utente  fintanto che questi non si è autenticato con successo; deroga a questo  principio il caso in cui l'utente venga automaticamente autenticato come  ospite (si veda ''map to guest'').
** ''share'': è il valore  storico, usato come predefinito nelle versioni di samba precedenti la  terza; semplificando si può dire che gli utenti possono vedere le  risorse, ma non accedervi, anche senza essersi autenticati con successo  (quindi chiunque è in grado di vedere l'elenco delle risorse).
** <strike>''share'': è il valore  storico, usato come predefinito nelle versioni di samba precedenti la  terza; semplificando si può dire che gli utenti possono vedere le  risorse, ma non accedervi, anche senza essersi autenticati con successo  (quindi chiunque è in grado di vedere l'elenco delle risorse)</strike>. ''share'' È UN VALORE DEPRECATO.
**  ''domain'' e ''server'': sono modalità specifiche per reti dove è  configurato un dominio e non semplicemente un gruppo di lavoro.
**  ''domain'' <strike>e ''server''</strike>: sono modalità specifiche per reti dove è  configurato un dominio e non semplicemente un gruppo di lavoro.
*  <code>'''guest account'''</code>: permette di definire  l'utente da usare come utenza guest (il valore predefinito è  ''nobody''), in questo esempio l'utente ''ospite'' (che come ogni altro  utente deve esistere sia in linux che in samba).
*  <code>'''guest account'''</code>: permette di definire  l'utente da usare come utenza guest (il valore predefinito è  ''nobody''), in questo esempio l'utente ''ospite'' (che come ogni altro  utente deve esistere sia in linux che in samba).
*  <code>'''map to guest'''</code>: questo parametro torna  principalmente utile se si vuol creare una condivisione accessibile a  chiunque tramite l'utenza guest (ovvero se si vuole permettere l'accesso  ad una o più risorse senza che vengano richieste username e password)  quando sia stato impostato <code>security = user</code> o  <code>security = domain</code>. Ci sono quattro valori  possibili di questo parametro:
*  <code>'''map to guest'''</code>: questo parametro torna  principalmente utile se si vuol creare una condivisione accessibile a  chiunque tramite l'utenza guest (ovvero se si vuole permettere l'accesso  ad una o più risorse senza che vengano richieste username e password)  quando sia stato impostato <code>security = user</code> o  <code>security = domain</code>. Ci sono quattro valori  possibili di questo parametro:
Riga 153: Riga 154:
*  <code>'''include'''</code>: permette di includere nel file  di configurazione <code>smb.conf</code> un altro file di  configurazione (e quindi le relative impostazioni). Nell'esempio  riportato viene importato il file /etc/samba.smb.conf.alias, dove  ''alias'' è uno degli alias definiti attraverso il parametro  <code>netbios aliases</code> (il carattere %L serve proprio a  leggere l'imput dell'utente). Questo artificio è utile in quei casi  dove può essere necessario caricare impostazioni parzialmente differenti  a seconda del gruppo di utenti che accede al server, basta cioè che  ciascuno di questi gruppi acceda al server sfruttando un diverso alias,  ad esempio ''commerciale'', ''amministrazione'', ''tecnico'', ecc.
*  <code>'''include'''</code>: permette di includere nel file  di configurazione <code>smb.conf</code> un altro file di  configurazione (e quindi le relative impostazioni). Nell'esempio  riportato viene importato il file /etc/samba.smb.conf.alias, dove  ''alias'' è uno degli alias definiti attraverso il parametro  <code>netbios aliases</code> (il carattere %L serve proprio a  leggere l'imput dell'utente). Questo artificio è utile in quei casi  dove può essere necessario caricare impostazioni parzialmente differenti  a seconda del gruppo di utenti che accede al server, basta cioè che  ciascuno di questi gruppi acceda al server sfruttando un diverso alias,  ad esempio ''commerciale'', ''amministrazione'', ''tecnico'', ecc.


* <code>'''passwd program'''</code>: questo parametro ha essenzialmente senso se usato in congiunzione con <code>unix password sync = yes</code> poiché definisce che applicativo usare per modificare automaticamente le password unix.
* <code>'''passwd program'''</code>: definisce che programma deve usare samba per gestire le proprie password. Samba non ha un suo applicativo per fare questo, quindi deve appoggiarsi a quello che il sistema usa normalmente per gestire le sue password. Questo parametro da solo non permette la sincronizzazione delle password samba con quelle unix di sistema. Se il parametro ''pam password change'' è impostato su ''yes'' allora il presente parametro viene ignorato, ovvero è inutile specificare ''passwd program'' se si specifica contestualmente ''pam password change = yes''.
*  <code>'''pam password change'''</code>: se impostato su yes il sistema userà PAM invece dell'applicativo definito in  <code>passwd program</code> per cambiare automaticamente le password unix (quindi è inutile definire contemporaneamente sia  <code>passwd program</code> che <code>pam password  change = yes</code>).
*  <code>'''pam password change'''</code>: se impostato su ''yes'' il sistema userà PAM invece dell'applicativo definito in  <code>passwd program</code> per cambiare automaticamente le password samba (quindi è inutile definire contemporaneamente sia  <code>passwd program</code> che <code>pam password  change = yes</code>). Questo parametro da solo non permette la sincronizzazione delle password samba con quelle unix di sistema, inoltre viene ignorato se vale ''encrypt passwords = yes'' (che è il valore predefinito!).
* <code>'''obey pam  restrictions'''</code>: impostare su yes solo nel caso in cui sia anche <code>pam password change = yes</code>.
* <code>'''obey pam  restrictions'''</code>: impostare su yes solo nel caso in cui sia anche <code>pam password change = yes</code>.
*  <code>'''passwd chat'''</code>: definisce la stringa che  samba passerà a linux per cambiare una password unix. Non cambiare il  valore indicato a meno di non sapere quel che si sta facendo. Questo parametro può essere omesso se non si è definito <code>passwd  program</code> oppure impostato <code>pam password change =  yes</code>.
* <code>'''unix passwd  sync'''</code>: impostare questo parametro su yes fa si che quando la password di un utente samba viene cambiata anche la password linux è modificata.
* <code>'''unix passwd sync'''</code>: impostare questo parametro su yes fa si che quando  la password di un utente samba viene cambiata anche la password linux è  modificata.
*  <code>'''passwd chat'''</code>: definisce la stringa che  samba passerà a linux per cambiare una password unix. Non cambiare il  valore indicato a meno di non sapere quel che si sta facendo. Questo parametro può essere omesso se non si è definito ''unix passwd sync = yes''.


====Parametri generici====
====Parametri generici====
Riga 264: Riga 265:


{{Warningbox|Oltre a definire  correttamente gli utenti in samba è sempre necessario definire  correttamente i permessi UNIX sulle cartelle che si andranno a  condividere, ovvero se si desidera che l'utente pinco pallino abbia  accesso sia in lettura che scrittura ad una certa cartella non è  sufficiente imporre ''read only &#61; no'', ma bisogna che ad  esempio l'utente in questione sia proprietario della cartella oppure che  questa abbia schema ''777'', ecc.}}
{{Warningbox|Oltre a definire  correttamente gli utenti in samba è sempre necessario definire  correttamente i permessi UNIX sulle cartelle che si andranno a  condividere, ovvero se si desidera che l'utente pinco pallino abbia  accesso sia in lettura che scrittura ad una certa cartella non è  sufficiente imporre ''read only &#61; no'', ma bisogna che ad  esempio l'utente in questione sia proprietario della cartella oppure che  questa abbia schema ''777'', ecc.}}
Per visualizzare l'elenco degli utenti samba registrati:
<pre># pdbedit -L -v</pre>


====L'utenza guest ovvero le condivisione pubbliche====
====L'utenza guest ovvero le condivisione pubbliche====
Riga 274: Riga 279:
A titolo informativo si  ricorda che è possibile creare un utente in linux disabilitandone subito  la possibilità di autenticarsi aggiungendo al comando  <code>adduser</code> l'opzione  <code>--disabled-login</code>; qualora invece l'utente sia  già esistente è sufficiente usare l'opzione <code>-l</code>  del comando <code>passwd</code> per disabilitarne la  capacità di autenticarsi al sistema.
A titolo informativo si  ricorda che è possibile creare un utente in linux disabilitandone subito  la possibilità di autenticarsi aggiungendo al comando  <code>adduser</code> l'opzione  <code>--disabled-login</code>; qualora invece l'utente sia  già esistente è sufficiente usare l'opzione <code>-l</code>  del comando <code>passwd</code> per disabilitarne la  capacità di autenticarsi al sistema.


Vale la pena  esplicitare cosa succede nel caso <code>security = user</code> e <code>map to guest = Bad User</code>  quando l'utente windows clicca sull'icona del server:
Vale la pena  esplicitare cosa succede nel caso <code>security = user</code> e <code>map to guest = Bad User</code>  quando l'utente windows clicca sull'icona del server:
* '''Utenza  windows non esistente o non mappata''': l'utente windows viene  automaticamente autenticato come guest; si noti che in tal caso è sempre  possibile autenticarsi nuovamente con una differente utenza quando si  accede ad una risorsa non pubblica, tuttavia una volta fatto ciò  l'utente sarà visto dal server samba sempre con il nome utente appena  immesso, a meno di non disconnettersi e riconnettersi a windows.
* '''Utenza  windows non esistente o non mappata''': l'utente windows viene  automaticamente autenticato come guest; si noti che in tal caso è sempre  possibile autenticarsi nuovamente con una differente utenza quando si  accede ad una risorsa non pubblica, tuttavia una volta fatto ciò  l'utente sarà visto dal server samba sempre con il nome utente appena  immesso, a meno di non disconnettersi e riconnettersi a windows.
* '''Utenza windows esistente o mappata'''
* '''Utenza windows esistente o mappata'''
**  ''Password windows coincidente'': l'utente windows viene  automaticamente autenticato con il suo nome utente o con quello definito  dalla mappa utenti, parametro <code>username map</code>.
**  ''Password windows coincidente'': l'utente windows viene  automaticamente autenticato con il suo nome utente o con quello definito  dalla mappa utenti, parametro <code>username map</code>.
**  ''Password windows non coincidente'': quando allo stesso utente sono  associate due password differenti in windows e samba-linux viene  proposta la finestra di login; in caso di immissione errata della  password all'utente viene negato qualsiasi accesso alle risorse remote  (compreso il semplice elenco delle risorse condivise). Si noti che un  utente con nome windows coincidente con uno di quelli linux non può  usare l'utenza guest, pertanto se l'utenza omonima sul server linux non è  di sua proprietà egli non potrà autenticarsi presso il server con il  suo nome utente windows. In tal caso l'unico modo per garantirgli  l'accesso è creare un apposita utenza in linux e comunicargli le  relative credenziali (attenzione a non rimappare l'utenza poiché in tal  caso verrebbe bloccato l'accesso all'altro utente).
**  ''Password windows non coincidente'': quando allo stesso utente sono  associate due password differenti in windows e samba-linux viene  proposta la finestra di login; in caso di immissione errata della  password all'utente viene negato qualsiasi accesso alle risorse remote  (compreso il semplice elenco delle risorse condivise). Si noti che un  utente con nome windows coincidente con uno di quelli linux non può  usare l'utenza guest, pertanto se l'utenza omonima sul server linux non è  di sua proprietà egli non potrà autenticarsi presso il server con il  suo nome utente windows. In tal caso l'unico modo per garantirgli  l'accesso è creare un apposita utenza in linux e comunicargli le  relative credenziali (attenzione a non rimappare l'utenza poiché in tal  caso verrebbe bloccato l'accesso all'altro utente).
===== Note su <code>security = user</code> =====
Perché l'utenza guest funzioni correttamente attenersi a quanto segue oltre a quanto già detto:
* Evitare accuratamente di dichiarare il parametro <code>valid users</code> sia nella sezione <code>[global]</code> che in quella della risorsa che deve essere accessibile all'utenza "guest".
* Dichiarare nel file di mappatura utenti l'associazione ''account_guest_linux = guest'', che nel caso predefinito equivale a scrivere <code>nobody = guest</code>


====Sincronizzazione delle password samba e linux====
====Sincronizzazione delle password samba e linux====
Qualora  si desiderasse mantenere sincronizzate le password linux  (<code>passwd</code>) con quelle definite attraverso  <code>smbpasswd</code> è possibile ricorrere ad appositi  parametri, come già scritto.
Qualora  si desiderasse mantenere sincronizzate le password linux  (<code>passwd</code>) con quelle definite attraverso  <code>smbpasswd</code> è possibile ricorrere ad appositi  parametri, come già scritto.
{{Box|NOTA|con questo metodo la  sincronizzazione è unidirezionale, ovvero qualsiasi modifica alla  password samba verrà automaticamente propagata a quella linux, ma non viceversa.}}
{{Box|NOTA|con questo metodo la  sincronizzazione è unidirezionale, ovvero qualsiasi modifica alla  password samba verrà automaticamente propagata a quella linux, ma non viceversa.}}
Oltre ad utilizzare <code>passwd</code>  per impostare le password è anche possibile usare PAM, badando bene che i  due metodi sono mutualmente esclusivi. In particolare impostare  <code>pam password change = yes</code> comporta l'automatica  esclusione della prima modalità.<br>
Oltre ad utilizzare <code>passwd</code>  per impostare le password è anche possibile usare PAM, badando bene che i  due metodi sono mutualmente esclusivi. In particolare impostare  <code>pam password change = yes</code> comporta l'automatica  esclusione della prima modalità.<br>
In entrambi i casi  devono essere sempre definiti i parametri <code>passwd  chat</code> (anche il testo da passare può essere il medesimo) e  <code>unix passwd sync = yes</code>.<br>
In entrambi i casi  devono essere sempre definiti i parametri <code>passwd  chat</code> (anche il testo da passare può essere il medesimo) e  <code>unix passwd sync = yes</code>.<br>
Riga 374: Riga 385:
# dpkg-reconfigure smb2www
# dpkg-reconfigure smb2www
</pre>
</pre>
* Aprire il file <tt>'''/etc/smb2www/smb2www.conf'''</tt> e modificare la voce <tt>'''enabled=no'''</tt> in <tt>'''enabled=yes'''</tt>
* Aprire il file <code>'''/etc/smb2www/smb2www.conf'''</code> e modificare la voce <code>'''enabled=no'''</code> in <code>'''enabled=yes'''</code>


=== Sicurezza ===
=== Sicurezza ===
Riga 393: Riga 404:
</pre>
</pre>
Alcune note:
Alcune note:
* Se intendete (come credo) permettere l'accesso al servizio anche da altre macchine dovete cambiare la direttiva <tt>'''allow from 127.0.0.1'''</tt> con <tt>'''Allow from All'''</tt> o <tt>'''Allow from 192.168.1.0/24'''</tt> (o simili, a seconda della classe della vostra rete LAN)
* Se intendete (come credo) permettere l'accesso al servizio anche da altre macchine dovete cambiare la direttiva <code>'''allow from 127.0.0.1'''</code> con <code>'''Allow from All'''</code> o <code>'''Allow from 192.168.1.0/24'''</code> (o simili, a seconda della classe della vostra rete LAN)
* Se intendete  utilizzare la gestione utenti di Linux aggiungete la direttiva  <tt>'''AllowUserFile /etc/passwd'''</tt>
* Se intendete  utilizzare la gestione utenti di Linux aggiungete la direttiva  <code>'''AllowUserFile /etc/passwd'''</code>
* Ulteriori informazioni si trovano in <tt>/usr/share/doc/smb2www/index.html</tt>
* Ulteriori informazioni si trovano in <code>/usr/share/doc/smb2www/index.html</code>
 
[[Categoria:Reti con Windows]]
[[Categoria:Samba]]
2 853

contributi

Menu di navigazione