4 069
contributi
Riga 588: | Riga 588: | ||
In tal modo viene avviato visualizzando varie informazioni di debug a video. | In tal modo viene avviato visualizzando varie informazioni di debug a video. | ||
<br/> | <br/> | ||
== Configurazione dei client per LDAP == | |||
Ogni volta che un client accede ad un server LDAP deve impostare la base di ricerca e, nel caso si trovi su un server differente, l'URL del server LDAP. Queste informazioni possono essere impostate come default nel file <tt>/etc/ldap/ldap.conf</tt> aggiungendo le righe: | |||
<pre> | |||
BASE dc=dominio,dc=local | |||
URI ldap://127.0.0.1/ | |||
</pre> | |||
Una volta fatto questo è possibile verificare il corretto funzionamento di LDAP nuovamente con il comando: | |||
<pre> | |||
# ldapsearch -x | |||
</pre> | |||
che dovrebbe fornire tutti i dati presenti nel server LDAP. Sempre pochi, ma in numero maggiore rispetto a quanto elencato la volta precedente. | |||
<br/> | |||
== 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 <tt>/etc/smbldap-tools/smbldap.conf</tt>, quindi è bene stare attenti a non commettere errori.<br/> | |||
<pre> | |||
# mkdir /dominio | |||
# mkdir /dominio/homes | |||
# mkdir /dominio/profiles | |||
# mkdir /dominio/netlogon | |||
# mkdir /dominio/pubblica | |||
</pre> | |||
La configurazione di Samba si riduce a modificare il file <tt>/etc/samba/smb.conf</tt>. 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: | |||
<pre> | |||
# mv /etc/samba/smb.conf /etc/samba/smb.conf.original | |||
# touch /etc/samba/smb.conf | |||
# nano /etc/samba/smb.conf | |||
</pre> | |||
'''/etc/samba/smb.conf''': | |||
<pre> | |||
[global] | |||
### Configurazione di base del server ### | |||
workgroup = DOMINIO | |||
netbios name = SERVER | |||
realm = dominio.local | |||
server string = server - dominio PDC server - Samba %v | |||
case sensitive = No | |||
username map = /etc/samba/usermap | |||
### Imposto il server come controller di dominio ### | |||
os level = 255 | |||
preferred master = yes | |||
local master = yes | |||
domain master = yes | |||
domain logons = yes | |||
admin users = Administrator root @"Domain Admins" | |||
### Opzioni di connessione e sicurezza. Configurazione Wins ### | |||
security = user | |||
guest ok = no | |||
map to guest = Bad User | |||
encrypt passwords = yes | |||
null passwords = no | |||
hosts allow = 127.0.0.1 10.0.0.0/255.255.255.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 | |||
keepalive = 20 | |||
preserve case = yes | |||
short preserve case = yes | |||
### Configuro Winbind | |||
winbind uid = 10000-90000 | |||
winbind gid = 10000-90000 | |||
winbind enum users = yes | |||
winbind enum groups = yes | |||
winbind separator = + | |||
password server = 10.0.0.11 | |||
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 | |||
dos charset = UTF-8 | |||
display charset = UTF-8 | |||
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=Computers | |||
ldap user suffix = ou=Users | |||
ldap group suffix = ou=Groups | |||
ldap idmap suffix = ou=Idmap | |||
ldap admin dn = cn=admin,dc=dominio,dc=local | |||
enable privileges = yes | |||
ldap delete dn = Yes | |||
ldap ssl = no | |||
### Permetto il cambio password da Windows | |||
### Nota: con questa configurazione gli utenti non potranno | |||
### effettuare il login sulla shell del server, ma solo | |||
### dai client XP | |||
ldap password sync = yes | |||
pam password change = Yes | |||
unix password sync = No | |||
### Profili mobili, directory home, script di logon ### | |||
logon home = \\%L\homes\%U\ | |||
logon drive = H: | |||
logon path = \\%L\profiles\%U | |||
logon script = logon.bat | |||
### Script LDAP per gestione utenti e gruppi ### | |||
passwd program = /usr/sbin/smbldap-passwd %u | |||
passwd chat = *New*password* %n\n *Retype*new*password* %n\n *all*authen$ | |||
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" | |||
### Comando per loggare login e logoff (Legge amministratore di sistema) | |||
root preexec = /etc/samba/log_access_login.bash "%L" "%U" "%G" "%H" "%u"$ | |||
root postexec = /etc/samba/log_access_login.bash "%L" "%U" "%G" "%H" "%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 = yes | |||
browseable = no | |||
share modes = no | |||
admin users = @"Domain Admins" | |||
### 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 | |||
profile acls = Yes | |||
### 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 = /dominio/homes/%U | |||
comment = Home directory | |||
browseable = no | |||
writeable = yes | |||
valid users = %S | |||
read only = no | |||
guest ok = no | |||
inherit permissions = yes | |||
admin users = %u | |||
write list = %u | |||
read list = %u | |||
create mask = 0700 | |||
directory mask = 0700 | |||
### Directory Pubblica | |||
[pubblica] | |||
path = /dominio/pubblica | |||
comment = Directory 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 | |||
</pre> | |||
Una volta che abbiamo il file di configurazione pronto, possiamo verificare che non contenga errori con il comando: | |||
<pre> | |||
# testparm | |||
</pre> | |||
Modifichiamo anche il file <code>/etc/samba/usermap</code>: | |||
<pre> | |||
root = DOMINIO.LOCAL\root/admin | |||
Administrator = DOMINIO.LOCAL\Administrator/admin | |||
</pre> | |||
e scarichiamo lo script <code>log_access_login.bash</code> che ci servirà per loggare gli accessi al dominio: | |||
<pre> | |||
# wget http://www.pepinet.com/download/samba/log_access_login.bash -P /etc/samba | |||
# chmod 700 /etc/samba/log_access_login.bash | |||
</pre> | |||
Sistemiamo ora le ultime directory necessarie: | |||
<pre> | |||
# mkdir -p /var/log/samba/login-logoff | |||
# rm -rf /etc/samba/*tdb | |||
# rm -rf /var/lib/samba/*tdb | |||
# rm -rf /var/lib/samba/*dat | |||
# rm -f /var/log/samba/* | |||
</pre> | |||
facciamo memorizzare a samba la password dell'utente ldap da usare per la connessione: | |||
<pre> | |||
# smbpasswd -w password | |||
</pre> | |||
e riavviamo il servizio: | |||
<pre> | |||
# /etc/init.d/samba restart | |||
</pre> | |||
Adesso che abbiamo un PDC funzionante, dobbiamo prendere nota del nuovo SID: | |||
<pre> | |||
# net getlocalsid DOMINIO | |||
</pre> | |||
Quindi andiamo a modificare il file <code>/etc/smbldap-tools/smbldap.conf</code> inserendo il SID appena ottenuto, controllando nel frattempo gli indirizzi dei 2 server LDAP in modo che coincidano con il server locale (127.0.0.1). | |||
<pre> | |||
SID="S-1-5-21-2318037123-1631426476-2439636316" | |||
sambaDomain="DOMINIO" | |||
realm="dominio.local" | |||
slaveLDAP="127.0.0.1" | |||
slavePort="389" | |||
masterLDAP="127.0.0.1" | |||
masterPort="389" | |||
</pre> | |||
Il resto del file va lasciato invariato. |