Telemat Lab's home page


Copyrigtht © 1986 Università di Firenze. All rights reserved.

Free license available.


THE HACKERS

a cura di Sergio Walter e Sandro Perlini
Prec. Succ. Indice Hyperbook

Cap.4: Installazione dell'NFS e prevenzione contro gli attacchi.

Installazione dell'NFS e prevenzione contro gli attacchi

Il passo successivo è stato quello di installare correttamente l'NFS sulla nostra macchina, così abbiamo potuto capire quale parte specifica è stata male configurata in quelle macchine che esportano directory vitali in lettura/scrittura a tutti (everyone). I passaggi che descriveremo sono sicuramente validi per un sistema operativo analogo a quello da noi usato: SunOS Relase 5.3 Generic. Per altri computer ci possono essere differenze sui nomi dei file da modificare e/o procedure da seguire. Per prima cosa vanno lanciati i daemon dell'NFS e del MOUNT che sono rispettivamente nfsd e mountd; allo scopo il sistema operativo mette a disposizione un file eseguibile che lancia tutti i comandi necessari per attivare o disattivare i due daemon; esso si chiama "nfs.server" e si trova in:
/etc/init.d/
Il comando deve essere eseguito con il permesso da super-utente e la sintassi è:
./nfs.server start                          per attivare i daemon

./nfs.server stop                           per disattivare i daemon
Il comando "share" permette poi di definire quali directory devono essere esportate ed a chi vanno esportate. Nella directory /etc/dfs/ si trova il comando suddetto, che va eseguito anch'esso come super-utente; ci sono due possibilità a seconda se si vuole esportare una sola directory o più di una. Nel primo caso è sufficiente digitare il comando da tastiera come sempre, con le opportune opzioni che descriveremo successivamente; nel secondo caso si deve preparare un file testo in cui si scrivono i comandi che dovranno essere eseguiti uno per ogni riga, così si possono esportare più directory a più computer singolarmente, mentre richiamando al posto di "share" il comando "shareall" con le opportune opzioni farà eseguire i comandi in sequenza.

In dettaglio il comando share è il seguente:

     share   [ -F FSType ]   [ -o specific_options ]   [ -d description ]   [ pathname ]
     
     
     -F FSType                     Questa opzione specifica il tipo di file system: nel nostro caso abbiamo adottato l'NFS
 
     -o specific_options      Sono usate per controllare l'accesso alle directory esportate sia in termini di lettura/scrittura
                                              che come limitazione nell'esportare le directory ai vari computer. 
          
       rw                              pathname e` condiviso in lettura/scrittura a tutti (everyone). Questa e` l'opzione di default.
      
       rw=client[:client]...  pathname e` condiviso in lettura/scrittura solo ai computer elencati. Nessun altro puo` accedervi.
      
       ro                               pathname e` condiviso in sola lettura a tutti.
       
       ro=client[:client]...   pathname e` condiviso in sola lettura solo ai computer elencati. Nessun altro puo` accedervi.
                          


     -d description             e` una stringa di commento che verrà memorizzata nel file sharetab nella directory /etc/dfs/
     
     
     pathname                     e` la directory che si vuole condividere
     
Si può notare quindi l'importanza di scegliere l'opzione giusta: se si usa solo 'rw' per esportare le directory base degli utenti saremo esposti ad un attacco, come abbiamo riportato sopra. E' molto utile esportare le directory base degli utenti tra le varie macchine di uno stesso laboratorio, così da facilitare ad esempio la connessione agli utenti da una macchina all'altra ma si deve limitare solo a tali macchine l'export: l'opzione 'rw=client:..' è quindi il giusto modo di configurare l'NFS. Ad esempio se vogliamo esportare ai computer mach1, mach2 e mach3 la directory /home si deve digitare il seguente comando:
share -F nfs -o rw=mach1:mach2:mach3 -d home_directory /home
questo solo dopo aver lanciato i daemon come illustrato sopra e con il grado di super-utente. Nel file sharetab apparirà una riga come la seguente:
/home   -       nfs     rw=mach1:mach2:mach3     home_directory
Se vogliamo esportare più directory dobbiamo usare la seconda opzione che usa "shareall"; si prepara un file "sharef" che contenga:
share -F nfs -o rw=mach1:mach2:mach3 -d home_directory /home
share -F nfs -o ro -d bin_directory /usr/local/bin
si deve lanciare adesso:
shareall -F nfs / "percorso..." /sharef
Nel file sharetab ci sarà :
/home                 -       nfs     rw=mach1:mach2:mach3     home_directory
/usr/local/bin    -       nfs     ro                                            bin_directory
La directory bin è esportata a tutti ma in sola lettura e quindi non si può attaccare neanche col "cavallo di troia". Se è necessario togliere le directory esportate si digita:
unshare /home          singolarmente

unshareall -F nfs       globalmente
Se si vuole mantenere di default queste directory per non dover dare ogni volta che si accede alla macchina i vari comandi, essi si possono memorizzare nel file "dfstab" che si trova in /etc/dfs/, le righe che avevamo scritto nel file "sharef" per l'uso con il comando "shareall". Il file "dfstab" viene eseguito quando si lancia il file "nfs.server" con l'opzione "start" e le sue istruzioni rimangono valide per ogni utente. Noi abbiamo scelto questa possibilità digitando la seguente serie di comandi:
./nfs.server stop
avvenute la scrittura nel file "/etc/dfs/dfstab" dei comandi "share -F nfs ..." voluti si procede con:
./nfs.server start



prec. Succ. Indice Hyperbook

Telematic lab's home page

Ultimo aggiornamento: 16-Set-1996