AFS:
brevi cenni
 
ICA CLIENT:
download
 
INSTALLAZIONE   CONFIGURAZIONE
per Windows   per Windows
per Macintosh   per Macintosh
per Linux   per Linux
 
ICA CLIENT:
come funziona


per maggiori informazioni su AFS in generale e su AFS in ENEA in particolare, si può fare riferimento al sito:
http://www.frascati.enea.it/afs

Lista delle Porte da abilitare sul firewall per l'utilizzo dei servizi ENEA
http://www.telegrid.enea.it/porte-servizi-ITC.htm

Introduzione all' AFS

AFS (Andrew File System) è un file system distribuito, per il sistema operativo UNIX, che permette di accedere un gran numero di files e directory su macchine diverse in modo uniforme.
E' un prodotto proprietario realizzato e distribuito dalla Transarc Corp. (Pittsburg,USA). Il sistema può funzionare sulle principali piattaforme Unix (SUN, HP, DEC, IBM, SGI,Windows/NT), recentemente è stata annunciata anche la versione per MsDos. Esiste anche una versione per il sistema operativo di pubblico dominio Linux (per PC), sviluppata al MIT.

AFS si basa sul modello client/server.

  • Client Machine - sono workstation o altre macchine dove gira un software per connettersi ai server (AFS client).

  • Server Machine - è la macchina che provvede all'accesso ai volumi.
In AFS si distinguono due tipi di software: Client e Server. Le macchine Client AFS sono delle normali stazioni di lavoro con dello spazio disco locale non condiviso dedicato al funzionamento del software Client; su queste macchine sono attivi i demoni AFS Cache Manager che presentano all'utente finale una directory in piu': /afs. Tutti i file e le directory che costituiscono /afs sono fisicamente presenti sulle macchine File Server di AFS, geograficamente disperse per il mondo. La funzione del Cash Manager locale è di comunicare con queste macchine e fornire localmente all'utente i file remoti.

Cache Manager

Il processo di cache manager assicura una riduzione del numero di richieste al network del server. Il cache manager richiede i files al server e le copia sulla vostra macchina. Voi lavorate su una copia, non sull'originale, che si trova sul server, al momento della chiusura, o del salvataggio, penserà il server a modificare l'originale.
AFS è strutturato in "celle".
In AFS la cell, è un insieme di clients e servers.
Possiamo vederla come una struttura ad albero dove la root è chiamata /afs , tutte le celle sono visibili al secondo livello dell'albero AFS e possiamo dare il comando cd (change direct) verso ogni cella, esattamente come si cambia directory in Unix.
Dal punto di vista dell'utente la directory /afs non differisce da qualsiasi altra directory Unix. La sostanziale differenza è nel fatto che AFS consente uno schema di autorizzazioni piu' raffinato e quindi un controllo degli accessi piu' selettivo che sulle normali directory Unix.
Generalmente una cella corrisponde al medesimo nome del dominio. Il DNS (Domain Name System) è un metodo gerarchico e distribuito di organizzare lo spazio in Internet. Il DSN raggruppa amministrativamente gli HOST secondo una catena gerarchica di autorità che consente di distribuire e di tenere aggiornati gli indirizzi e altre informazioni.
La nostra cella si chiama enea.it.
Un raggruppamento di cell correlate tra loro viene chiamato "site".
Per passare da una cella ad un'altra si usa il comando:

cd /afs/cellname

File Space

Una cella ha un suo proprio File Space e può connettersi ai File Space di altre celle definite in AFS. L'autorizzazione ad accedere al file space dell'AFS avviene mediante l'assegnazione di un token che viene usato come prova per tutti i file server che l'utente è authenticated.
Se l'utente non ha un token, AFS lo considera come un utente anonimo (fa parte del gruppo system:anyuser)
Ogni token ha un periodo limitato di validità, per vedere la scadenza si può; usare il comando:

tokens

che fornisce anche il nome dell'utente associato al token e il nome della cella in cui è valido.
Il valore default viene impostato dall'amministratore di sistema.
Un token può essere rinnovato in qualsiasi momento con il comando:

klog

che, dopo aver richiesto la password dell'utente e averne verificato la correttezza, sostituisce il vecchio token con il nuovo. Questo comando può essere utilizzato anche nel caso in cui il vecchio token stia per scadere e l'utente desideri mandare in esecuzione in background un job molto lungo. Se stiamo usando X windows su una workstation il token è associato con una sessione sul vostro HOST COMPUTER e l'apertura di altre finestre non abbiamo bisogno di mandare il comando KLOG, perchè siamo sempre autenticati.

Volumi

