Integrazione di rete Windows Linux con SAMBA

Embed Size (px)

Citation preview

Integrazione di rete Windows / Linux
Introduzione a SAMBA

Panoramica su SAMBA: software per la condivisione di file (ma non solo) tra Linux e Windows

Contesto

Funzionalit

Cenni sulla configurazione

Potenzialit

PMI: Situazione attuale...

Server(Microsoft)

Clients

Printer

Scanner

PMI: il futuro PROSSIMO

ServerLinux

Clients

Printer

Scanner

PMI: il futuro pi lontano...

ServerLinux

Clients

Printer

Scanner

I vantaggi di Linux

Risparmio
- No licenze & hardware richiesto meno potente

Stabilit e Robustezza
- Architettura Unix-like, modello di security consolidato.

Open Source!
- Codice visibile (quindi niente virus,spyware, adaware...)
- Indipendenza dai vendor

Integrazione

User friendly (ora)

Costi Licenze File Server

Windows 2000Server

Server
Linux + Samba

> 600 euro

0 euro

SAMBA

Permette la condivisione di file e stampanti su protocollo SMB (Microsoft)

Gestisce l'autenticazione di utenti Windows e Linux in modo integrato

Pu essere configurato come
- Gruppo di lavoro
- Dominio (PDC)
- Server integrato in un dominio gi esistente

E' trasparente all'utente finale

Demoni di Samba

Un server Samba si compone di due principali demoni:smbd questo demone responsabile della gestione delle risorse condivise, siano esse dischi o stampanti tra il server Samba e i suoi client, della gestione di tutti i messaggi di notifica, dell' autenticazione degli utenti.nmbd questo demone responsabile del servizio di risoluzione dei nomi NetBIOS e di assistenza al browsing delle risorse. Questo demone in realt un semplice name server che imita le funzionalit di un WINS o di un NetBIOS name server. Si occupa inoltre di mantenere una lista per il browse delle risorse di rete e partecipa alla scelta del browsing. Se attivo il server WINS nmbd tiene il database dei nomi e degli indirizzi in un file chiamato wins.dat. Un demone nmbd pu anche rispondere alle richieste del protocollo di browsing delle Risorse di Rete di Windows. Se nmbd il master browser locale mantiene i databases di browsing nel file browse.dat.

Installazione SAMBA debian:
apt-get install ......

[*] File Server

samba a Lan Manager like file e printer server for unix

samba doc Samba documentation

smbclient a Lan Manager linke simple client for unix

smbfs mount and umount commands for the smbfs

swat Samba web Administrator Tool

Installazione SAMBA tramite RPM
Disponibile in pacchetti con binari precompilati per le distribuzioni (RedHat, Fedora, Mandrake, SuSe,)

L'installazione completa di samba via RPM richiede pi package scaricabili da repository come http://www.rpmfind.net oppure tramite apt-get e yumSupponiamo di aver scaricato i seguenti RPM:

Package principale contenente documentazione, manuali e binari per attivare il servizio.

samba-x.x.x.i386.rpm

Package contenente le utility e relativi manuali per il mounting delle share

samba-client-x.x.x.i386.rpm

Package contenente file di necessari sia al client che al server come l'utility smbpasswd o le code pages

samba-common-x.x.x.i386.rpm

Utility per la configurazione di samba via web

samba-swat-x.x.x.i386.rpm

Installazione di tutti i vari rpm relativi a samba

# rpm -Uhv samba-*.rpm

Preparing... ########################################### [100%]1:samba-common ########################################### [ 25%]2:samba ########################################### [ 50%]3:samba-client ########################################### [ 75%]4:samba-swat ########################################### [100%]

Gestione del servizio smb

Per la gestione del servizio ci si pu appoggiare allo script: /etc/init.d/smb o samba, specificando come parametro l'azione da eseguire, esempio start, stop o restart.

Per richiamare le singole opzioni utilizzabili lanciare lo script senza argomenti

# /etc/init.d/smb Usage: /etc/init.d/smb {start|stop|restart|reload|status|condrestart}Esempi di avvio, restart e stop# /etc/init.d/smb startStarting SMB services: [ OK ]Starting NMB services: [ OK ]# /etc/init.d/smb restartShutting down SMB services: [ OK ]Shutting down NMB services: [ OK ]Starting SMB services: [ OK ]Starting NMB services: [ OK ]# /etc/init.d/smb stopShutting down SMB services: [ OK ]Shutting down NMB services:

smb.conf

La configurazione di Samba (i demoni smbd e nmbd) viene gestita dal file smb.conf, un normale file di testo ASCII con queste caratteristiche di massima:

