Samba 3 PDC per Automatica
Il seguente documento presenta quanto è stato realizzato per
l'installazione di un server Samba come Primary Domain Controller in
una rete con macchine Windows XP Professional. Trattandosi di un Samba
PDC i client
Windows XP devono per forza essere Professional per accedere al
dominio, quelli Home non sono in grado di effettuare il login.
L'obiettivo è quello di installare un sistema centralizzato per
la gestione degli utenti con la possibilità di controllare tutto
lato client, questo implicherà l'utilizzo di un front end
grafico
per la gestione remota del server dalla macchine Windows.
Installazione
Il primo approccio è stato effettuato sulla versione 2.0 di
Samba, obsoleta e soprattutto priva di una funzionalità
importante per un PDC: la registrazione dell'account macchina in
automatico al login nel dominio. Per far funzionare Samba come PDC
è necessario infatti registrare tutte le macchine che si
connettono al dominio come utenti speciali, questo poichè Samba
gira come un processo Unix sul server. Questa nuova caratteristica
presente solo in Samba 3 consente la registrazione automatica di una
macchina che si
unisce
al dominio attraverso un add machine script che gira sul server,
evitando ulteriore lavoro all'amministratore di rete e nel nostro caso
perseguendo l'obiettivo finale del progetto: la gestione remota
centralizzata.
In base a quanto detto si è deciso di installare l'ultima
release stabile Samba 3.0.14a su Debian con kernel 2.6.8; si
è inoltre installato il front end grafico per la gestione remota
SWAT.
Una volta installato, SWAT è stato abilitato modificando i file
seguenti nel modo illustrato:
/etc/services
swat 901/tcp
/etc/inetd.conf
swat stream tcp
nowait.400 root /user/sbin/tcpd /usr/sbin/swat
Configurazione /etc/samba/smb.conf
L'installazione non richiede particolari accorgimenti, ringraziando
Debian si può utilizzare apt-get:
apt-get update
apt-get install samba
apt-get install swat
Il funzionamento del server è interamente basato
sulla configurazione del file /etc/samba/smb.conf che in questo caso
è stato modificato mediante il tool SWAT, l'unica
controindicazione di SWAT è che elimina tutti i commenti in
smb.conf.
Analizziamo ora nello specifico i parametri che sono stati impostati:
[global]
workgroup = AUTOMATICA_PDC Imposta il nome del dominio
netbios name = PC1 Imposta
il nome netbios del server
server string = AUTOMATICA - PDC E' la descrizione del server
socket options = TCP_NODELAY IPTOS_LOWDELAY
SO_SNDBUF=8192 SO_RCVBUF=8192 Sono dei parametri di ottimizzazione per
velocizzare il server
os level = 255 Imposta
il valore del server nella
elezione del Master Browser, con questo valore si è sicuri di
vincere
preferred master = yes Forza
una elezione quando si avvia il
server e vi partecipa con maggiori possibilità di successo
local master = yes Fa
partecipare alle elezioni per il Local
Master Browser
domain master = yes Fa
lavorare Samba come PDC
security = user Impone
di autenticare gli utenti
localmente, necessario per un PDC
encrypt passwords = yes Cripta login
e password in fase di login,
obbligatorio su un PDC e necessario per interagire correttamente con
client Windows NT e successivi
domain logons = yes Al
momento del login sul dominio i client
si devono autenticare
host allow = 127.0.0.1,
160.78.28.0/24 Consente
l'accesso solo al localhost ed a tutte le macchine della rete
160.78.28.0/24
add machine script =
/usr/sbin/useradd -d /dev/null -g machines -s /bin/false -M
%u (Solo per Samba 3)
Aggiunge automaticamente al sistema l'account di una nuova macchina che
entra nel dominio
log file = /var/log/samba/log.%m Definisce la posizione del log e ne scrive
uno per ogni macchina client
log level = 2 Imposta
a 2 il livello di logging
max log size = 50 Imposta
a 50Kb la dimensione massima del file di log
logon home =
\\%N\%U\.profile Definisce
la posizione del file .profile (per client Win9x/ME) in
\\nomeserver\nomeutente.
logon path = \\%N\profiles\%U Definisce la posizione della directory
profiles (per i client WinNT/2k/XP). A profiles verrà sostituito
il percorso esatto contenuto nella share [profiles] definita in seguito
logon drive = Z: Crea
l'unità di rete Z: al login
sui client Windows, nella nostra configurazione corrisponderà
alla home dell'utente unix
logon script = netlogon.bat Specifica quale script eseguire sul client
ad ogni login. Lo script viene cercato nella directory definita nella
share [netlogon]
[homes] Share speciale
che definisce la home directory di ogni utente
comment = Home directory di ogni utente Descrizione della share
read only = No Ogni
utente deve poter scrivere nella sua
home
browseable = No E' bene
che le home dei vari utenti non
siano pubblicamente visibili
[profiles] Share
speciale dove vengono scritti i file di profilo per gli utenti roaming.
Ad ogni login e logout il suo contenuto viene sincronizzato con la
cartella dei documenti sul computer locale
comment = Share per i file profile
utenti Descrizione
della share
path = /home_samba/profiles La directory locale sul server
Samba dove sono salvati i profili. Qui vengono automaticamente create
le sottodirectory corrispondenti ad ogni utente
read only = No I profili
sono sincronizzati con il client
e devono essere scrivibili
create mask = 0600 La
maschera con cui vengono creati i file
directory mask = 0700 La
maschera con cui vengono create le
directory
browseable = No E' bene
non rendere publicamente visibili
i profili, come per le home
[netlogon] Share
speciale che contiene gli script eseguiti sui client Windows al login
sul dominio. Possono essere utilizzati per l'amministrazione
centralizzata
comment = Share per script eseguiti su client Windows
path = /home_samba/netlogon La directory sul server in cui sono
contenuti gli script per il login
read only = yes Questi
script devono essere accessibili solo in lettura
write list = @admin ma
possono essere modificati dagli utenti del gruppo admin
browseable = No Essendo
una share di servizio è bene che non sia mostrata agli utenti
[public] Share pubblica
per lo scambio di dati o deposito file comuni degli utenti del dominio
comment = Directory pubblica
path = /home_samba/public Percorso
della share sul server
read only = No Deve
essere scrivibile da chiunque
Directory e permessi
E' stato necessario creare le directory per i roaming profile e
netlogon con i
nomi ed i premessi corretti, nello specifico sono state create le
seguenti:
/home_samba/netlogon 0755 owner root, gruppo admin
/home_samba/profiles 1757
(è scrivibile da root e le sottodirectory sono gestibili dai
rispettivi utenti senza poter modificare quelle degli altri)
Gestione login e password
Gli utenti Samba e le rispettive home directory e permessi vengono
lette dal
NIS del server che gestisce tutti gli account preesistenti. I nuovi
utenti devono essere creati sul server Unix a mano,
per il resto la procedura può essere completamente eseguita con
il
front end grafico SWAT dai client Windows.
Samba utilizza come file delle password /etc/samba/smbpasswd che
presenta una riga con login, password
criptata e altri dati, inoltre per ogni utente deve essere presente il
corrispettivo utente sul normale file degli utenti Unix /etc/passwd.
Questo perchè Samba agisce sul sistema locale come un normale
processo
Unix e, anche se viene eseguito come root, accede al filesystem con i
permessi degli utenti secondo quanto configurato.
Samba agisce come PDC, oltre a creare una login (sia in
/etc/samba/smbpasswd che in /etc/passwd) per ogni utente, si deve
creare una login speciale per ogni macchina del dominio. Questa login,
definita trust account o computer account
ha il nome NetBios del computer seguito dal segno dollaro ($). Al primo
login da parte del trust account viene generata una sorta di password
che viene utilizzata per autenticare le comunicazioni fra il PDC e il
client ed assicurarsi che non ci siano altre macchine che possano
unirsi
al dominio con lo stesso nome NetBios. La gestione dei trust account
è eseguita in maniera automatica, tramite l'uso della
direttiva add machine script, a tal fine sul server è stato
creato il gruppo machines.
Quando si configura un client Windows NT/2k/XP per farlo diventare
parte di un dominio, viene richiesta una password di amministratore. In
questo caso si deve utilizzare la login di root con relativa password,
per questo è stato necessario aggiungere l'utente root al
smbpasswd
smbpasswd -a root
Per leggere dal NIS tutti gli utenti e gruppi sono stati modificati i
due file locali di
utenti e password nel seguente modo:
/etc/passwd
+::::::
/etc/group
+:::
Con questa configurazione le password Unix sono NIS-password, per
cambiarle in remoto si dovrebbe utilizzare
yppasswd che richiede la vecchia password in chiaro, i client NT
però usano
password criptate ed è quindi
impossibile sincronizzare le password Samba con quelle Unix, anche da
root.
In una configurazione di prova è stata testata anche la gestione
degli utenti direttamente sul server samba che gestisce il dominio
AUTOMATICA_PDC, in questo modo è
stata possibile la sincronizzazione. Per
fare in modo che la password cambiata tramite samba sia aggiornata
anche
su /etc/passwd locale sono satate aggiunte al file smb.conf le seguenti
righe di configurazione in [global]:
passwd program = /usr/bin/passwd %u La riga di comando per cambiare la
password utente (%u)
passwd chat = *Enter*new*UNIX*password* %n\n
*Retype*new*UNIX*password:* %n\n
*passwd:\spassword*updated*successfully*\n. La procedura di matching per gestire le
richieste di output in passwd
unix password sync = Yes Attiva
la sincronizzazione delle password
La procedura applicata tuttavia non permette la sincronizzazione delle
passwords
che vengono cambiate dal sistema Unix, in questo caso sarà
necessario cambiare la corrispondente password Samba a mano.
Configurazione client Windows XP Professional
Per consentire l'accesso al dominio da parte del client Windows XP Pro
è necessario modificare alcuni parametri di sicurezza e
due chiavi di registro, vediamo la procedura nel dettaglio:
- Aprire l'editor delle policy di Sicurezza Locale (Start->Pannello
di controllo->Prestazioni e manutenzione->Strumenti di
Aministrazione->Criteri di protezione
locali->Criteri locali->opzioni di protezione)
- Disabilitare la voce "Domain member: Digitally encrypt or sign secure
channel (always)" (Membro di dominio: aggiunta crittografia o firma
digitale ai dati del canale protetto (sempre) )
- Disabilitare la voce "Domain member: Disable machine account password
changes" (Controller di dominio: rifiuta cambio password account
computer)
- Disabilitare la voce "Domain member: Require strong (Windows 2000 or
later) session key" (Membro di dominio: richiesta chiave di sessione
avanzata (Windows 2000 o versioni successive) )
- Aprire l'editor del registro di sistema
(Start->Esegui->regedit->Invio) e modificare la chiave
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
Netlogon\Parameters] come segue:
"requiresignorseal"=dword:00000000
"signsecurechannel"=dword:00000000
Se sulla macchina Windows è installato un firewall è
altresì necessario
aprire le porte 137 e 139 necessarie al funzionamento di Samba e la 901
per SWAT, di seguito è riportata la procedura per la
configurazione del
firewall nativo di WindowsXp Professional SP2:
Start->Pannello di controllo->Centro Sicurezza PC->Windows
Firewall->Eccezioni->Aggiungi porta->
Nome porta: SAMBA TCP
Numero porta: 137
Selezionare TCP
->Ok.
Ripetere l'operazione per la corrispondente porta UDP e per la porta
139 e 901.
A questo punto ci si può unire al dominio come su Windows
NT/2000:
Tasto destro su Risorse del Computer, selezionare Proprietà,
Nome del
Computer e tasto Cambia, inserire come dominio AUTOMATICA_PDC, alla
richiesta di login usare l'account di root della macchina Unix su cui
gira il server.
Guida rapida per gestire gli utenti con SWAT
Come è stato detto gli utenti vengono letti automaticamente dal
database di quelli già registrati per l'accesso ai laboratori
della palazzina 1, le home directory sono le stesse dell'account
esistente, lo stesso vale per i diritti di accesso. Per ogni utente
oltre alla directory home è possibile aggiungere la
risorsa di rete condivisa e pubblica \\pc1\public.
Dopo aver aggiunto al dominio una macchina attraverso la procedura
descritta nella sezione "Configurazione client Windows XP
Professional", per aggiungere degli utenti al server Samba
è necessario collegarsi tramite un browser web a //pc1:901, una
finestra richiederà di autenticarsi come root del sistema Unix.
Una volta inserite username e password è possibile gestire
completamente Samba attraverso il front end grafico SWAT. Per
aggiungere un utente basterà entrare nella sezione "Password",
utilizzare la sezione "Server Password Management", inserire i dati
relativi all'utente da aggiungere e premere "Add new
user". In questa schermata è possibile gestire in modo semplice
ed intuitivo i vari account: attivare e disattivare utenti, eliminare
account.
Il singolo utente che desideri cambiare la propria password, può
farlo comodamente dal menù di Windows che compare premendo
crtl+alt+canc e selezionando "Cambia password".
Riepilogo informazioni utili
Nome dominio: AUTOMATICA_PDC
Nome NetBios server: PC1
URL per la gestione remota: //pc1:901
Percorso smb.conf: /etc/samba/smb.conf
Percorso condivisione pubblica sul server: /home_samba/public
Percorso condivisione pubblica per i client: \\pc1\public
Contatto
Per qualsiasi informazione o chiarimento scrivere a
alberto.stillo@studenti.unipr.it