Unix divide i dischi fisici in partizioni logiche, AFS divide le partizioni in sottosezioni chiamate volumi.
Un volume quindi contiene un sottoalbero di directory e di files.
L'accesso a un volume è fornito dal Mount Point che punta alla locazione (macchina server e partizione) del volume; si può quindi paragonare a una directory di Unix.
I volumi hanno definita una quota e un ACL associato; la quota viene assegnata dall'amministratore di sistema e rappresenta la quantità massima di spazio disco che il volume può contenere.
Per esaminare la quota di un volume si usa il comando:

fs listquota

Il comando risponde con il nome del volume che contiene la directory specificata,la quota,la parte usata,la percentuale usata e la percentuale di spazio usata sulla partizione che contiene il volume.
fs lq /afs/enea.it/frascati/info           <
Volume Name             Quota    Used    % Used    Partition
frascati.info.readonly  5000      28        1%         80
Le quantità sono misurate in kilobytes.

Protezione dei files

AFS usa il meccanismo di KERBEROS e ACL come accesso ai files e directory.
La combinazione tra kerberos e acl provvede ad una superiore sicurezza.
Tale meccanismo è basato su una lista di controllo, chiamata ACL (Access Control List) che consiste in una lista di utenti con i corrispondenti diritti di accesso alla directory. Per ogni directory del file system di AFS viene definita una ACL che viene applicata a tutti i files e sottodirectory presenti su quella directory.
Tutti i files ereditano i diritti di accesso associati alla directory madre; se un file viene spostato da una directory ad un'altra, esso acquisisce i diritti di accesso della nuova directory.
Se viene cambiata l'ACL su una directory, la protezione di tutti i suoi files viene cambiata.
Quando viene creata una sottodirectory, essa eredita automaticamente i diritti di accesso della directory madre.

Esistono due tipi di gruppi: quelli chiamati regolari e quelli senza prefisso; i nomi dei gruppi regolari sono formati di 2 parti separate dal carattere :, del tipo:

owner-name:group-name

in cui la prima parte indica il nome del possessore del gruppo mentre la seconda fornisce il nome del gruppo.
I nomi dei gruppi senza prefisso sono formati solo dalla parte group-name; tali gruppi possono essere creati solamente dagli amministratori di sistema.
Generalmente i gruppi vengono creati dagli utenti, tuttavia tre sono creati automaticamente dal sistema:

  • system:anyuser - Questo gruppo comprende chiunque può accedere a questa cell, inclusi gli utenti che hanno fatto login su una workstation locale ma non sono autorizzati ad usare AFS (non hanno un token valido).
  • system:authuser - Questo gruppo comprende tutti gli utenti attualmente autorizzati a lavorare in AFS (hanno un token valido).
  • system:administrators - Questo gruppo comprende solamente le persone designate come amministratori di sistema.

Permessi di accesso

La protezione del singolo file dipende dalla combinazione dei diritti specificati nell'ACL e dei diritti di accesso ammessi da Unix che, lo ricordiamo, sono in lettura, in scrittura e in esecuzione. Nell'ACL sono previsti 7 diritti di accesso associati alla directory (quindi a tutti i files e sottodirectory residenti su quella directory) che possono essere suddivisi in 2 livelli:

  • il primo livello controlla l'accesso alla directory (LOOKUP, INSERT, DELETE e ADMINISTER);
  • il secondo controlla l'accesso ai files presenti nella directory (READ, WRITE e LOCK).
Ogni diritto di accesso può essere abbreviato in un solo carattere come viene mostrato fra parentesi nella definizione sottostante.

L'accesso LOOKUP (l) permette al possessore di usare il comando ls per avere la lista dei nomi dei files e sottodirectory della directory stessa, ma non di leggerne il contenuto e di esaminare l'ACL relativa a questa directory.
L'accesso INSERT (i) permette al possessore di aggiungere nuovi files nella directory o creare nuove sottodirectory.
L'accesso DELETE (d) permette di cancellare files o sottodirectory dalla directory.
L'accesso ADMINISTER (a) permette di modificare l'ACL . Gli utenti generalmente possono modificare l'ACL relativa alla propria home directory.
L'accesso READ (r) permette di leggere il contenuto dei files della directory e di esaminare la lista dei files delle sottodirectory.
L'accesso WRITE (w) permette di modificare il contenuto dei files della directory e di cambiare i diritti di accesso permessi da Unix con il comando chmod.
L'accesso LOCK (k) permette di far girare programmi che hanno bisogno di un uso esclusivo della directory o dei files.

Questi diritti di accesso possono essere combinati fra loro in vari modi, ma le combinazioni più usate sono le seguenti:

  • write- rlidwk (tutti i diritti meno ADMINISTER)
  • read - rl (READ e LOOKUP)
  • all - rlidwka
  • none - cancella tutti i diritti
Ogni utente, per poter accedere in qualsiasi momento ai propri sottodirectory, deve avere almeno l'accesso LOOKUP sui propri directory; quindi deve essere autorizzato in uno dei 3 modi seguenti:
  1. fa parte di un gruppo di sistema (system:anyuser o system:authuser);
  2. è autorizzato come utente individuale;
  3. fa parte di un gruppo di utenti autorizzati definito da altri utenti.
