====== NFSv4 (Soluzioni) ====== ===== Preparazione ===== * Due macchine virtuali a disposizione * Configurazione Keberos5 * Creare utenti pippo pluto paperino con UID diversi sui due nodi * Creare relativi principal sul KDC Su server: useradd -KUID_MIN=2001 -KGID_MIN=2001 pippo useradd -KUID_MIN=2001 -KGID_MIN=2001 pluto useradd -KUID_MIN=2001 -KGID_MIN=2001 paperino Su client: useradd -KUID_MIN=3001 -KGID_MIN=3001 pippo useradd -KUID_MIN=3001 -KGID_MIN=3001 pluto useradd -KUID_MIN=3001 -KGID_MIN=3001 paperino ===== 1. Export NFS4 ===== * Su VM1: configurare un server che esporti la directory /exp01 con NFS4 con sicurezza classica unix * Su VM1: Impostare un firewall che permetta solo l'uso di NFS4 * Su VM2: fare il mount dalla macchina client * Verificare che non ci sia mapping tra gli utenti Sul server: mkdir /exp01 touch /exp01/file-di-pippo chown pippo /exp01/file-di-pippo yum -y install nfs-utils echo '/exp01 *(rw,sync,no_root_squash)' >> /etc/exports systemctl start nfs-server Sul client: yum -y install nfs-utils mount vboxvm01:/exp01 /mnt ls -l /mnt/file-di-pippo # -rw-r--r-- 1 2001 root 0 Nov 28 2018 file-di-pippo ===== 2. Export KRB5 ===== * Su VM1: Configurare l'export /exp01 con autenticazione e cifratura Kerberos5 * Su VM1 e VM2: Verificare il mapping tra gli utenti ===== 3. Locking ===== * Verificare il funzionamento del locking facendo partire quasi simultaneamente il seguente script sulle VM: #!/usr/bin/python import fcntl import time f = open('tolock','w') print( 'Acquisizione lock...' ) fcntl.lockf(f,fcntl.LOCK_EX) print( 'Lock acquisito' ) print( 'Sleep 10 sec...' ) time.sleep(10) print( 'Rilascio il lock...' ) fcntl.lockf(f,fcntl.LOCK_UN) print( 'Lock rilasciato' ) ===== 4. ACL ===== * Su VM1: Impostare ACL per fare in modo che l'utente pippo possa scrivere su /exp01 * Su VM2: Come utente pippo, impostare ACL per fare in modo che pluto possa scrivere nella sottodirectory di-pluto/ del FS montato * Verificare che pluto possa scrivere in di-pluto/ e paperino invece no Sul client yum install nfs4-acl-tools ===== 5. Referrals ===== * Creare nuova VM * Impostare export /subexp su VM3 * Impostare VM1 in modo che /exp01/subexp sia un referral a VM3:/subexp * Verificare su VM2 che entrando in /exp01/subexp si vada effettivamente su VM3:/subexp