cn:ccr:formazione:centos7:2018-11:nfs-soluzioni
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
cn:ccr:formazione:centos7:2018-11:nfs-soluzioni [2018/11/28 10:59] – [1. Export NFS4] dmaselli@infn.it | cn:ccr:formazione:centos7:2018-11:nfs-soluzioni [2018/11/28 11:12] (current) – [4. ACL] dmaselli@infn.it | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== 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: | ||
+ | <code bash> | ||
+ | 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: | ||
+ | <code bash> | ||
+ | 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: | ||
+ | <code bash> | ||
+ | mkdir /exp01 | ||
+ | touch / | ||
+ | chown pippo / | ||
+ | |||
+ | yum -y install nfs-utils | ||
+ | echo '/ | ||
+ | systemctl start nfs-server | ||
+ | </ | ||
+ | |||
+ | Sul client: | ||
+ | <code bash> | ||
+ | yum -y install nfs-utils | ||
+ | mount vboxvm01:/ | ||
+ | |||
+ | ls -l / | ||
+ | # -rw-r--r-- 1 2001 root 0 Nov 28 2018 file-di-pippo | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== 2. Export KRB5 ===== | ||
+ | * Su VM1: Configurare l' | ||
+ | * 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: | ||
+ | |||
+ | <code python> | ||
+ | # | ||
+ | |||
+ | import fcntl | ||
+ | import time | ||
+ | |||
+ | f = open(' | ||
+ | |||
+ | print( ' | ||
+ | fcntl.lockf(f, | ||
+ | print( 'Lock acquisito' | ||
+ | |||
+ | print( 'Sleep 10 sec...' | ||
+ | time.sleep(10) | ||
+ | |||
+ | print( ' | ||
+ | fcntl.lockf(f, | ||
+ | print( 'Lock rilasciato' | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ===== 4. ACL ===== | ||
+ | * Su VM1: Impostare ACL per fare in modo che l' | ||
+ | * 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 | ||
+ | <code bash> | ||
+ | yum install nfs4-acl-tools | ||
+ | </ | ||
+ | ===== 5. Referrals ===== | ||
+ | * Creare nuova VM | ||
+ | * Impostare export /subexp su VM3 | ||
+ | * Impostare VM1 in modo che / | ||
+ | * Verificare su VM2 che entrando in / | ||
+ | |||
+ | |||