I parametri di configurazione vengono forniti nella forma opzione = valore

Il file viene diviso in pi sezioni che definiscono una share (condivisione), oltre alla sezione generale [global]. Ogni sezione si indica fra parentesi quadre: [printers]

Possono essere utilizzate delle variabili, precedute dal simbolo percento (%) all'interno dei valori (es: path = /home/%u)

Si pu includere a smb.conf un altro file di configurazione con l'opzione include (es: include = /etc/samba/smb.conf.%a)

Esempio base

Esempio di configurazione di un workgroup con una cartella condivisa, senza restrizioni di accesso

File /etc/samba/smb.conf[global]workgroup = WORKGROUPsecurity = share[condivisa]comment = Area di lavoro condivisapath = /shared/condivisaread only = no guest ok = yes

Esempio base

fileserver:~# smbclient -L fileserverGot a positive name query response from 127.0.0.1 ( 192.168.1.1 ) Password:Anonymous login successfulDomain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.7-2]Sharename Type Comment--------- ---- -------condivisa Disk Area di lavoro condivisaIPC$ IPC IPC Service (Samba 3.0.7-2) ADMIN$ Disk IPC Service (Samba 3.0.7-2)

Server Comment--------- -------FILESERVER Samba 3.0.7-2P3

Workgroup Master--------- ------ WORKGROUP FILESERVER

Esempio base

Avvio dei demoni smbd e nmbd: # /etc/init.d/samba start ...Starting Samba daemons: nmbd smbd.Samba ora pronto ad accettare connessioni infatti dal client Windows:

Samba come PDC

Lutilizzo del concetto di WORKGROUP pu non essere sufficiente in reti aziendali.E quindi auspicabile lutilizzo del DOMINIO che presenta vantaggi considerevoli quali:

Roaming Profiles Sicurezza Policy definite dallamministratore Script di logon

Samba come PDC

Samba agisce come Primary Domain Controller sostituendo il ruolo di Windows 2000 Server nella rete.Un esempio di configurazione classico:

[global]netbios name = FILESERVER workgroup = MIODOMINIO encrypt password = yes

domain master = yes local master = yes preferred master = yes os level = 65security = user domain logons = yes

/profiles

E' possibile specificare tramite la share [profile] la risorsa che dovr fungere da repository per tutti i roaming profile. Questa share non deve essere visualizzata nelle risorse dispobilli del server ma deve essere possibile scriverci.

[profile]comment = Profili Utentipath = /share/profilecreate mode = 0600directory mode = 0700writable = yesbrowsable = no

/netlogon

Share indispensabile nel caso in cui samba server faccia da PDC, permette il logon dei client nel dominio. Questa share deve avere le seguenti caratteristiche:- Il nome non modificabile, [netlogon]- Non possibile visualizzarla e scriverci.- Non possibile accederci come utente guest.

[netlogon]Comment = share to domain logonpath = /share/netlogonpublic = nowritable = nobrowsable = no

[homes]

Home Share che visualizza in modo automatico la home dell'utente, senza dover mettere le relative entry nel file smb.conf per i singoli utenti. Tale share che prende il nome dell'utente visibile e scrivibile solo dall'utente con cui si eseguito il login sul server.

[homes]comment = Home Directoriesvalid users = %Sread only = Nocreate mask = 0664directory mask = 0775browseable = No

Opzione veto files in smb.conf

Esiste la possibilit di vietare il salvataggio di files con una determinata estensione in una cartella condivisa tramite SAMBA.

Occorre semplicemente aggiungere nella sezione [global] del file smb.conf (/etc/samba/smb.conf) il seguente parametro:

