Samba e OpenLDAP: creare un controller di dominio con Debian Squeeze: differenze tra le versioni

Nessun oggetto della modifica
Riga 1 246: Riga 1 246:
# chmod 0600 /etc/smbldap-tools/smbldap_bind.conf
# chmod 0600 /etc/smbldap-tools/smbldap_bind.conf
</pre>
</pre>
== Popolamento del database LDAP ==
Per un funzionamento corretto SAMBA ha bisogno di diversi gruppi predefiniti e 2 utenti: Administrator e nobody.<br/>
La tabella seguente riepiloga i gruppi e gli utenti di default di un dominio Windows:
{{Box | Nome - UID - Tipo |
Domain Admins:*:512:<br/>
Domain Users:*:513:<br/>
Domain Guests:*:514:<br/>
Domain Computers:*:515:<br/>
Administrators:*:544:<br/>
Account Operators:*:548:<br/>
Print Operators:*:550:<br/>
Backup Operators:*:551:<br/>
Replicators:*:552:<br/>
}}
Inoltre, affinché si riesca ad aggiungere computer al dominio in modo automantico (da macchine Windows), deve esistere un utente con uid = 0 da utilizzare per questa operazione. Tale utente può essere un utente root (da aggiungere a mano) o lo stesso Administrator cambiandogli l'uid. Quest'ultima è la scelta presa in questa configurazione, in modo da avere un utente Administrator che è Administrator per Samba e root per il "dominio" UNIX.
Per creare i gruppi predefiniti e gli utenti utilizzati da Samba è possibile procedere in due modi.
=== 1 - Utilizzo degli script forniti con smbldap-tools ===
La prima via consiste nel fare uso di alcuni script forniti con il pacchetto <tt>smbldap-tools</tt> che abbiamo già installato:
<pre>
# smbldap-populate -a root -k 0
# smbldap-useradd -a -m -c "Admin" Administrator
# smbldap-usermod -G "Domain Admins" Administrator
</pre>
Il parametro "-k 0" imposta l'UID di Administrator a 0, facendolo di fatto coincidere con l'utente root. Gli altri comandi fanno sì che Administrator sia aggiunto al gruppo dei Domain Admins. Durante l'esecuzione del comando vengono riepilogati i record aggiunti e vi verrà chiesto di cambiare (se volete) la password di Administrator; potete tranquillamente riscrivere la stessa password già impostata precedentemente.<br/>
Per verificare lo stato del database LDAP e i record aggiunti potete usare i comandi:
<pre>
# ldapsearch -x | less
</pre>
e:
<pre>
# ldapsearch -x uid=Administrator
</pre>
Su alcuni howto ho trovato suggerito, a questo punto, di cambiare ancora la password di Administrator con il comando:
<pre>
# smbldap-passwd Administrator
</pre>
Sebbene non mi sia chiaro il motivo, l'ho fatto, reinserendo nuovamente la stessa password utilizzata fino a questo punto della guida.
Questo sarà anche il comando che dovrà essere normalmente utilizzato per la gestione delle password.
=== Installazione del demone name service caching daemon (nscd) ===
Poichè il nostro server LDAP sarà consultato in maniera continuativa, potrebbe essere una buona idea installare un servizio di cache per alcuni dati degli utenti. In questo modo i dati contenuti in cache saranno forniti senza eseguire un accesso al database LDAP, velocizzando di conseguenza i tempi di risposta del server. Il demone nscd (name service caching daemon) esegue esattamente questa cosa:
<pre>
# apt-get install nscd
</pre>
La configurazione di default è più che sufficiente per i nostri scopi.<br/>
Questo potrebbe inoltre essere un buon momento per riavviare il demone di Samba:
<pre>
# /etc/init.d/samba restart
</pre>
=== Test di funzionamento ===
Riavviate il vostro server e controllate eventuali messaggi di errore al boot.
Una volta ripartito, con i comandi:
<pre>
getent passwd
getent group
</pre>
dovremmo vedere elencati anche gli utenti e i gruppi di dominio OpenLDAP.
Il comando:
<pre>
smbclient -L localhost -U Administrator
</pre>
dovrebbe, dopo aver richiesto la password di Administrator, mostrarci le condivisioni samba del nostro server.
== Assegnazione dei permessi agli utenti di dominio ==
Affinchè le directory dei profili e altre cosette funzionino senza intoppi è necessario assegnare i giusti permessi a gruppi di dominio o a utenti se è specifico per quell'utente:
<pre>
net -S server -U root rpc rights grant "DOMINIO\Domain Admins" SeMachineAccountPrivilege SePrintOperatorPrivilege SeAddUsersPrivilege SeDiskOperatorPrivilege SeRemoteShutdownPrivilege
</pre>
<pre>
net -S server -U root rpc rights grant "DOMINIO\rossi" SePrintOperatorPrivilege
</pre>
dove server in questo caso è il netbios name di Samba.
== Aggiungere i primi utenti di dominio ==
Il pacchetto smbldap-tools presente in Lenny, a differenza di quelli di Etch e Sarge, effettua un controllo di uid e gid ogni qualvolta si tenta di aggiungere un utente OpenLDAP al dominio, al fine di evitare sovrapposizioni nei valori; pertanto non è più necessario specificare a mano i corretti valori di uid e gid.
Adesso siamo pronti per la creazione del primo utente con il comando:
<pre>
# smbldap-useradd -a -m -c "Nome Utente" username
</pre>
Dove -a serve per creare anche i dati UNIX, -m crea l'home directory e -c specifica il nome completo.<br/>
Infine impostare la password dell'utente con:
<pre>
# smbldap-passwd username
</pre>
Per verificare il tutto usare il comando:
<pre>
# smbldap-usershow username
</pre>
Creiamo ora i gruppi per organizzare gli utenti all'interno del nostro dominio:
<pre>
# smbldap-groupadd "NomeGruppo"
</pre>
Aggiungiamo gli utenti ai gruppi desiderati:
<pre>
# smbldap-usermod -G "NomeGruppo" nome.utente
</pre>
<br/>
Se decidessimo di utilizzare la GUI fornita da phpldapadmin non dimentichiamoci di '''creare a mano''' le homes directory:
Ogni utente deve essere aggiunto ad un gruppo per prendere le credenziali, perciò non dimentichiamo di dare sempre il comando:
<pre>
# smbldap-usermod -G "NomeGruppo" nome.utente
</pre>
Ricordate di creare la cartella del roaming profile altrimenti al log in vi darà errore e il profilo non partirà:
<pre>
# mkdir -p /home/samba/profiles/%u (%u=nome utente)
# chown -R "%u":"Domain Users" /home/samba/profiles/%u
# chmod 700 /home/samba/profiles/%u
</pre>
== Script per la creazione utenti ==
per facilitare la vita a tutti ho creato uno script che con un solo comando vi assegna i permessi, crea gli utenti, crea la cartella profiles e aggiunge l'utente al gruppo Domain Users:
<pre>
# touch /home/samba/adduser.sh
</pre>
editiamolo così:
<pre>
#!/bin/bash
/usr/sbin/smbldap-useradd -a -m -c "${2}" "${1}"
/usr/sbin/smbldap-usermod -G "Domain Users" "${1}"
USER_PROFILE="/srv/samba/profiles/"${1}""
/bin/mkdir -p "${USER_PROFILE}"
/bin/chown -R "${1}":"Domain Users" "${USER_PROFILE}"
/bin/chmod 700 "${USER_PROFILE}"
USER_HOME="/home/"${1}""
/bin/chown -R "${1}":"Domain Users" "${USER_HOME}"
/bin/chmod 700 "${USER_HOME}"
/usr/sbin/smbldap-passwd "${1}"
</pre>
Verificate i percorsi dei comandi in quanto possono cambiare da versione a versione.
Dare l'esecuzione:
<pre>
# chmod +x /home/samba/adduser.sh
</pre>
Ora non vi resta altro che eseguire:
<pre>
# /home/samba/adduser.sh utente "Nome Cognome utente" (vanno scritte anche le "")
# PASSWORD: .......
</pre>
L'utente è così creato.
282

contributi