Linux - Dominio Samba - SENZA Ldap

Ecco la procedura step by step, testata da me in prima persona, per creare un dominio windows con un server linux settato come domain controller con samba. 

E' stata aggiunta anche la possibilità di utilizzare i roaming profiles e script di logon.

Nel caso in cui si voglia creare un dominio windows con samba, ma utilizzando ldap, la procedura da me testata step by step è la seguente (consiglio questa soluzione):

Parte 1
http://alessandromazzanti.blogspot.com/2011/03/parte-3-di-6-samba-installare-server.html

Parte 2

http://alessandromazzanti.blogspot.com/2011/03/parte-4-di-6-samba-configurare-ldap.html

Parte 3
http://alessandromazzanti.blogspot.com/2011/03/parte-5-di-6-samba-settaggio-di-samba.html

Parte 4

http://alessandromazzanti.blogspot.com/2011/04/dominio-windows-con-samba-66-aggiunta.html
 
1) yum install samba samba-common samba-client



2) chkconfig smb on

3) system-config-network-tui
impostando gli ip, ed altre info. Si è assunto che il nome del server è server01

4) Modifichiamo il file smb.conf come descritto di seguito:

5) vim /etc/samba/smb.conf
----------------------------------------INIZIO SMB.CONF----------------------------------

[GLOBAL]

workgroup = intranet   - E' il nome del Dominio e/o del Workgroup

netbios name = server01 - E' il nome del server Samba

server string = Samba PDC - Versione %v - La descrizione del server 

security = user - Impone di autenticare gli utenti localmente. E' necessario su un PDC Samba

smb passwd file = /etc/samba/smbpasswd  

encrypt passwords = yes - Cripta login e password in fase di autenticazione: obbligatorio su un PDC e necessario per interagire senza problemi con client Windows NT o successivi

log file = /var/log/samba/log.%m - Definisce la posizione dei log e indica di creare log diversi on i nomi delle rispettive macchine client 

max log size = 100

log level = 1 - imposta il livello di debug

os level = 255 - Imposta il valore con cui partecipare alle elezioni per il Master Browser

preferred master = yes - Forza una elezione quando si avvia e vi partecipa con maggiori possibilità di successo

local master = yes - Fa partecipare Samba alle elezioni per il Local Master Browser

domain master = yes - La riga che indica a Samba di operare com PDC

wins support = yes

domain logons = yes - Permette ai client Windows di loggarsi sul dominio autenticandosi con il server Samba

hosts allow = 127.0.0.1 192.168.137.0/255.255.255.0 - Permette l'accesso solo dal localhost e dalla rete 192.168.137.0/24

add machine script = /usr/sbin/useradd -d /dev/null -g machines -s /bin/false -M %u  - Aggiunge automaticamente al sistema l'account di una nuova macchina che entra nel dominio)

logon drive = H: - Crea l'unità di rete H: al login su client Windows

logon script = logon.bat - Specifica quale script eseguire sul client ad ogni login. Lo script viene cercato nella directory definita nella condivisione [netlogon]

logon path = \\%S\profiles\%U se non ci sono dns locali nella lan è necessario sostituire server1 con l'IP - Definisce la posizione della directory profiles (per client WinNT/2k/XP) in \\nomeserver\profiles\nomeutente

logon home = \\%S\%U
add user script = /usr/sbin/useradd -m '%u' -g users -G users - Scriptper aggiungere utente

delete user script = /usr/sbin/userdel -r %u - script per rimuovere utente

add group script = /usr/sbin/groupadd %g - Script per aggiungere gruppo

delete group script = /usr/sbin/groupdel %g - Script per cancellare gruppo

add user to group script = /usr/sbin/usermod -G %g %u

idmap uid = 15000-20000

idmap gid = 15000-20000

template shell = /bin/bash

passwd program = /usr/bin/passwd %u

passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .

passwd chat debug = yes

unix password sync = yes

profile acls = yes

[HOMES]

Share speciale, che definisce la posizione delle home directory 

valid users = %S, @supervisore - E' valido solo l'utente stesso ed il gruppo supervisore  

comment = Home Directory - per ogni User Descrizione della condivisione 

browseable = no - E' bene non rendere pubblicamente visibile le home dei singoli utenti 

writeable = yes - Ogni utente deve poter scrivere nella sua home

