Update da Samba3 NT a Samba 4 AD
Questa procedura e` lunga e complessa, e non solo, ma non si torna indietro a meno di non avere un backup dei client. Quando un client "vede" il dominio AD, poi non torna piu` al dominio NT.
Leggetevi BENE anche il wiki di Samba.org, qui: https://wiki.samba.org/index.php/Samba_Classic_Upgrade_(NT4-style_domain_to_AD)
Situazione di partenza
Questa procedura e` stata provata in virtuale (laboratorio creato apposta) come segue:
- Server Samba 3.6.6 Debian 7
- Client Windows 7 pro 64 joinato al dominio NT
- nome dominio netbios: MBUTI
- nome FQDN server: samba4.mbuti.locale
- netbios name del server: samba4
- backend di autenticazione di samba3: dtbsam (niente LDAP)
Situazione di arrivo
All'arrivo mi aspetto di avere Samba 4.2 (da Sernet) installata sullo stesso server di partenza, con lo stesso nome di dominio, e di avere il client win7 ancora in dominio senza doverlo togliere e rimettere nel dominio.
Una eventuale configurazione con un cambio di server fisico non dovrebbe differire di molto da questa, se non perche` ci si trova con un eventuale cambio di hostname del domain controller (vedi il wiki di Samba.org).
Check preliminari
Facendo riferimento al Wiki di samba.org, occorre controllare alcune cose:
- Che nessun RID/SID sia duplicato (usando pdbedit -L -v e net groupmap list e qualche script per fare il confronto dei vari SID)
- Che non esista un gruppo con un nome uguale a un utente (nel caso occorre rinominare / cancellare il gruppo o l'utente)
- Che non esistano gruppi, seppure diversi, che abbiano lo stesso "Display Name"
- assicurarsi che tutti i client siano SPENTI prima di iniziare
Occorre anche che il server dove installiamo samba4 abbia i seguenti requisiti:
- Samba richiede l'uso delle ACL Posix e degli attributi estesi sul file system. Occorre quindi usare ext4 (che li supporta di default) oppure abilitarli sul file system che volete usare.
- Non ci deve essere un DNS server sulla macchina che fa da AD, perche` lo fa Samba (o almeno e` cosi` di default).
- Usare NTP perche` la sincronizzazione dell'ora e` importante (anche nei client!)
Backup configurazioni di samba3
Per fare la migrazione dobbiamo togliere samba3 e installare samba4, ma prima di farlo dobbiamo assicurarci di salvare tutto quanto ci servira` dopo.
- Fermare samba
- Esportare, per sicurezza, un elenco di utenti e gruppi, e gli ID del dominio:
pdbedit -L -v > users.txt net groupmap list > gruppi.txt net getdomainsid > sid.txt
- copiare da qualche parte tutta /etc/samba
- copiare da qualche parte tutta /var/lib/samba (i files tdb,ldb, ecc)
Eliminazione di Samba3 e installazione di Samba4
Usiamo samba 4.2 presa da Sernet, perche` Samba4 in Debian e` troppo vecchia (4.1.x) ed e` piena di bug e limitazioni. Ovviamente se stiamo installando samba4 su una macchina diversa non c'e` nessun bisogno di cancellare samba3 dalla macchina di partenza, basta essere sicuri che non sia in esecuzione.
Esegui aptitude purge samba per eliminare il vecchio samba
Elimina o sposta /etc/samba e /var/lib/samba in modo che l'installazione nuova sia PULITA
Vai su https://portal.enterprisesamba.com/ e segui le istruzioni per installare samba piu` moderno (al momento 4.2.x)
Installa il pacchetto sernet-samba-ad che si porta dietro le dipendenze richieste
Installa il pacchetto acl che verra` utile
Modifica il file /etc/default/sernet-samba per impostare SAMBA_START_MODE="ad"
Ricorda che gli script di init si chiamano sernet-samba-qualcosa, e che quello che ti interessa usare e` /etc/init.d/sernet-samba-ad
Il vantaggio di usare Samba 4.2.x e` che si puo` fare un file server facilmente sul DC, cosa che e` sconsigliatissima prima della 4.2.
Per poter vedere correttamente gli utenti di Samba dal sistema (sulla macchina stessa del DC AD), usando samba 4.2 o superiore, e` sufficiente verificare che winbindd stia girando (ps ax) e poi modificare il file /etc/nsswitch.conf come segue:
passwd: compat winbind group: compat winbind
Provisioning del dominio AD
Il passo successivo e` la migrazione vera e propria dei dati, ovvero il provisioning iniziale del dominio AD basandosi sui dati che abbiamo salvato dal vecchio samba 3.
Per eseguire il provisioning, ci servono i seguenti files del vecchio Samba:
- Da /etc/samba:
- smb.conf
- Da /var/lib/samba (e relative sottodirectory, che non sono sempre le stesse a seconda delle versioni di Samba 3)
- secrets.tdb
- schannel_store.tdb
- passdb.tdb
- gencache_notrans.tdb
- group_mapping.tdb
- account_policy.tdb