AFS controlla l'accesso ai propri files mediante 2 liste:
  • Normal Rights - contiene l'utente o il gruppo di utenti che possono eseguire le azioni specificate;
  • Negative Rights - contiene l'utente o il gruppo di utenti a cui è vietata l'esecuzione delle azioni specificate.
Poichè il file server prima controlla la Normal Rights e successivamente la Negative Rights, se per esempio si desidera dare l'accesso READ a tutte le persone di un gruppo meno una, si può inserire il gruppo nella lista Normal Rights e la singola persona nella lista Negative Rights.
Quindi per impedire l'accesso ad una directory esistono 2 modi:
  1. eliminare l'utente o il gruppo dalla lista Normal Rights;
  2. aggiungere l'utente o il gruppo nella lista Negative Rights.
Poichè l'AFS permette di prevenire che altri utenti scrivano accidentalmente sui propri files solamente limitando l'accesso alla directory attraverso l'ACL, è opportuno porre molta attenzione nel definire e nel modificare l'ACL.

inizio pagina

AFS nella cella ENEA.IT

Attualmente nella cella enea.it ci sono 6 File Server suddivisi nelle vari sedi ENEA, con circa 250 GB di spazio disco.
AFS logicamente è diviso in due parti Read-Only e Read-Write. Nella parte Read-Only sono stati installati i codici di calcolo e software vari,  pronti per l'uso sulle macchine Cient per tutte le piattaforme Unix a cui vien dato supporto.
La parte Read-Write di AFS contiene invece le directory Home degli utenti.
Qualsiasi possessore di workstation può richiedere di installare il software Client AFS sulla sua macchina e puntare sulla cella "enea.it" sotto /afs.

Organizzazione delle HOME DIRECTORY

Il proprietario delle directory AFS può per esempio, chiudere completamente l'accesso ai suoi file, limitare l'accesso alla sola lettura dei nomi dei file, può consentire la lettura o la scrittura o l'esecuzione, può proibire o consentire la cancellazione, può infine aprire alcun delle sue directory a chiunque nel mondo AFS. Ogni directory in /afs ha l'Access Control List (ACL), composta da 7 campi che definiscono il modo di accesso di ogni sottodirectory AFS:
l - lookup (comandi ls e cd; check-ACL)
r - mostra il contenuto dei files
i - crea nuovi file/sottodirectory (create, cp)
w - modifica il contenuto dei file, chmod
d - rm, mv (per mv deve essere garantita l'operazione di
            inserimento per la directory di destinazione)
k - permesso per programmi di  "flock" files nella directory
a - cambia l'ACL

Esempio: 
gli ACL nella home directory /afs/enea.it/frascati/info/dangelo
di AFS dell'utente con id=dangelo:

~dangelo:  

dangelo rlidwka                 (dangelo e gli utenti che fanno parte
                                 del gruppo system:administrators   
system:administrators rlidwka    hanno tutti i diritti, tutti gli
                                 utenti del gruppo frascati possono 
frascati rl                      vedere e leggere i file)

Protection Groups
Ogni utente ha la facoltà di creare i cosiddetti Protection Groups e popolarli con gli id degli altri utenti; i gruppi allora possono essere utilizzati nelle ACL delle directory che l'utente utilizza. Se qualche accesso AFS è garantito al gruppo nell'insieme, è automaticamente garantito a tutti i membri del gruppo.

Sicurezza

Particolare attenzione è stata posta in AFS al problema della sicurezza. Di tutte le directory /home sotto AFS viene fatto un backup automatico notturno. Inoltre l'utente di AFS è soggetto alla autenticazione attraverso il Kerberos Autentication Server. L'autenticazione ha una durata limitata nel tempo (default 25 ore) in modo da assicurare una ulteriore protezione nel caso che una sessione venga dimenticata aperta. La autenticazione è fatta automaticamente al momento del login ed in qualsiasi istante l'utente può rinnovare l'autenticazione estendendone cosi' il periodo di validità.

Gli Eseguibili

In particolare un utente AFS può eseguire sulla sua macchina un qualunque programma il cui eseguibile sia presente in una directory AFS. Il comando di esecuzione fa si' che il programma sia dapprima copiato dal Cache Manager sul disco locale e quindi eseguito localmente: tranne un breve tempo di attesa iniziale l'utente non percepisce alcuna differenza rispetto alla situazione in cui il programma sia installato a sua cura sulla macchina locale ma ha eliminato completamente tutti i problemi connessi con il reperimento, l'installazione e la manutenzione del software, con significativi risparmi di tempo e di spazio disco locale. La Directory dove risiedono gli eseguibili deve avere ambedue i permessi di LOOKUP e READ permission per poter mandare in esecuzione il binario.

inizio pagina