Home > Tips Linux e Microsoft > Samba come controller di dominio

Samba come controller di dominio

Samba come controller di dominio

Benché non possa funzionare come un controller di dominio primario (PDC) Active Directory, un server Samba può essere configurato per apparire come un controller di dominio in stile Windows NT4. Uno dei vantaggi di questa configurazione consiste nell’abilità di centralizzare le credenziali di utenti e computer, inoltre, Samba può utilizzare diversi backend per archiviare le informazioni.

Controller di dominio primario (PDC)

Questa sezione spiega come configurare Samba come controller di dominio primario (PDC) usando il backend predefinito «smbpasswd».

  1. Per prima cosa, installare Samba e libpam-smbpass per sincronizzare gli account utente digitando quanto segue in un terminale:
    sudo apt-get install samba libpam-smbpass
    
  2. Configurare Samba modificando il file /etc/samba/smb.conf. La variabile security dovrebbe essere impostata a user e il workgroup dovrebbe essere relativo alla propria organizzazione.
       workgroup = ESEMPIO
       ...
       security = user
    
  3. Nelle sezione «Domains» aggiungere o togliere il commento a quanto segue:
       domain logons = yes
       logon path = \\%N\%U\profile
       logon drive = H:
       logon home = \\%N\%U
       logon script = logon.cmd
       add machine script = sudo /usr/sbin/useradd -n -g machines -c Machine -d /var/lib/samba -s /bin/false %u
    
    • domain logons: fornisce il servizio netlogon facendo in modo che Samba si comporti come un controller di dominio.
    • logon path: posiziona il profilo degli utenti Windows all’interno della loro directory home. È possibile anche configurare una condivisione [profiles] posizionando tutti i profili all’interno di una sola directory.
    • logon drive: specifica il percorso locale della directory home.
    • logon home: specifica la posizione della directory home.
    • logon script: determina quale script eseguire localmente una volta che un utente ha eseguito l’accesso. Lo script deve essere all’interno della condivisione [netlogon].
    • add machine script: uno script che crea automaticamente lo Machine Trust Account necessario per accedere al dominio.In questo esempio il gruppo machines deve essere creato usando l’utilità addgroup. Per maggiori informazioni, consultare la sezione chiamata «Aggiungere e rimuovere utenti».
    [Nota]
    Per non usare i profili roaming, non togliere il commento alle opzioni logon home e logon path.
  4. Togliere il commento alla condivisione [homes] per consentire la mappatura di logon home:
    [homes]
       comment = Home Directories
       browseable = no
       read only = no
       create mask = 0700
       directory mask = 0700
       valid users = %S
    
  5. Quando configurato come controller di dominio, è necessario configurare una condivisione [netlogon]. Per abilitarla, togliere il commento a:
    [netlogon]
       comment = Network Logon Service
       path = /srv/samba/netlogon
       guest ok = yes
       read only = yes
       share modes = no
    
    [Nota]
    Il percorso della condivisione predefinita di netlogon è /home/samba/netlogon, ma in base allo «Filesystem Hierarchy Standard» (FHS), /srv è la corretta posizione i cui dovrebbero essere tenuti i file specifici dei siti forniti dal sistema.
  6. Creare la directory netlogon e un file logon.cmd per ora vuoto:
    sudo mkdir -p /srv/samba/netlogon
    sudo touch /srv/samba/netlogon/logon.cmd
    

    È possibile inserire qualsiasi comando di logon Windows in logon.cmd per personalizzare l’ambiente del client.

  7. Con l’utente root disabilitato in modo predefinito, per poter inserire una workstation nel dominio, un gruppo di sistema deve essere mappato al gruppo Windows Domain Admins. Usando l’utilità net, da un terminale digitare:
    sudo net groupmap add ntgroup="Domain Admins" unixgroup=sysadmin rid=512 type=d
    
    [Nota]
    Modificare sysadmin con un qualsiasi altro gruppo si voglia usare. Inoltre, l’utente usato per unirsi al dominio deve essere membro del gruppo sysadmin oltre al gruppo admin. Il gruppo admin consente l’utilizzo di sudo.
  8. Riavviare Samba per abilitare il nuovo controller di dominio:
    sudo /etc/init.d/samba restart
    
  9. Dovrebbe ora essere possibile unire i client Windows al dominio come in un dominio NT4 in esecuzione su un server Windows.

Controller di dominio di backup

Con la presenza di un controller di dominio primario (PDC) all’interno delle rete è utile avere anche un controller di dominio di backup (BDC). In questo modo i client potranno autenticarsi anche nel caso in cui il PDC non sia più disponibile.

Quando si configura Samba come BDC, è necessario avere un metodo di sincronizzazione delle informazioni sugli account con il PDC. A questo scopo è possibile usare scp, rsync oppure LDAP come backend passdb.

Il metodo migliore per sincronizzare le informazioni sugli account consiste nell’usare LDAP, poiché entrambi i controller di dominio possono usare le stesse informazioni in tempo reale. Configurare un server LDAP potrebbe essere troppo complicato per un esiguo numero di utenti e computer. Per maggiori informazioni, consultare la sezione chiamata «Samba e LDAP».

  1. Installare samba e libpam-smbpass. Da un terminale digitare:
    sudo apt-get install samba libpam-smbpass
    
  2. Modificare il file /etc/samba/smb.conf e togliere il commento a quanto segue nella sezione [global]:
       workgroup = ESEMPIO
       ...
       security = user
    
  3. Nella sezione Domains togliere il commento o aggiungere quanto segue:
       domain logons = yes
       domain master = no
    
  4. Assicurarsi che un utente abbia i permessi di lettura sui file in /var/lib/samba. Per esempio, per consentire agli utenti del gruppo admin di eseguire scp sui file, digitare:
    sudo chgrp -R admin /var/lib/samba
    
  5. Sincronizzare gli account utente usando scp per copiare la directory /var/lib/samba dal PDC:
    sudo scp -r NOME_UTENTE@PDC:/var/lib/samba /var/lib
    
    [Nota]
    Sostituire NOME_UTENTE con un nome utente valido e PDC con il nome host o l’indirizzo IP del controller di dominio primario.
  6. Riavviare samba:
    sudo /etc/init.d/samba restart
    