veto files = /*.mp3/ /*.wav/ /*.mpeg/ /*.avi/

In questo caso non permesso il salvataggio di files con estensione: mp3, wav, mpeg ed avi.

Samba come PDC

Ora il dominio pronto, aggiungiamo i client:

Samba Backend

Ovvero i database per le informazioni sugli account.Samba-3 implementa una nuova caratteristica:Le nuove possibili combinazioni di backend per la gestione delle password con un guadagno in termini di flessibilit, affidbilit e scalabilit.

/smbpasswd

Questa opzione permette di continuare ad usare il file smbpasswd che, con una struttura in semplice testo ASCII,

include le password criptate di MS Windows e NT, oltre ad un campo per alcune informazioni sull'account.

La natura del backend di password non permette di immagazzinare nessuna delle informazioni SAM (Security Account Manager - Gestore degli account di sicurezza) di Windows NT/2000 necessarie

usato solo per compatibilit all'indietro con vecchie versioni di Samba.

Potrebbe essere reso obsoleto nei rilasci futuri.

Nuovi backend

Samba 3 introduce la capacit di appoggiarsi a diversi nuovi backend di password.

tdbsam

ldapsam

mysqlsam

xmlsam

tdbsam (1/2)

Samba pu immagazzinare i dati degli account per gli utenti e le macchine in un TDB (Trivial Database -- database banale).

Non adatto ad installazioni con controllori di dominio multipli (ad esempio, PDC pi uno o pi BDC).

Immagazzina le vecchie informazioni di smbpasswd pi le informazioni SAM estese di MS Windows NT / 2000 in un file binario di formato TDB.

L'inclusione delle informazioni estese rende possibile a Samba-3 implementare gli stessi controlli di accesso al sistema che sono possibili con i sistemi basati su MS Windows NT4/2000.

tdbsam (2/2)

La disponibilit dell'opzione tdbsam la risposta diretta agli utenti che chiedevano un sistema per gestire con semplicit un sito senza il sovraccarico della complessit di OpenLDAP.

Si raccomanda l'uso di questa opzione solo per i siti con meno di 250 utenti.

Per i siti pi grandi si raccomanda l'uso di OpenLDAP.

ldapsam

Fornisce un ricco backend basato su un servizio di directory per installazioni con account distribuiti.

Samba-3 fornisce una nuova implementazione estesa di LDAP che richiede la configurazione di OpenLDAP.

Il file con lo schema di nuovo formato incluso nella directory examples/LDAP nella distribuzione Samba.

La nuova implementazione di LDAP estende significativamente la capacit di controllo disponibili nelle versioni precedenti di Samba. Adesso possibile specificare configurazioni dei profili, directory home, controlli di accesso all'account e molto altro utente per utente.

mysqlsam (backend basato su MySQL)

Ci si aspetta che SAM basato su MySQL sar molto popolare, in alcune nicchie.

Questo backend basato su un database sar di grande interesse per i siti che vogliono far leva sulla tecnologia MySQL pre-esistente.

xmlsam (file di dati basato su XML)

permette che i dati degli account e delle password siano immagazzinati in un file di dati in formato XML.

L'opzione xmlsam pu essere utile per la migrazioni di account da un backend di database all'altro o per backup.

L'uso di questo strumento permette di editare i dati prima della migrazione ad un altro backend.

Strumenti per la gestione degli account

Samba fornisce due strumenti per la gestione degli account utente e macchina. Questi strumenti sono chiamati:

smbpasswd

pdbedit

Un terzo strumento in sviluppo ma non si prevede che sia distribuito in tempo per Samba-3.0.0. Il nuovo strumento una GUI TCL/TK molto somigliante al Domain User Manager di MS Windows NT4.

Il comando smbpasswd

Simile al comando passwd di unix (utilizzo e sintassi)

Funziona secondo lo schema client-server (contatta il server smbd locale per cambiare la password dell'utente)

Gestione degli utenti:

Aggiunta/Cancellazione Account utente o Macchina

Abilita/Disabilit account utente o macchina

pone a NULL password utente

gestisce gli account di trust interdominio

Per maggiori informazioni sull'uso di si rimanda alle pagine man.

Il comando pdbedit

Solo root pu usare.

Amministrare il backend di password tdbsam

Gestione utenti (User Management Account)

Creazione/Cancellazione/Modifica Account utente.

Elenca gli account utente

Migrazione account utente (prossima slide)

Lo strumento pdbedit l'unico in grado di gestire le impostazioni di sicurezza e le policy degli account. capace di svolgere tutte le operazioni di smbapasswd e un loro sovrainsieme.

pdbedit migrazione db

Lo strumento pdbedit permette la migrazione dei database di autenticazione (account) da un backend ad un altro.

Per esempio: per migrare gli account dal vecchio database smbpasswd al nuovo backend tdbsam

Imposta il backend di passdb = tdbsam, smbpasswd

Eseguire:pdbedit -i smbpassed -e tdbsam

Ora rimuovere smbpasswd dalla configurazione dei backend di passdb in smb.conf

Privacy 2004 : misure minime di sicurezza (D.Lgs. n. 196/2003)

Credenziali di autenticazione

Codice di identificazione (User name o User-ID) + parola chiave (Password o PW), conosciuta solo dallincaricato.

La parola chiave lunga almeno 8 caratteri, non contiene riferimenti agevolmente riconducibili allincaricato.

La parola chiave modificata dallincaricato al primo utilizzo.

La parola chiave viene modificata dallincaricato almeno ogni 6 mesi, almeno ogni 3 mesi se dati sensibili.

...Allegato B Decr. legisl. 196/03

pdbedit account policy

minimum password age

reset count minutes

disconnect time

user must logon to change password

password history

lockout duration

min password length

maximum password age

bad lockout attempt

Segue un esempio dell'elenco delle informazione utente immagazzinate in un backend di password tdbsam. L'elenco creato con l'esecuzione di:

pdbedit -Lv claudio

Unix username: claudioNT username:Account Flags: [U ]User SID: S-1-5-21-3204212905-2946271072-3972271682-2000Primary Group SID: S-1-5-21-3204212905-2946271072-3972271682-512Full Name: Claudio CardinaliHome Directory: \\server\claudio\.profileHomeDir Drive: H:Logon Script: logon.batProfile Path: \\server\profiles\claudioDomain: STUDIOAccount desc: Claudio CardinaliWorkstations:Munged dial:Logon time: 0Logoff time: ven, 13 dic 1901 21:45:51 GMTKickoff time: 0Password last set: mer, 13 ott 2004 12:19:43 GMTPassword can change: mer, 13 ott 2004 12:19:43 GMTPassword must change: ven, 13 dic 1901 21:45:51 GMTLast bad password : 0Bad password count : 0Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

srvtools

LDAP

Cosa LDAP ?

LDAP = Lightweight Directory Access Protocol

E' un protocollo che permette di accedere ad un servizio di directory (inteso come elenco dati) e far comunicare pi computer con un directory server.

LDAP parte da un modello di dati stabiliti dallo standard X.500 ed implementa un protocollo di accesso semplificato basato sul TCP/IP (389,636) stanadardizzato dall'RFC 2251.

Cosa una directory

E' una collezione gerarchica di oggetti e di diritti associati agli oggetti stessi un po' come le directory di un filesystem che contengono informazioni pi descrittive basate su attributi.

Un elenco LDAP generalmente concepito per fornire una responsivit alle richieste di lettura e ricerca, pu essere facilmente replicato e supporta la distribuzione del carico.

Il server di OpenLDAP si chiama slapd

Differenze tra ldap e database relazionali

Ldap stato progettato per basi di dati che devono essere letti spesso e aggiornati meno frequentemente. E' quindi ottimizzato per permettere letture veloci a discapito della velocit di scrittura.

I dati sono organizzati in una struttura gerarchica e non in tabelle.

Esempio di directory

dc=fileserver, dc=csolution, dc=it

ou=utenti, dc=fileserver, dc=csolution, dc=it

ou=gruppi, dc=fileserver, dc=csolution, dc=it

cn=Claudio, ou=utenti, dc=fileserver, dc=csolution, dc=it

I Backend

Slapd ha la possibilit di usare diversi tipi di database come backend in cui memorizare tutte le informazioni necessarie come:LDBM (Lightweight DBM): formato predefinito basato du BDB.

BDB (Berckley Batabase): vecchio formato basato su bdb.

Ldap : server funziona in modalit proxy.

Sql: come gateway tra applicazioni e db.

Assumeremo l'utilizzo del backend LDBM come di default...

Backend: il formato LDIF

Per importare/esportare dati tra i vari server LDAP-based o per descrivere una serie di cambiamenti da applicare ad una directory si utilizza un formato conosciuto come LDIF (LDAP Data Interchange Format).

Un file LDIF memorizza informazioni in una gerarchia di entry object-oriented.

Tutti i pacchetti LDAP dispongono di utility che convertono i file LDIF nel formato BDB.

Esempio file LDIF

Un tipico file LDIF somiglia al seguente:

dn: o=csolution, c=ito: csolutionobjectclass: organizationdn: cn=Claudio Cardinali, o=csolution, c=itcn: Claudio Cardinalisn: Cardinalimail: [email protected]: person

o=csolution, c=itcn=Claudio Cardinali, o=csolution, c=it

Gli attribbuti e le Object Class

Come da esempio ogni entry identificata univocamente da un distinguished name (DN), un DN formato dal nome dell'entry seguito da un path formato da pi nomi che rintraccia il posizionamento dell'entry all'interno della struttura ad albero rovesciato che compone la struttura del server LDAP (si pensi alla classica rappresentazione di un filesystem).

ObjectClass definisce un set di attributi che possono essere usati per definire un entry. Tutti i pacchetti LDAP definiscono di default almeno i seguenti objectclass:

GROUPS: particolare oggetto che rappresenta liste disordinate di oggetti singoli o di gruppi di oggetti.

LOCATIONS: oggetto che rappresenta nomi di nazioni e loro descrizione.

ORGANIZATIONS: oggetto che rappresenta organizzazioni, aziende, ect..

PERSON: contiene gli attributi per schedare una persona all'interno di una directory

Installazione di un server LDAP (cenni)

E' possibile installare OpenLDAP prelevando i sorgenti in formato .tar.gz dal sito http://www.openladap.org oppure utilizzare i pacchetti creati ad hoc per la vostra distribuzione Gnu/Linux.

Ad es. Debian: # apt-get install slapd ldap-utils

(Si rimanda alla documentazione ufficiale e agli howto di ogni distribuzione).

Alla fine del processo di installazione tutti i binari, i file di configurazione, gli schemi di default, etc. saranno installati in opportune directory del filesystem. Occorre prestare molta attenzione alla directory /etc/ldap/, in cui presente il file di configurazione di slapd (slapd.conf)

Configurazione di Slapd: slapd.conf

Il file di configurazione strutturato in 2 parti:Definizioni globali: riguarda la configurazione generale del server, vengono definiti gli schemi da utilizzare, le impostazione del protocollo, l'algoritmo per le password, il livello di verbosity, la posizione del pid file, il backend da utilizzare, etc..

Direttive dei backend (leggi database): queste sezioni iniziano normalmente con la direttiva database , e riguardano la configurazione dei singoli database.

Aggiungere gli schemi

Gli schemi usati dal server ldap devono essere caricati all'avvio, Senza di essi il server non sar in grado di mappare i nomi degli attributi.

# Global Directives:

# Schema and objectClass definitionsinclude /etc/ldap/schema/core.schemainclude /etc/ldap/schema/cosine.schemainclude /etc/ldap/schema/nis.schemainclude /etc/ldap/schema/inetorgperson.schemainclude/etc/ldap/schema/samba.schema

Definizione schemi

Creare gli indici

Gli indici vengono definiti nel file slapd.conf

# Indexing options for database #1

index objectClass,uidNumber,gidNumber eqindex cn,sn,uid,displayName pres,sub,eqindex memberUid,mail,givenname eq,subinitialindex sambaSID,sambaPrimaryGroupSID,sambaDomainName eq

Dopo averli dichiarati gli indici devo essere creati con il comando slapindex ricordandosi prima di fermare il server ldap.

Access Control list

L'accesso ai dati pu essere ristretto ad un particolare insieme di utenti, e si pu limitare l'accesso in lettura e scrittura alle porzioni dell'albero.

access to attribute=userPassword by dn="cn=Manager,dc=csolution,dc=it" write by anonymous auth by self write by * none

DefinizioneACL

Avviare slapd

Come potete leggere nel commento qui sotto, normalmente slapd parte facendo la listen solo sulla porta tcp 389 che corrisponde al servizio ldap (no ssl), per fare in modo che il vostro server ldap ascolti anche alla porta ldaps (636) occorre inserire la url ldaps:// all'interno dello script di avvio di slapd:.

# slapd normally serves ldap only on all TCP-ports 389. slapd can also# service requests on TCP-port 636 (ldaps) and requests via unix# sockets.# Example usage: SLAPD_SERVICES="ldap:/// ldaps:///"

Nota bene: se il vostro server ldap deve esclusivamente essere utilizzato via ssl dai client della rete conviene impostare questa voce ai valori ldap://127.0.0.1 ldaps://, questo impedisce le connessioni in chiaro da tutti gli host della rete eccetto che dall'interfaccia di loopback.

Popolare il database..

A questo punto necessario popolare il databse LDAP: si possono seguire diverse strade:attraverso l'importazione di un file LDIF, contenente tutte le specifiche ed i record necessari.

Utilizzando un script (molto pi comodo!) smblap-populate che viene distribuito con il pacchetto smbldap-tools.

Nota: smbldap-tools scritto in perl e per essere eseguito necessit di alcuni moduli CPAN come prerequisito fondamentale.

..smbldap-tools (1/3)

Una volta rispettati i prerequisiti di smbldap-tools necessario configurarlo: il file di configurazione e /etc/smbldap-tools/smbldap.conf ed i paramatri da impostare sono i seguenti:

Il SID del Dominio (si ottiene con il comand net getlocalsid)

SID="S-1-5-21-826166809-298217214-2959266991"

Su winNT il sistema utilizza i SID Security Identifier come valore univoco al posto dei uid/gid usati in unix e i SID identificano utenti e gruppi e computer indifferentemente all'interno del dominio.Il SID utente composto da Domain SID + RID (Relative ID), il nome dell'utente non ha alcuna importanza, quello che conta solo il SID! (infatti gli utenti si possono rinominare tranquillamente senza nessun problema).

..smbldap-tools (2/3)

Una volta rispettati i prerequisiti di smbldap-tools necessario configurarlo: il file di configurazione e /etc/smbldap-tools/smbldap.conf ed i paramatri da impostare sono i seguenti:

Il SERVER LDAP:slaveLDAP="127.0.0.1"slavePort="389"masterLDAP="127.0.0.1"masterPort="389"ldapSSL="0"suffix="dc=csolution,dc=it"usersdn="ou=Users,${suffix}"computersdn="ou=Computers,${suffix}"
groupsdn="ou=Groups,${suffix}"

..smbldap-tools (3/3)

Una volta rispettati i prerequisiti di smbldap-tools necessario configurarlo: il file di configurazione e /etc/smbldap-tools/smbldap.conf ed i paramatri da impostare sono i seguenti:

I Default per gli utenti:userLoginShell="/bin/bash"userHome="/home/%U"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
userSmbHome="\\fileserver\homes\%U"
userProfile="\\fileserver\profiles\%U"

Autenticazione

Samba 3 ha bisogno che il database delle password di sistema sia allineato con quello proprietario Samba.E' possibile configurare l'autenticazione del sistema affinch si serva anch'essa di LDAP avendo in questo modo un unico database centralizzato per tutti gli utenti

note: prerequisito l'installazione del pacchetto nss_ldap

#apt-get install libnss-ldap(NSS module for using LDAP as a naming service)

authconfig

Sotto RedHat esiste una Utility chiamata authconfig che guida l'utente nella configurazione dell'autenticazione al sistema, in particolare nelle seguenti operazioni:

gestione delle informazioni relative agli utenti

abilitazione di nscd (demone caching delle informazioni di nsswitch)

gestione del sistema di autenticazione vero e proprio

utilizzo delle shadow password

utilizzo delle password MD5

Utilizzo di un database LDAP e la sua configurazione

utilizzo della autenticazione SMB e la sua configurazione

screenshot authconfig 1/2

screenshot authconfig 2/2

Name Service Switch

NSS una interfaccia che permette di demandare, a delle librerie esterne, l'accesso a informazioni riguardanti l'ambiente locale (come ad es. account utenti, password, gruppi, hosts, corrispondenze tra i nomi delle macchine e i numeri di porta).In breve svolge le operazioni di conversione UID nome_utente e GID nome_gruppo che servono per gli altri porgrammi.Queste definizioni vengono dichiarate all'interno del file /etc/nsswitch.conf. Il formato prevede una riga per ogni classe di informazione, nella prima colonna viene specificato il tipo di classe (di solito le keyword sono hosts, group, passwd, aliases, protocols, etc) seguito dal carattere ' : ', poi sono possibili valori che indicano dove reperire le informazioni per quelle classi, questi valori sono identificati da parole chiavi come ldap, file, dns, db, nis, con la possibilit di specificare l'ordine in cui questi supporti vengono presi in considerazione.Un esempio di file nella prossima slide.....

Il file /etc/nsswitch.conf

# /etc/nsswitch.conf## Example configuration of GNU Name Service Switch functionality.# If you have the `glibc-doc' and `info' packages installed, try:# `info libc "Name Service Switch"' for information about this file.

passwd: files ldapgroup: files ldapshadow: files ldap

hosts: files dns ldapnetworks: files

protocols: db filesservices: db filesethers: db filesrpc: db files

netgroup: nis

files: indica che la ricerca dell'oggetto da effettuare sui files di sistema.

ldap: indica che la ricerca dell'oggetto da effettuare sul database ldap.

Usare ldap con PAM

Per poter usare ldap con PAM si devono installare i pacchetti libpam-ldap

Il programma di installazione provvede a configurare il tutto correttamente, poi basta modificare i file nella directory /etc/pam.d

fileserver:/etc/pam.d# lsBACKUP cupsys other sudochfn gdm other.dpkg-old suexec-apachechsh gdm-autologin passwd suexec-apache-sslcommon-account kcheckpass passwd.dpkg-old xdmcommon-auth kdm ppp xscreensavercommon-password kscreensaver sambacommon-session login sshcron login.dpkg-old su

All'interno di questa directory sono contenuti i vari file di configurazione per ogni servizio, che modificano il loro comportamento in fase di autenticazione.

Configurare P.A.M.: la directory pam.d

common-accountaccount sufficient pam_ldap.soaccount required pam_unix.so

common-auth (definisce gli schemi di autenticazione da usare nel sistema)auth sufficient pam_ldap.so use_first_passauth required pam_unix.so

common-password (definisce i moduli che permettono di cambiare la password)passwordsufficientpam_ldap.so passwordsufficient pam_unix.so nullok use_authtok md5 shadow use_first_passpasswordrequiredpam_deny.so

common-session (definisce i moduli che definiscono i task da compiere all'inizio e alla fine di una sessione)session required pam_mkhomedir.so skel=/etc/skel/session sufficient pam_ldap.sosession required pam_unix.so

Come verificare il funzionamento del NSS

A questo punto, se stato tutto fatto correttamente, dovremmo poter estrarre informazioni su gruppi, utenti, shadow password, da ogni macchina della rete abilitata a usare ldap (cio con il file libnss-ldap corettamente configurato).Per verificare usiamo il comando getent.

macchina_client# getent passwdroot:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/bin/shbin:x:2:2:bin:/bin:/bin/shsys:x:3:3:sys:/dev:/bin/shsync:x:4:65534:sync:/bin:/bin/sync............pallotron:x:1000:1000:Angelo Michele Failla:/home/pallotron:/bin/bashgmaggio:x:1001:1000:Gabriele Maggio:/home/gmaggio:/bin/bashadministrator:x:0:1000:Account admin win:/home/Administrator:/bin/bashsegreteria:x:1002:1000:account di prova:/home/segreteria:/bin/bashmgrasso:x:1003:1000:Maurizio Grasso:/home/mgrasso:/bin/bash

Verifichiamo poi group e shadow nella medesima maniera.

Configurare Samba: Premesse

Adesso vedremo come configurare un server SAMBA (versione 3) come PDC utilizzando ldap come backend per utenti e gruppi.Bisogna configurare la parte strettamente specifica a Samba nel file /etc/samba/smb.conf

Configurare Samba: il file smb.conf

[global] workgroup = CSOLUTION netbios name = Fileserver server string = SAMBA-LDAP PDC Server... #unix password sync = Yes #passwd program = /usr/local/sbin/smbldap-passwd -u %u #passwd chat = "Changing password for*\nNew password*" %n\n "*Retype new password*" %n\n" ldap passwd sync = Yes ... ; SAMBA-LDAP declarations passdb backend = ldapsam:ldap://127.0.0.1/ # ldap filter = (&(objectclass=sambaSamAccount)(uid=%u)) ldap admin dn = cn=Manager,dc=csolution,dc=it ldap suffix = dc=csolution,dc=it ldap group suffix = ou=Groups ldap user suffix = ou=Users ldap machine suffix = ou=Computers ldap ssl = start_tls

add machine script = /usr/local/sbin/smbldap-useradd -w "%u" add user script = /usr/local/sbin/smbldap-useradd -m "%u" ldap delete dn = Yes #delete user script = /usr/local/sbin/smbldap-userdel "%u" add machine script = /usr/local/sbin/smbldap-useradd -w "%u" add group script = /usr/local/sbin/smbldap-groupadd -p "%g" #delete group script = /usr/local/sbin/smbldap-groupdel "%g" add user to group script = /usr/local/sbin/smbldap-groupmod -m "%u" "%g" delete user from group script = /usr/local/sbin/smbldap-groupmod -x "%u" "%g" set primary group script = /usr/local/sbin/smbldap-usermod -g "%g" "%u"

... Dos charset = 850 Unix charset = ISO8859-1

Migrazione tbsam --> ldapsam

Se state migrando da una installazione Samba3con backend diverso da LDAP, potete utilizzare pdbedit per effettuare la migrazione:

# pdbedit -b tdbsam -g -e ldapsam# pdbedit -b tdbsam -u -e ldapsam

Questi due comandi porteranno prima i gruppi e poi gli utenti dal backend tbsam al backend ldapsam.

Come joinare le macchine al dominio

Per cambiare la password dell'account Administrator utilizziamo il comando smbpasswd.

smbpasswd -w

Dopo questo comando la password sar modificata e possiamo joinare le nostre macchine al dominio. Per fare ci occorre inserire un account per ogni macchine all'interno dell'elenco LDAP ou=Computers,dc=csolution,dc=it

(supponiamo il joining al dominio da parte di un client Windows 2000 e di un client indows XP)

#smbldap-useradd -w CLIENT2k#smbldap-useradd -w CLIETXP

il flag -w serve a specificare che si tratta di un account macchina e non un utente.

Il groumapping POSIX Samba

Se la vostra un rete etorogenea, fatta di macchine Linux e Windows, che accedono a directory condivise da un fileserver (le macchine windows con samba, quelle linux ad es. Tramite NFS o altri filesystem di rete), pu sorgere la esigenza di mappare i gruppi posix con quelli di windows, e viceversa, in modo da non avere noie e problemi con i permessi.Questo si realizza con la utility net messa a disposizione dal comando samba (dopo aver aggiunto il gruppo samba al vostro elenco ldap)

fileserver:~# net groupmap listSystem Operators (S-1-5-32-549) -> managergrafici (S-1-5-21-1319615927-900196694-2235752281-3005) -> grafici[snip]Domain Admins (S-1-5-21-1319615927-900196694-2235752281-512) -> managerDomain Users (S-1-5-21-1319615927-900196694-2235752281-513) -> usersPower Users (S-1-5-32-547) -> managerPrint Operators (S-1-5-32-550) -> managerAdministrators (S-1-5-32-544) -> managerAccount Operators (S-1-5-32-548) -> managerUsers (S-1-5-32-545) -> usersprogrammatori (S-1-5-21-1319615927-900196694-2235752281-3003) -> programmatori

La mappatura si realizza con il comando:net groupmap add unixgroup= type=domain ntgroup=

Alcuni tools di amministrazione: LAM e phpLDAPadmin

E' irragionevole gestire un dominio con i soli comandi di shell!!

Per questo vengono in aiuto delle interfaccie, alcune binarie altre direttamente web, che permettono di gestire gli account, i gruppi, e le macchine.

LAM uno di questi. La cosa pi interessante di questo tool che permette di gestire sia gli account posix che quelli samba in modo integrato. Permette di impostare le password, gli expire, i path dei profili windows e delle home unix, di parametrizzare gli script bat di logon per ogni utente.Ha anche la possibilit di definire dei template di profilo.

PhpLDAPadmin invece un'applicativo php per l'accesso generale alla struttura dell'elenco, con esso possibile browsare e modificare l'elenco in ogni singolo punto dell'albero, aggiungere attributi e classi ad un entry.

L.A.M. (LDAP ACCOUNT MANAGER)

phpLDAPadmin

Samba Antivirus

ClamAV: Antivirus per Linux

ClamAV uno dei pi interessanti progetti OpenSource per lo scanning di virus.

Rilasciato sotto GPL disponibile per varie piattaforme *nix (Linux, *BSD, Solaris, MacOs X, lo stesso CygWin... ).

Database in costante aggiornamento (24h).

La versione analizzata 0.8x identifica pi di 26000 virus ed in grado di scompattare file compressi e di analizzare documenti di Office per Macro virus.

NON corregge i file infetti, ma, nella sua applicazione pi comune (antivirus correlato ad un sistema di posta) questa mancanza assolutamente ininfluente.

Installazione clamav

E' possibile scaricare sorgenti e binari precompilati per diverse distribuzioni dal sito ufficiale www.clamav.net.

Per compilare ClamAv necessario avere i seguenti pacchetti: zlib, zlib-devel, oltre ovviamente alla suite gcc. Sono inoltre consigliati bzip2, bzip2-devel, gmp.

apt-get install clamv clamav-base clamav-freshclam libclamav1

vscan

samba-vscan un modulo proof-of-concept per samba che fornisce un supporto all'antivirus diretto on-access per i file condivisi attraverso un server Samba.

samba-vscan supporta diversi tipi di antivirus: ClamAV , FRISK F-Prot Daemon, F-Secure AV, Kaspersky AntiVirus, McAfee/NAI uvscan, mks32, OpenAntiVirus ScannerDaemon, Sophos Sweep, Symantec AntiVirus Engine (via ICAP), Trend Micro.

Link: http://www.openantivirus.org/projects.php#samba-vscan

[vscan]

[vscan] comment = virus-protected directory path = /mnt/dati/vscan vfs object = vscan-oav vscan-oav: config-file = /etc/samba/vscan-oav.conf writeable = yes browseable = yes guest ok = yes

Screenshot samba-vscan

Opening Windows to a Wider World....

Grazie a tutti !

Cliccate per modificare il formato del testo del titolo

Cliccate per modificare il formato del testo della strutturaSecondo livello strutturaTerzo livello strutturaQuarto livello strutturaQuinto livello strutturaSesto livello strutturaSettimo livello strutturaOttavo livello strutturaNono livello struttura

Samba Primary Domain ControllerClaudio Cardinali - [email protected]