4 069
contributi
Riga 793: | Riga 793: | ||
In tal modo viene avviato visualizzando varie informazioni di debug a video. | In tal modo viene avviato visualizzando varie informazioni di debug a video. | ||
== 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. | |||
== Per approfondimenti == | == Per approfondimenti == | ||
[[Samba e OpenLDAP: creare un controller di dominio]]<br/> | [[Samba e OpenLDAP: creare un controller di dominio]]<br/> |