È possibile verificare se il controller di dominio di backup è funzionante fermando il demone Samba sul PDC e quindi cercando di eseguire l’accesso su un client Windows all’interno del dominio.

È utile ricordare anche che se è stata configurata l’opzione logon home come directory sul PDC e quest’ultimo non è più disponibile, anche l’accesso al drive home degli utenti non lo sarà. Per questo motivo è utile configurare logon home affinché sia posizionato in un server di file separato da PDC e BDC.

Accorgimenti per Ubuntu come PDC Samba

Published by Lorenzo at 7:05 pm under Debian / Ubuntu, Linux, Samba, Server

Per installare Samba su Ubuntu, il problema non è tanto l’installazione in sé, ma il fatto che Ubuntu ha l’utente root disabilitato, e quindi bisogna prendere particolari accorgimenti.

Per prima cosa, non credo sia necessario, ma io assegno una password all’utente root, tramite il comando

$ sudo -s -H

# passwd root

Poi, una volta installato Samba, bisogna aver cura nella configurazione del file smb.conf, di mettere nello script di aggiunta della macchina nel dominio questo comando:

add machine script = sudo /usr/sbin/useradd -d /dev/null -g gruppocomputers -s /bin/false %u

dove gruppocomputers è il gruppo che andrà creato in Linux che conterrà gli account macchina di tutti i PC connessi al dominio. Il gruppo sarà creato tramite questo comando:

$ sudo groupadd gruppocomputers

Altro problema, è il fatto che il comando nello script inizia con l’istruzione sudo, che però richiederebbe la password per funzionare, quindi, bisogna fare in modo che il comando sudo non richieda la password utilizzando il comando sudo visudo ed impostando questa riga:

utenteiniziale ALL=(ALL) NOPASSWD:ALL

dove per utenteiniziale si intende l’utente creato in fase d’installazione di Ubuntu. A questo punto, riapplicare i permessi originari del file tramite il comando

# chmod 440 /etc/sudoers

L’ultimo passaggio, è quello di creare l’utente root in Samba, dandogli la stessa password che è stata assegnata in precedenza all’utente root su Linux. Ciò serve perché è necessario indicare l’utente root da Windows quando si fa il join sul dominio Samba, ho provato inserendo l’utente iniziale ma Samba mi ha risposto con un poderoso gesto dell’ombrello. Quindi:

$ sudo smbpasswd -a root

E il gioco è fatto. Ora i client dovrebbero connettersi senza problemi al dominio, ovviamente, tutte le altre voci di configurazione devono essere impostate in modo appropriato.
A questo punto sorge un problema, cioè che quando si fa il join al dominio, l’utente root, che è l’amministratore del dominio, non fa parte del gruppo Domain Admins, ed in questo modo, l’utente root non è amministratore locale delle macchine connesse al dominio. Per fare in modo di mappare il gruppo Domain Admins col gruppo di Linux root, bisogna utilizzare questo comando:

$ sudo net groupmap modify ntgroup=”Domain Admins” unixgroup=root

Per impostare Samba come print server, bisogna per prima cosa installare CUPS col comando

$ sudo apt-get install cupsys cupsys-client

quindi, bisogna dare queste direttive nella sezione global in smb.conf

printing = CUPS
printcap = CUPS e poi, creare una condivisione printers con questi parametri

[printers]
path = /var/spool/samba printable = YES
use client driver = YES

A questo punto bisogna creare la cartella /var/spool/samba e quindi dare a tutti gli utenti tutti i permessi su questa cartella

$ sudo mkdir /var/spool/samba
$ sudo chmod 777 /var/spool/samba/

Rimangono da modificare due file di configurazione di CUPS, in modo da permettere la stampa in RAW. I file da modificare sono /etc/cups/mime.types e /etc/cups/mime.convs, in cui va decommentata la riga application/octet-stream se commentata. Fatto questo, va creata la stampante condivisa sulla porta parallela del server, tramite questo comando:

$ sudo lpadmin –p NOMESTAMPANTE –v parallel:/dev/lp0 –E

dove per NOMESTAMPANTE si intende il nome della stampante condivisa sul server Samba. Riavviare il demone CUPS sul server tramite il comando

$ sudo /etc/init.d/cupsys restart

Riferimenti:
http://www.howtoforge.com/samba_setup_ubuntu_5.10
http://www.osservatoriotecnologico.it/reti/how-to/file_server_samba.htm

Risorse

  • Per delle configurazioni più dettagliate riguardo Samba, consultare Samba HOWTO Collection
  • La guida è disponibile anche in formato cartaceo.
  • Il libro Using Samba di O’Reilly è un’altra buona lettura.
  • Il capitolo 4 della «Samba HOWTO Collection» spiega come configurare un controller di dominio primario.
  • Il capitolo 5 della «Samba HOWTO Collection» spiega come configurare un controller di dominio di backup.
Share

Tips Linux e Microsoft

  1. Nessun commento ancora...