Samba OpenLDAP su Etch: Configurazione Samba
Da Guide@Debianizzati.Org.
Indice |
Configurazione di Samba
Prima di iniziare a configurare Samba è necessario creare le directory nelle quali risiederanno le homes degli utenti, gli script di netlogon e i profili centralizzati (o profili roaming). Alcune di queste directory sono già state indicate nel file /etc/smbldap-tools/smbldap.conf, quindi è bene stare attenti a non commettere errori.
# mkdir /dominio # mkdir /dominio/homes # mkdir /dominio/profiles # mkdir /dominio/netlogon
La configurazione di Samba si riduce a modificare il file /etc/samba/smb.conf. State attenti: il file è molto lungo ed è facile tralasciare qualcosa o inserire opzioni in conflitto tra loro. Per iniziare ci si basi sul file di esempio, funzionante e testato, riportato di seguito con gli opportuni commenti:
# mv /etc/samba/smb.conf /etc/samba/smb.conf.original # touch /etc/samba/smb.conf # nano /etc/samba/smb.conf
/etc/samba/smb.conf:
[global]
### Configurazione di base del server ###
workgroup = DOMINIO
netbios name = SERVER
server string = DOMINOP PDC Server - Samba %v
### Imposto il server come controller di dominio ###
os level = 65
preferred master = yes
local master = yes
domain master = yes
domain logons = yes
### Opzioni di connessione e sicurezza. Configurazione Wins ###
security = user
guest ok = no
encrypt passwords = yes
null passwords = no
hosts allow = 127.0.0.1 10.0.0.0/255.0.0.0
wins support = yes
idmap uid = 10000-90000
idmap gid = 10000-90000
idmap backend = ldap:ldap://127.0.0.1
name resolve order = wins lmhosts host bcast
dns proxy = no
time server = yes
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192
### Configuro Winbind
winbind uid = 10000-90000
winbind gid = 10000-90000
winbind enum users = yes
winbind enum groups = yes
winbind separator = +
password server = server_name
winbind use default domain = Yes
encrypt passwords = yes
### Impedisco gli errori getpeername dei client XP
smb ports = 139
### Configurazione dei log ###
log file = /var/log/samba/log.%m
log level = 2
max log size = 50
### Impostazione charset corretto ###
hide unreadable = yes
hide dot files = yes
unix charset = ISO8859-1
panic action = /usr/share/samba/panic-action %d
### Configurazione del supporto a LDAP ###
passdb backend = ldapsam:ldap://127.0.0.1
ldap suffix = dc=dominio,dc=local
ldap machine suffix = ou=machines
ldap user suffix = ou=users
ldap group suffix = ou=groups
ldap admin dn = cn=admin,dc=dominio,dc=local
enable privileges = yes
### Permetto il cambio password da Windows
ldap password sync = yes
### Profili mobili, directory home, script di logon ###
logon home = \\%L\homes\%U\
logon drive = H:
logon path = \\%L\profiles\%U
logon script = %U.bat OR netlogon.bat
### Script LDAP per gestione utenti e gruppi ###
passwd program = /usr/sbin/smbldp-passwd %u
passwd chat = *New*password* %n\n *Retype*new*password* %n\n *all*authentication*token*updated*
add user script = /usr/sbin/smbldap-useradd -m "%u"
ldap delete dn = Yes
delete user script = /usr/sbin/smbldap-userdel "%u"
add machine script = /usr/sbin/smbldap-useradd -w "%u"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
delete group script = /usr/sbin/smbldap-groupdel "%g"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
### Sistema di stampa ###
load printers = yes
printcap name = /etc/printcap
printing = cups
printcap name = cups
; Se desidero che solo il gruppo indicato possa amministrare le stampanti
; NOTA: il gruppo deve essere creato nella struttura LDAP
;printer admin = @sambaadmins
### Condivisioni ###
### Percorso degli script di logon
[netlogon]
comment = Network Logon Service
path = /dominio/netlogon
guest ok = no
writable = no
browseable = no
share modes = no
### Percorso per i roaming profiles
[profiles]
comment = Profili degli utenti
path = /dominio/profiles
writeable = yes
browseable = no
guest ok = no
hide files = /desktop.ini/ntuser.ini/NTUSER.*/
create mask = 0600
directory mask = 0700
csc policy = disable
### Condivisione stampanti
[printers]
comment = Stampanti
browseable = no
path = /var/spool/samba
printable = yes
public = no
writable = no
create mode = 0700
### I client Windows si aspettano questa cartella come fonte per i drivers
[print$]
comment = Drivers delle stampanti
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
### Home folders degli utenti
[homes]
path = /home/users/%U
comment = Home directory
browseable = no
writeable = yes
valid users = %S
read only = no
guest ok = no
inherit permissions = yes
### Directory condivisa
[pubblica]
path = /home/pubblica
read only = No
create mask = 0660
directory mask = 2770
hide special files = yes
hide files = /lost+found/
acl group control = yes
inherit acls = yes
map acl inherit = yes
inherit permissions = yes
map archive = no
# Per condividere l'unità CD del server
;[cdrom]
; comment = Samba server CD
; writable = no
; locking = no
; path = /media/cdrom0
; public = yes
; Per il mount - umount automatico del CD
; Perchè funzioni il file /etc/fstab deve contenere una
; voce: /dev/hdc0 /media/cdrom iso9660 defaults,noauto,ro,user 0 0
;preexec = /bin/mount /cdrom
; postexec = /bin/umount /cdrom
Una volta che abbiamo il file di configurazione pronto, possiamo verificare che non contenga errori con il comando:
# testparm
Ora possiamo cambiare la password di amministratore e riavviare il servizio:
# smbpasswd -w password # /etc/init.d/samba restart
Popolamento del database LDAP
Per un funzionamento corretto SAMBA ha bisogno di diversi gruppi predefiniti e 2 utenti: Administrator e nobody.
La tabella seguente riepiloga i gruppi e gli utenti di default di un dominio Windows:
| Nome - UID - Tipo Domain Administrator - 500 - Utente |
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 smbldap-tools che abbiamo già installato:
# smbldap-populate -k 0 # smbldap-useradd -a -m -c "Admin" Administrator # smbldap-usermod -G "Domain Admins" Administrator # smbldap-usermod -u 0 Administrator # smbldap-populate -a Administrator -k 0
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.
Per verificare lo stato del database LDAP e i record aggiunti potete usare i comandi:
# ldapsearch -x | less
e:
# ldapsearch -x uid=Administrator
Su alcuni howto ho trovato suggerito, a questo punto, di cambiare ancora la password di Administrator con il comando:
# smbldap-passwd Administrator
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.
2 - Utilizzo della GUI phpLDAPadmin
Il secondo metodo prevede l'utilizzo della GUI di phpLDAPadmin. Per operazioni così lunghe e ripetitive come il popolamento iniziale di un database LDAP è un metodo che sconsiglio, ma può essere utile a questo punto osservare il funzionamento di questa GUI.
Innanzitutto bisogna collegarci con un browser al nostro server:
https://10.0.0.11/phpldapadmin
Cliccate sul link di login e inserite le seguenti informazioni:
Login DN: cn=admin,dc=dominio,dc=local Password: password
Quindi, nella sezione di sinistra, espandete la radice LDAP relativa al vostro dominio. Cliccate sull'unità organizzativa che vi interessa (ou=Users oppure ou=Groups) e selezionate la voce Create ner entry here".
Selezionate il template corretto (Samba3 Account se volete creare un nuovo utente e Samba3 Group Mapping se volete creare un nuovo gruppo) e immettete le voci nei campi di definizione del template stesso.
| ATTENZIONE A differenza della procedura di creazione utenti con i smbldap-tools, che essendo interfacciati con gli strumenti linux di gestione utenti coprivano automaticamente ogni aspetto della creazione di nuove entry, utilizzando phpldapadmin dovrete creare a mano la home directory del nuovo utente, dato che l'interfaccia non lo farà per voi |
Per questo motivo solitamente consiglio di utilizzare i smbldap-tools per la creazione di nuovi gruppi e nuovi utenti e di utilizzare phpldapadmin per modifiche a utenti e gruppi già esistenti, quando navigare da console tra le proprietà di ogni entry può diventare difficoltoso.
Ricordatevi, al termine del processo di creazione di gruppi e utenti, di cambiare la password di Administrator come indicato nel paragrafo precedente:
smbldap-passwd Administrator


