Capitolo 6.   Autenticazione di utenti MS-Windows con Samba

A partire dalla versione 2.0 è possibile configurare Samba come domain controller e autenticare gli utenti degli elaboratori clienti MS-Windows 95/98 sostituendo un servente MS-Windows NT/2000.

Con la versione 2.1 è stata data la possibilità di accreditare anche clienti MS-Windows NT.

Dalla versione 2.2, Samba può accreditare anche clienti MS-Windows 2000/XP ed è stato aggiunto il demone winbindd che consente di usare un domain controller MS-Windows come servente per le utenze, allineando del tutto le utenze di GNU/Linux con quelle di MS-Windows e centralizzando la loro gestione su un solo sistema.

Le novità introdotte con la versione 3, unitamente alle funzionalità ancora non presenti, sono state già elencate nel capitolo introduttivo (1.1).

In questa sede viene presa in esame solo la configurazione di Samba come PDC per l'accreditamento di clienti MS-Windows 95/98/Me/NT/XP.

Di seguito viene presentato un possibile file smb.conf con le definizioni necessarie affinché Samba sia un PDC:

[global]
   netbios name = serv_samba
   workgroup = INF
   server string = Samba Server NT
   log file = /var/log/samba/%m.log
   max log file = 50
   security = user
   encrypt password = yes
   passdb backend = smbpasswd
   local master = yes
   preferred master = yes
   os level = 33
   domain master = yes
;
   domain logons = yes
;
#  script di accesso fisso per tutti
   logon script = logon.bat
#  oppure uno per ogni cliente
;  logon script = %m.bat
#  oppure uno per ogni utente
;  logon script = %U.bat 
; 
#  profili utenti  
   logon path =  \\serv_samba\profile\%U

   
[netlogon]
   comment = Directory degli script di inizializzazione
   path = /home/netlogon
   read only = yes
   guest ok = yes
   browseable = no

[home]
   comment = Dir utente
   path = /home/%U
   browseable = yes
   writable = yes

[public]
   comment = Dir pubblica
   path = /home/public
   browseable = yes
   writable = yes
   public = yes
   create mask = 0777

6.1   Domain logons

È la direttiva che permette di configurare Samba come PDC in quanto lo imposta come servente di autenticazione di dominio.

6.2   Logon script

Samba consente l'esecuzione degli script di accesso di MS-Windows (.BAT o .CMD). Tali script vengono eseguiti sul cliente al momento della connessione di un utente al dominio ma sono memorizzati sul servente e vengono quindi trasferiti attraverso la rete. Ovviamente sono molto utili per impostare dinamicamente le configurazioni di rete per gli utenti quando si connettono.

L'opzione logon script permette appunto di indicare il nome dello script da eseguire quando l'utente si collega; come si vede dall'esempio può essere uno script unico, valido per tutti, oppure dipendente dal cliente o dal nome utente.

Sul servente GNU/Linux questi script vengono memorizzati nella directory indicata nella condivisione netlogon, che viene descritta più avanti.

Una cosa importante da ricordare è che gli script di accesso vengono eseguiti in ambiente MS-Windows e devono quindi avere righe terminanti con i caratteri di <CR> e <LF>, invece del solo <LF> di un sistema GNU/Linux.

Nel caso tali script siano scritti in ambiente Linux si può utilizzare il comando todos (che fa parte del pacchetto tofrodos) per convertirli al formato MS-Windows.

L'esempio seguente di script di accesso, definisce un disco di rete W: su una condivisione di Samba:

   echo Connette disco di rete
   net use w: \\serv_samba\dati

6.3   Logon path

In MS-Windows 95/98 ciascun utente può avere il proprio profilo comprendente informazioni sull'aspetto della scrivania grafica, sulle applicazioni che appaiono nel menù {Start}, sullo sfondo e altre ancora. Tale profilo può essere memorizzato direttamente su un elaboratore cliente e si chiama allora «profilo locale», oppure sul servente e si chiama «profilo di roaming», in quanto l'utente ha a disposizione sempre lo stesso ambiente anche spostandosi da un cliente all'altro.

La direttiva logon path viene usata per indicare dove vengono memorizzati i profili dei vari utenti.

6.4   Logon home e logon drive

Con logon home si indica la posizione della directory personale di un utente, che può essere diversa da quella indicata nella sezione homes.

Con logon drive, da usare solo in caso di clienti MS-Windows NT, si indica la lettera del disco su un cliente in cui vengono abbinate le directory personali indicate con logon home.

6.5   Sezione [netlogon]

In questa sezione viene configurata una condivisione speciale che serve a contenere gli script di accesso. La configurazione scelta nell'esempio (sola lettura, pubblica, non visibile alla scansione delle risorse) è dettata dal ruolo particolare che svolge.

6.6   Definizione delle utenze per macchina

Nel caso nella rete siano presenti dei clienti MS-Windows NT/2000/XP Workstation/Professional, per essi devono essere creati sul PDC i cosiddetti machine account in aggiunta alle utenze normali. Ovviamente, tali utenze speciali devono essere inserite sia come utenti Samba che come utenti del sistema GNU/Linux che ospita il servente; i comandi necessari sono i seguenti:

/usr/sbin/groupadd machines

Per creare un gruppo, denominato machines, in cui definire le utenze macchina;

/usr/sbin/useradd -d /dev/null -g machines -c"descrizione_elaboratore_client" \
  \-s /bin/false nome_elaboratore$

passwd -l nome_elaboratore$

smbpasswd -a -m nome_elaboratore

È necessario prestare attenzione al carattere $ alla fine del nome della macchina nel primo e nel secondo comando.
Il secondo comando permette di bloccare la parola d'ordine di quell'utente fittizio.
Con il terzo comando si definisce l'utente nome_elaboratore per Samba grazie all'opzione -m.

Con Samba 3 è possibile definire uno script per creare automaticamente gli utenti GNU/Linux e Samba corrispondenti alle utenze macchina; la direttiva da inserire in smb.conf è:

add machine script = 

ad esempio:

add machine script = /usr/sbin/useradd -d /dev/null -g 100 -c descr -s /bin/false %u

6.7   Nota importante per clienti MS-Windows XP Professional

Nel caso si tenti di accedere da clienti MS-Windows XP (solo versione Professional in quanto con la versione Home non è possibile causa il mancato supporto dei domini), in presenza di serventi Samba non recenti, il processo di autenticazione può non concludersi positivamente a causa di una impostazione di sicurezza che deve essere variata nella macchina cliente.

A questo scopo occorre attivare la macchina MS-Windows XP come utente Administrator in locale ed effettuare i seguenti passaggi:

«Pannello di controllo»

«Prestazioni e manutenzione»

«Strumenti di amministrazione»

«Criteri di protezione locali»

«Criteri locali»

«Opzioni di protezione»

Nella lista che si ottiene si devono individuare le voci:

e si devono impostare a «Disattivato».

Al successivo avvio della macchina sarà possibile farsi autenticare dal PDC Samba.

6.8   Nota importante per clienti MS-Windows 7

Nel caso si tenti di accedere da clienti MS-Windows 7, occorre fare in modo che tali macchine possano associarsi al dominio Samba intervenendo sul registro di sistema con il comando regedit.

Il percorso da considerare è HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\services\LanmanWorkstation\parameters\ e si devono aggiungere le seguenti due voci:

   DWORD  DomainCompatibilityMode = 1
   DWORD  DNSNameResolutionRequired = 0