[NETLOGON

Condivisione speciale che contiene gli script che vengono eseguiti sui client Windows al login sul dominio. Devono essere eseguibili su Windows e possono essere utilizzati per varie operazione di amministrazione centralizzata (backup di dati locali, aggiornamento programmi o antivirus, mappatura di nuove condivisioni di rete ecc.) 

comment = Network Logon Service  

path = /home/samba/netlogon - La directory sul server in cui sono contenuti, in sottodirectory con nome uguale al login dell'utente, gli script definiti con la direttiva "logon script"

admin users = @supervisore

valid users = %U

read only = yes - Questi script devono essere accessibili solo in lettura... 

guest ok = yes

share modes = no

browseable = no - Questa è una condivisione di servizio che è inutile mostrare agli altri utenti

available = yes 

write list = @supervisore... tranne agli utenti del gruppo (@) supervisore

[PROFILES] 

Share speciale dove vengono scritti i file di profilo per i gli utenti roaming. Ad ogni login e logout il suo contenuto viene sincronizzato con la cartella dei documenti sul computer locale (C:/Documenti/NomeUtente.dominio)

comment = User profiles

path = /home/samba/profiles - La directory locale sul server Samba dove sono salvati i profili. Qui vengono, automaticamente, create delle sottodirectroy con i nomi degli utenti

valid users = %U - Solo l'utente vi può accedere

create mask = 0600 - La maschera con cui vengono creati i file: Pieni permessi all'owner, nessun permesso per gli altri utenti

security mask = 0600

directory mask = 0770 - La maschera con cui vengono create le directory: per l'owner devono essere anche eseguibili (sfogliabili)

directory security mask = 0770

read only = no - Il profilo non è in sola lettura

writeable = yes - I profili sono sincronizzati con il client al login e al logout e devono essere scrivibili
 
browseable = no - Come per le home, anche i profili non devono essere visibili agli altri utenti

available = yes
-------------------------------------FINE FILE SMB.CONF-----------------------------------------

6) A questo punto è necessario creare gli utenti, gruppi e le cartelle per il domain logon e profili.
Vanno creati gli utenti di dominio:
useradd utente
 
groupadd gruppo_utente
 
7) per associare il gruppo creato all'utente si utilizza il seguente comando 
 
usermod -G gruppo_utente utente
 
8) E' necessario aggiungere il gruppo supervisore
 
groupadd supervisore Si crea  il gruppo supervisore, composto da utenti che possono editare gli script di logon.  Considerare che questi script  sono particolarmente importanti,  in termini di sicurezza, visto che vengono eseguiti  sui client Window.
 
9) Vanno create le cartelle:
 
mkdir -p /home/samba/netlogon 
 
mkdir /home/samba/profiles 
 
chown -R root:users /home/samba/ 
 
chmod 777 /home/samba/ 
 
chmod -m 0755 /home/samba/netlogon/ 
 
chmod 770 /home/samba/profiles/
 
 
10) Se uno volesse aggiungere altre shares, questa è la procedura per creare una share accessibile da tutti gli utenti.
Prima di tutto è necessario creare la directory della share che vogliamo condividere.
Dopo è necessario cambiare il proprietario, gruppo e permessi:


mkdir -p /home/shares/allusers/
 
chown -R root:users /home/shares/allusers/
 
chmod -R 775 /home/shares/allusers/
 
vim /etc/smb.conf
----------------------------------------------------------------------------------------------------------------

[SHARES]

comment = Share for all users (or something other)

path = /home/shares/allusers/ (The path to the directory that you created at step 6.1)

valid users = @users @supervisore

read only = No (if the users should be able to write to this share)

create mask = 0660

security mask = 0660

directory mask = 0771

directory security mask = 0771

browseable= Yes
----------------------------------------------------------------------------------------------------------------

11)  A questo punto è necessario aggiungere il pc al dominio

12) Windows 2000 

Le procedure sono uguali a quelle per Windows NT tranne che i settaggi di rete sono trovati sotto Pannello di Controllo à Sistema  à Identificazione Rete (oppure, sul Desktop, cliccare col tasto destro del mouse sull'icona Risorse del Computer, selezionare Proprietà, cliccare sulla tab Identificazione Rete e sul tasto Proprietà)

13) Windows XP

 - Aprire l'editor delle policy di Sicurezza Locale
(Start
à Pannello di controlloStrumenti di Aministrazione  à Criteri di protezione locali  à Criteri locali  à opzioni di protezione)

- Disabilitare la voce "Domain member: Digitally encrypt or sign secure channel (always)" (Membro di dominio: aggiunta crittografia o firma digitale ai dati del canale protetto (sempre) 

-  Disabilitare la voce "Domain member: Disable machine account password changes" (Controller di dominio: rifiuta cambio password account computer)

- Disabilitare la voce "Domain member: Require strong (Windows 2000 or later) session key" (Membro di dominio: richiesta chiave di sessione avanzata (Windows 2000 o versioni successive) )

- Scaricare https://dev.mobileread.com/trac/iliados/browser/upstream/samba-3.0.20/docs/registry/WinXP_SignOrSeal.reg?rev=10 la patch per il registro WinXP_SignOrSeal. Per applicarla cliccare due volte sul file .reg e rispondere Si alle domande 

- A questo punto ci si può unire al dominio come su Windows NT/2000: Tasto destro su Risorse del Computer, selezionare Proprietà, Nome del Computer e tasto Modifica uppure cliccare su Identificazione di Rete ed eseguire il Wizard.

APPENDICE - comandi opzionali


add machine script = /usr/sbin/useradd -d /dev/null -g machines -s /bin/false  -M %u
(Solo su Samba 3) Aggiunge automaticamente al sistema l'account di una nuova macchina che entra nel dominio)

passwd -l nomeNetBios$
Viene messo un lock sulla password, in modo da lasciarla nulla e non renderla modificabile se non da root

smbpasswd -a -m nomeNetBios
Si crea un nuovo computer account per /etc/samba/smbpasswd e si imposta la relativa password. L'opzione -a permette di crearlo, se non esiste, l'opzione -m indica che si tratta di un machine account, il nome NetBios della macchina da aggiungere NON va seguito da $, in questo caso, in quando questo carattere viene aggiunto automaticamente. Non è necessario ricordare la password inserita in quanto viene gestita direttamente fra PDC e client del dominio)