ANNUNCIO: L'aggiornamento dei pacchetti ISI produce importanti cambiamenti,
leggete questa nota
CONFIGURAZIONE DEL PDC SAMBA
Nel seguito e' descritta solo la struttura adottata dal progetto ISI e non viene fatto nessuno sforzo per spiegare le modalita' e i dettagli della configurazione di un PDC realizzato con Samba.
I lettori interessati troveranno sull'argomento una abbondantissima ed esauriente letteratura liberamente disponibile in rete.
Gli elementi funzionali per l'implementazione del PDC ISI sono
- la struttura di cartelle sotto descritta.
- un samba server installato e funzionante (attualmente e' in uso la versione Debian-stable 2.2.3a-12.4a)
- un server ldap installato e funzionante per l'autenticazione (per i dettagli vedi IsiLdap)
- un server Cups per il controllo delle stampanti
La struttura del file system
Quanto segue descrive una strutturaione minima del filesystem e corrisponde al default previsto da isi-ldap3
Il funzionamento del PDC Samba appoggia sulla seguente organizzazione del file system:
- /home
- tutta la parte file server e' ospitata qui
- /home/admins
- contiene le homedir degli amministratori (gruppo @admins)
- /home/alunni
- contiene le homedir degli alunni (gruppo @alunni) create automaticamente dagli script di gestione del server ldap sulla base della "skeleton dir" /etc/skel (vedi in fondo)
- /home/ata
- contiene le homedir del personale ata (gruppo @ata)
- /home/docenti
- contiene le homedir dei docenti (gruppo @docenti)
- /home/esternii
- contiene le homedir degli esterni docenti (gruppo @esterni)
- /home/classi
- contiene tutte le cartelle di classe il cui nome deve coincidere con quello del gruppo classe. Es. gli studenti della classe 1A geometri, appartengono al gruppo geo1a e hanno una cartella di classe che si chiama geo1a; la cosa si rende necessaria per la connessione automatica dell'alunno alla sua cartella di classe.
Ogni cartella di classe contiene la sottocartella alulink che a sua volta contiene i link simbolici alle home degli alunni appartenenti alla classe. Il formato del link e' nome_cognome.username, i valori sono letti direttamente dal db ldap tramite uno script a cui e' affidata la creazione e il popolamento automatico della cartella.
In questo modo viene enormemente facilitato il lavoro dell'insegnante che voglia recuperare file specifici dalle home dei suoi studenti rendendo inoltre possibili semplici meccanismi di automazione per il recupero e il trasferimento di file specifici.
- /home/samba
- tutto quel che serve al logon degli utenti
- /home/samba/netlogon/
- la radice della share [netlogon]
La cartella personale dell'utente
Quando un nuovo utente viene aggiunto al sistema, viene automaticamente dotato di una cartella personale contenete quanto necessario sia a un utente linux sia a un utente windows. A parte i file di personalizzazione tradizionali dell'ambiente linux, la cartella personale conterra' le seguenti sottocartelle:
- Documenti
- verra' collegata automaticamente all'icona Documenti presente sul desktop windows
- .profili/WinXP
- cartella nascosta (inizia col punto) in cui il client WinXP salva il profilo personale dell'utente
- .profili/Win95
- cartella nascosta (inizia col punto) in cui il client Win98 salva il profilo personale dell'utente
Tuning delle politiche via pdbedit (a partire da Samba 3.0.21)
Lunghezza minima delle password
Per fissare a 8 caratteri la lunghezza minima delle password
- root #>pdbedit -P "min password length" -C 8
Impedire il riutilizzo delle password
Per ricordare le ultime 5 password utilizzate
- root #>pdbedit -P "password history" -C 5
Scadenza delle password
Per fissare la scadenza a 45 giorni (45 x 2021 x 24 = 3888000 sec)
- root #>pdbedit -P "minimum password age" -C 3888000
Per far scadere subito le password
- root #>pdbedit -P "minimum password age" -C 0
Blocco del login dopo n tentativi falliti
Per fissare a tre i tentativi di login
- root #> pdbedit -P "bad lockout attempt" -C 3
Per esportare le politiche su LDAP quando questo e' usato come backend di Samba
- root #> pdbedit -y -i tdbsam -e ldapsam
Il file di configurazione /etc/samba/smb.conf
[global]
workgroup = ISI-DOMAIN
netbios name = ISI-PDC
server string = %h MAINSERVER
dns proxy = No
bind interfaces only = Yes
interfaces = lo, eth0
# invalid users = root
admin users = root,@admins
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
log level = 1
security = user
encrypt passwords = true
passdb backend = ldapsam:ldap://127.0.0.1/
obey pam restrictions = no
deadtime = 15
browseable = no
wins support = Yes
name resolve order = lmhosts host wins bcast
local master = yes
domain master = Yes
preferred master = Yes
os level = 254
domain logons = Yes
unix password sync = no
enable privileges = yes
passwd program = /usr/sbin/smbldap-passwd %u
passwd chat = *New*password* %n\n *Retype*new*password* %n\n
socket options = TCP_NODELAY
load printers = yes
printing=cups
printcap name=cups
ldap ssl = no
ldap passwd sync = yes
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Idmaps
ldap group suffix = ou=Groups
ldap user suffix = ou=People
ldap suffix = dc=isi,dc=lan
ldap delete dn = Yes
ldap admin dn = cn=admin,dc=isi,dc=lan
logon home = \\%L\%U\.\\.profili\%a
logon drive = H:
logon path = \\%L\%U\.profili\%a
add machine script = /usr/sbin/smbldap-useradd -w "%m"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
delete group script = /usr/sbin/smbldap-groupdel "%g"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
delete user script = /usr/sbin/smbldap-userdel "%u"
add user script = /usr/sbin/smbldap-useradd -m "%u"
panic action = /usr/share/samba/panic-action %d
[homes]
comment = ISI-homes (NON MODIFICARE QUESTA RIGA)
browseable = no
writable = yes
guest ok = no
# include = /etc/isi/samba/hmask_%G
veto files = /public_html/
[printers]
comment = All Printers
browseable = no
path = /tmp
printable = yes
public = no
writable = no
create mode = 0700
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
include = /etc/isi/samba/smb_servizi.conf
include = /etc/isi/samba/smb_maingrps.conf
include = /etc/isi/samba/smb_classi.conf
include = /etc/isi/samba/smb_corsi.conf
include = /etc/isi/samba/smb_aree.conf
[perl]
path = /usr/share/WinActivePerl
comment = Per Windows Binaries
public = yes
writable = no
guest ok = yes
browseable = no
[netlogon]
comment = ISI-NetLogon (NON MODIFICARE QUESTA RIGA)
path = /home/samba/netlogon
guest ok = yes
browseable = no
create mask = 0644
directory mask = 0755
writable = yes
root preexec=/usr/sbin/setlogonvar '%U' '%G' '%m'
root postexec=/usr/sbin/rmlogonvar '%m'
#[profiles]
# comment = cartelle profili utente
# path = /home/%g/%u/.profili/%a
# read only = No
# create mask = 0660
# directory mask = 2770
# browseable = No
# guest ok = Yes
# profile acls = Yes
# csc policy = disable
# next line is a great way to secure the profiles
# force user = %U
### DEBCONF CONFIGURED by isi-logon