ATTENZIONE: ISI-LOGON è stato riscritto e potenziato in abbinamento alla uscita di Debian Sarge, la nuova versione è documentata qui
ISI-LOGON
Il pacchetto ISI-LOGON rivoluziona completamente il modo di gestire il logon di un client windows qualsiasi su un server samba che svolga funzioni di PDC con autenticazione LDAP.
Attualmente esso permette, in modo assolutamente semplice di
- eseguire le personalizzazioni del browser (start page e configurazione proxy)
- imporre ai client win9x le politiche di sicurezza tradizionalmente gestite via poledit e config.pol.
- provvedere alla sincronizzazione dell'orologio del client su quello del server
- creare connessioni con cartelle condivise in modo da renderle immediatamente disponibili all'utente ([er i client Win9x viene connessa naturalmente la home sul server)
- garantire che il client connesso abbia sempre disponibile l'ambiente di default (Desktop e Menu' avvio) deciso dall'amministratore,
senza che cio' impedisca all'utente la personalizzazione del suo ambiente di lavoro e il roaming del proprio profilo)
Tutti i settaggi sono personalizzabili per gruppo.
Installazione del pacchetto
Come al solito, l'installazione si esegue con i seguenti comandi
# apt-get update
# apt-get install isi-logon
Logica di funzionamento di ISI-Logon
Le componenti di ISI-Logon sono le seguenti:
- l'interprete Perl open source per Win32 ActivePerl di ActiveState, installato automaticamente sul server che gestisce il logon
- il server Samba configurato per rendere disponibile la share [perl] e consentire l'esecuzione di script Perl senza alcuna installazione Perl sui client
- il package Perl *ISI::logon e il programma a corredo logon.pl
- il file di configurazione /etc/isi/logon.conf
- un semplicissimo logon.bat nella share [netlogon]; il contenuto di logon.bat è il seguente:
:: LOGON.BAT-----------------------------------------------
:: attenzione WIN98 non consente un logon.bat con parametri
:: e non fornisce la variabile d'ambiente %LOGONSERVER%
:: per cui e' necessario arrangiarsi....
:: --------------------------------------------------------
@echo off
set SRV=****nome samba del server*****
\\%SRV%\perl\bin\perl \\%SRV%\perl\logon.pl %SRV%
:: se non si hanno client Win9x le due istruzioni precedenti
:: possono essere sostituite da quella qui sotto
:: %LOGONSERVER%\perl\bin\perl %LOGONSERVER%\perl\logon.pl %1
Come si vede
logon.bat sfolge l´unica funzione di lanciare l´esecuzione dello script perl
logon.pl.
logon.pl leggerà il file di configurazione
/etc/isi/logon.bat e userà quanto messo a disposizione dal package perl ISI::Logon per ottenere dalle direttive di configurazione le funzionalità desiderate.
Tutto quello che l'amministratore dovrà fare è personalizzare
/etc/isi/logon.conf
Il file di configurazione
### quelle che iniziano con un _ sono variabili interne e servono
### ad abilitare (1) o disabilitare (0) la funzionalita`corrispondente
### oppure a passare variabili di configurazione specifiche di
### ISI-logon; le altre DEVONO corrispondere a voci di registro a cui
### si vuole assegnare il valore scritto di seguito (es. 0x00000001).
### Per ottenere una differente impostazione per uno specifico gruppo
### basta specificare il gruppo come nell'esempio:
### Start__Page[alunni] = www.google.com
### Quando i nomi usati per le variabili sono quelli del registro di
### windows, se il nome della variabile di registro contiene uno
### spazio, sostituirlo con due _ (.Es "Start Page" = Start__Page)
### sulle variabili prefissate con underscore in generale
### 1 applica la restrizione
### 0 rimuove la restrizione
### il valore delle variabili di registro va espresso
### coerentemente con il TIPO (se REG_DWORD, 0x......)
### NOTA: Le variabili sono *case sensitive*
### WinSet sezione 'start_page'
Start__Page = *home page di default*
Start__Page[admins] = www.google.it
Start__Page[alunni] = *home page alunni*
### WinSet sezione 'proxy' (le porte indicate sono quelle di default, controllare la propria configurazione)
ProxyServer =
ip_del_server_DG_Squid:8080 # DansGuardian
ProxyServer[admins] =
ip_del_server_DG_Squid:3128 # Squid (FW permettendo)
ProxyOverride =
lista url fuori proxy
### WinSet sezione 'no_profile' (solo XP)
ExcludeProfileDirs = Impostazioni locali;Temporary Internet Files;Cronologia;Temp;Documenti;Cookies;SendTo
### WinSet sezione 'document_folder'
Personal = H:\Documenti
My__Picture =
My__Music =
My__Video =
### WinSet sezione 'last-user' (non personalizzare per gruppo)
_NoDispLastUser = 1
### parametri validi per Win9x - default molto restrittivo
### WinPol9x sezione 'nocpan' - fa sparire il pannello di controllo da *Start,Impostazioni*
_RestrictCpan = 0
### sezione 'access'
_RestrictLogon = 1
_RestrictLogon[admins] = 0
# valori di registro
UserProfiles = 0x00000001
# si vogliono i roaming profiles
UseHomeDirectory = 0x00000001
MustBeValidated = 0x00000001
# si vuole l'autenticazione ldap
MustBeValidated[admins] = 0x00000000
LegalNoticeCaption = Avvertenza
LegalNoticeText = accesso riservato agli utenti autorizzati.
### sezione 'screen' - abilita le restrizioni dello schermo
_RestrictScreen = 1
_RestrictScreen[admins] = 0
# opzioni restrizioni screen
NoDispAppearancePage = 0x00000000
NoDispBackgroundPage = 0x00000000
NoDispCPL = 0x00000000
NoDispScrSavPage = 0x00000000
NoDispSettingsPage = 0x00000001
### sezione 'net' - Risorse di rete Proprietá
_RestrictNet[alunni] = 1
_RestrictNet[admins] = 0
### sezione 'passwd' = Pannello di controllo Password
_RestrictPasswd = 1
_RestrictPasswd[admins] = 0
### sezione 'printer' - Impostazioni stampanti
_RestrictPrinter = 1
_RestrictPrinter[admins] = 0
### sezione 'system' - Restrizioni varie sul sistema
_RestrictSystem = 1
_RestrictSystem[admins] = 0
### sezione 'shell-run' - Start Esegui
_RestrictRun = 1
_RestrictRun[admins] = 0
### sezione 'shell-noregtools' - tools per la modifica del registro
_RestrictRegTools = 1
_RestrictRegTools[admins] = 0
### sezione 'shell-winoldapp' - vecchie applicazioni
_RestrictOldApp = 0
_RestrictOldApp[admins] = 0
### connessioni di rete oltre a quelle attivate
### automaticamente, che sono:
### H: -> homedir
### L: -> classe (solo per gli alunni)
### la sintassi e'la seguente:
### NetFolder[unita'] = nome della condivisione [ , gruppo]
_NetFolder[W] = mioweb
_NetFolder[S] = scambio
### sincronizzazione orologio
_NetTime = 1
### forzatura ambiente di default (desktop, menu avvio ecc.ecc.)
### la si ottiene copiando la seguente cartella
### [netlogon]\env_$os_$gruppo\* -> C:\Windows\All Users (Win9x)
### [netlogon]\env_$os_gruppo\* -> C:\Documents and Settings\All Users (WinXP)
### dove os = $ENV{OSCLIENT} e'la versione di windows che gira sul client
### cioe'una delle seguenti: Win95,Win98,WinME,WinNT,Win2K,WinXP
_EnvWin98 = 1
_EnvWin98[admins] = 0
### ATTENZIONE: per WinXP,Win2K occorre che la cartella di destinazione sia
### scrivibile dagli utenti di dominio il che normalmente non e'
_EnvWinXP = 0
La preparazione degli ambienti di default (cartelle ENV)
Quello che si vuole fare è garantire che l'utente abbia sempre disponibili sul desktop (o nel Menu Avvio) le icone relative ai programmi che l´amministratore ha installato sui client, anche qualora l´utente si sia divertito ad eliminarle.
Ci sono sostanzialmente due modi per arrivare a questo risultato, dipendentemente fra l´altro dalla versione di Windows in funzione sul client: usare le policies di CONFIG.POL (solo Win9x) oppure usare la cartella di sistema
All Users. Si è adottata la seconda strategia.
Le operazioni da fare sono le seguenti (simili per tutte le versioni di Windows, con la differenza che per Win2K e WinXP gli utenti di dominio -
authenticated users - non hanno, per questa cartella, i privilegi di scrittura, per cui l'amministratore dovrà provvedere a darglieli):
1. installa le applicazioni desiderate su un client
2. trasferire le icone corrispondenti sul server all´interno di cartelle appositamente predisposte nella share
netlogon. In pratica basta trasferire le cartelle di sistema
Desktop e
Menu Avvio ripulendo poi la copia da tutto quello che non riguarda le applicazioni installate.
Le cartelle sul server predisposte a ricevere la configurazione dei client si trovano all´interno della share
netlogon e hanno obbligatoriamente un nome fatto così:
env_versioneWin_gruppo
Esempio, l´ambiente di default di un client Win98 per il gruppo alunni si troverà all'interno della cartella
env_Win98_alunni, quello per gli amministratori che si loggano su una macchina XP, nella cartella
env_WinXP_admins, e così via.
Le versioni di windows riconosciute sono Win95, Win98, WinME, WinNT, Win2K e WinXP. Nelle cartelle
env troveranno posto le cartelle di sistema windows
Desktop e
Menu Avvio, trasferite dal client come sopra spiegato.
Dopo aver preparato le
cartelle env , l´attivazione del trasferimento dell´ambiente standard sul client che si sta loggando, dipende da come si sono configurate le opzioni corrispondenti (direttive
_Env) nel file
/etc/isi/logon.conf.
Ad esempio se si vuole che il gruppo
test abbia un suo ambiente di default su client win98 occorrerà:
- preparare sul server la cartella env_Win98_test
- aggiungere nel file /etc/isi/logon.conf una riga con la direttiva _EnvWin98test = 1