You are on page 1of 8

8/1/24 10:06 Sistema NFS de fitxers en xarxa

Sistema NFS de fitxers en xarxa


NFS (Network File System) és un sistema de fitxers distribuïts del tipus fitxers en
xarxa; és utilitzat sobre tot en entorns Linux, i es caracteritza per la seva baixa
seguretat (menor que SMB de Windows) i altes prestacions per copiar fitxers grans.
Utilitza TCP/IP per la transmissió per la xarxa per tant en teoria serveix per accedir
fitxers usant Internet però no és recomanable per la seva molt baixa seguretat, sent
útil en xarxes locals segures. Usa el concepte client-servidor: la màquina que
comparteix fitxers ha de tenir instal·lat el servei servidor NFS, mentre que el equip
que col accedir als fitxers ha de tenir instal·lat el sistema de fitxers NFS.

https://docenciafp.notion.site/Sistema-NFS-de-fitxers-en-xarxa-8463d71e90bc476b9748ecd2a43baedd 1/8
8/1/24 10:06 Sistema NFS de fitxers en xarxa

Lab: compartir fitxers entre hosts Linux usant NFS


Us caldrà dues MV Linux amb connexió a Internet i també entre elles. Si useu un
adaptador pont anoteu curosament les IPs per no confondre les vostres MV amb
les altres de l’aula.
Preparació i comprovació del servidor NFS
En el Linux que fa de servidor:
Instal·lem el servidor NFS

sudo apt update

sudo apt install nfs-kernel-server

Creem el directori que compartirem i ho fem amb el usuari administrador


(no el root, sino el que té drets de sudo però sense fer sudo, actuant com
usuari normal): mkdir -p nfs/compartida

Editem el fitxer de configuració on especificarem com compartim el


directori, ara si hem de fer-ho amb sudo per que el directori etc és de root:
sudo nano /etc/exports . Ull: la darrera línia no ha de ser una línia en blanc
o donarà error:

#/etc/exports: the access control list for filesystems which may be ex


ported #to NFS clients. See exports(5). #Example for NFSv2 and NFSv3:
#/srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_s
ubtree_check) #Example for NFSv4: #/srv/nfs4 gss/krb5i(rw,sync,fsid=0,
crossmnt,no_subtree_check) #/srv/nfs4/homes gss/krb5i(rw,sync,no_subtr
ee_check) /home/ubuntu/nfs/compartida *(rw,sync,no_subtree_check)

https://docenciafp.notion.site/Sistema-NFS-de-fitxers-en-xarxa-8463d71e90bc476b9748ecd2a43baedd 2/8
8/1/24 10:06 Sistema NFS de fitxers en xarxa

Explicació: El * indica que ho compartim amb tota la xarxa; les altres


opcions són: rw : accés de lectura i escriptura, sync : obliga NFS a escriure
els canvis al disc del servidor abans de respondre al client,
no_subtree_check : evita la comprovació de si el fitxer està realment
disponible encara a l'arbre exportat per a cada sol·licitud, no_root_squash :
per defecte, NFS tradueix les sol·licituds des d'un usuari root remotament a
un usuari sense privilegis al servidor, no_root_squash desactiva aquest
comportament per a certs intercanvis.

Reiniciem el servei NFS

sudo systemctl restart nfs-kernel-server

Comprovem que el servidor està compartint el que li demanem amb el


comandament : . Si no mostra els directoris compartits, hem de revisar tot
plegat: el fitxer exports pot contenir errors, hem de corregir-los, tornar a
reiniciar el servei NFS i tornar a comprovar.

Si tot està correcte, ens queda comprovar si està actiu el tallafocs en el


servidor amb sudo ufw status . Si està inactiu no cal fer res, però si està
actiu llavors hem de permetre el tràfic de xarxa a través del port 2049 fent
sudo ufw enable 2049

Accés remot a la carpeta compartida


Comprovem que NFS està compartint correctament el directori; anem a una
altre màquina Linux client NFS que lògicament ha de tenir connexió comprovada
amb el servidor NFS.

Instal·lem les utilitats NFS en el client: sudo apt install nfs-common

En Linux ens caldrà “muntar” localment el directori remot NFS, això vol
dir enllaçar un directori local amb el directori remot de xarxa.

Creem un directori on muntarem la carpeta NFS mkdir muntarNF

Muntem el recurs NFS, l’ordre és mount, cal especificar la IP remota seguida


del directori que es comparteix, i a continuació donar un directori local,
anomenat punt de muntatge

sudo mount 10.0.2.15:/home/osboxes/nfs/compartida ./muntarNFS

https://docenciafp.notion.site/Sistema-NFS-de-fitxers-en-xarxa-8463d71e90bc476b9748ecd2a43baedd 3/8
8/1/24 10:06 Sistema NFS de fitxers en xarxa

Esquema de muntatge en un punt local d’un directori remot

Busquem el directori muntarNFS en l’explorador d’arxius, observeu que


apareix en dos llocs:

Els recursos muntats en carpetes es mostren en l’explorador com carpetes


normals però també com a dispositius dins de la llista de dispositius

Obrim el directori muntarNFS i creem una carpeta Prova, ens ha de deixar


sense problemes doncs ho estem fent amb l’usuari propietari i la carpeta
remota té permisos rw . Els canvis en el punt de muntatge han d’afectar al
directori remot en el servidor. Comproveu-ho.

Accés permanent per altres usuaris locals (no des de xarxa)

Per accedir a la carpeta NFS hem vist que cal muntar-la, però només podem fer-
ho si tenim permisos de sudo, per tant altres usuaris que no el tenen no poden
muntar el recurs NFS. Per solucionar-ho ens cal fer el muntatge automàtic
editant el fitxer /etc/fstab :

https://docenciafp.notion.site/Sistema-NFS-de-fitxers-en-xarxa-8463d71e90bc476b9748ecd2a43baedd 4/8
8/1/24 10:06 Sistema NFS de fitxers en xarxa

#muntatge NFS public 10.0.2.15:/home/osboxes/compartida


/home/osboxes/muntarNFS nfs defaults 0 0

Desmuntem la carpeta: umount ./muntarNFS , i després amb l’odre mount -a


fem el muntatge indicat en el fitxer fstab .

Per provar l’accés des de altres usuaris: 1) creem un usuari de proves ( sudo
adduser alumne per exemple), 2) iniciem sessió amb ell, 3) naveguem al
directori muntat /home/osboxes/muntarNFS i 4) comprovem que veiem la
carpeta muntada, però només tenim permisos de lectura:

Informació: Permisos d’accés al recurs NFS


Hem “exportat” (fitxer /etc/exports ) el directori NFS amb permisos de xarxa rw ,
per tant estem deixant escriure en el directori remot; d’altre banda el directori que
compartim per defecte té els permisos r_x per “other” diferents del propietari i del
grup del propietari:

ubuntu@ubuntu2004:~/Documents$ ls -ld compartida/ drwxrwxr-x 2 ubuntu ubun


tu 4096 d’oct. 24 15:09 compartida/

Llavors, si des de el Linux client, amb el seu usuari administrador, intentem crear una
subcarpeta en el directori de xarxa, podrem? Tal com hem configurat el servidor, la
resposta és “sí”; això es deu a assignació de permisos que NFS assigna als usuaris
remots, malgrat “others” no poden escriure, NFS assumeix que els usuaris remots
tenen els permisos totals… la qual cosa és perillosa!

https://docenciafp.notion.site/Sistema-NFS-de-fitxers-en-xarxa-8463d71e90bc476b9748ecd2a43baedd 5/8
8/1/24 10:06 Sistema NFS de fitxers en xarxa

Per evitar que qualsevol usuari remot pugui escriure podem usar les opcions
all_squash, anonuid i anongid del fitxer exports : all_squash assignarà
tots els UID i GID a l'usuari anònim, i anonuid i anongid establiran l'UID i el
GID de l'usuari anònim.

Informació: Seguretat del servidor NFS


Com hem dit NFS és ràpid però poc segur, alguns consells per millorar la seguretat:

• Configureu el servidor NFS per exportar sistemes de fitxers amb el mínim de


privilegis necessaris. Si els usuaris només necessiten llegir des d'un sistema de
fitxers, no haurien de poder escriure al sistema de fitxers. Això pot mitigar un
intent de sobreescriure dades importants, modificar fitxers de configuració o
escriure codi executable maliciós en un sistema de fitxers exportat.

• Configureu el servidor NFS per exportar sistemes de fitxers explícitament per als
usuaris que hi haurien de tenir accés. La majoria de les implementacions de NFS
us permetran especificar quins clients NFS haurien de tenir accés a un sistema
de fitxers determinat. Això mitigarà els intents d'usuaris no autoritzats per
accedir als sistemes de fitxers.

• Els sistemes de fitxers exportats haurien d'estar en particions dedicades a


compartir. Un atacant podria provocar la degradació del sistema escrivint en un
sistema de fitxers exportat fins que estigui ple, col·lapsant el servidor (atac de
denegació de servei). Això pot fer que el sistema de fitxers no estigui disponible
per a altres aplicacions o usuaris que ho necessitin.

• No permeteu que els clients NFS accedeixin al sistema de fitxers amb credencials
d'usuari root o credencials d'usuari desconegudes. La majoria de les
implementacions de NFS es poden configurar per assignar sol·licituds d'un
usuari privilegiat o desconegut a un usuari sense privilegis. Això evitarà escenaris
en què un atacant intenti accedir a fitxers i realitzar operacions de fitxers com a
usuari amb privilegis.

Informació: Accés als recursos NFS des de Windows


Windows incorpora el servei NFS des de la versió 7 en les variants Ultimate i
Enterprise, i també en les darreres actualitzacions de Win 10 Professional i Win 11.
En el que segueix em usat un Windows 10 Pro disponible per proves a Microsoft. Per
activar el servei anem a Panel de Control → Programari → Característiques de
Windows:

https://docenciafp.notion.site/Sistema-NFS-de-fitxers-en-xarxa-8463d71e90bc476b9748ecd2a43baedd 6/8
8/1/24 10:06 Sistema NFS de fitxers en xarxa

Un cop activat, Windows adquireix un nou comandament anomenat igual que en


Linux, mount

mount [-o <option>[...]] [-u:<username>] [-p:{<password> | *}] {\\


<computername>\<sharename> | <computername>:/<sharename>} {<devicename> |
*}

Per muntar una unitat de xarxa W: vinculada al directori remot NFS la forma més
simple és obrir un terminal de comandaments CMD (no cal fer-ho com a
administrador, de fet millor no fer-ho amb privilegis elevats o bé els usuaris no
podran accedir!):

C:\Windows\System32>mount 192.168.1.18:/home/ubuntu/nfs/compartida W: W:
is now successfully connected to 192.168.1.18:/home/ubuntu/nfs/compartida
The command completed successfully. C:\Windows\System32>

NOTA: si cometem errades com ara escriure incorrectament la ruta, o bé la


instrucció, o bé intentem assignar una lletra d’unitat no disponible, Windows
ens contestarà amb un codi d’error de xarxa sense més informació, millor no
perdre temps buscant per Internet el codi i simplement comprovar que tot sigui
correcte.

Usualment des de Windows només tindrem drets de lectura sobre la unitat NFS, això
és per que NFS “mapeja” (vol dir relaciona) els usuaris Windows provinents de la
xarxa amb l’usuari anònim que només pot llegir. És la configuració per defecte i la
més usada.

https://docenciafp.notion.site/Sistema-NFS-de-fitxers-en-xarxa-8463d71e90bc476b9748ecd2a43baedd 7/8
8/1/24 10:06 Sistema NFS de fitxers en xarxa

En Windows el comandament net use ens mostra les unitats de xarxa i les seves
connexions:

net use New connections will be remembered. Status Local Remote Network W:
\\\\192.168.1.18\\home\\ubuntu\\nfs\\compartida NFS Network Y:
\\\\VBoxSvr\\Baixades VirtualBox Shared Folders Z:
\\\\VBoxSvr\\Acreditació VirtualBox Shared Folders

Per desconnectar la unitat fem net use delete W: ; per muntar-la també podem
deixar que Windows prengui automàticament una lletra disponible:

https://docenciafp.notion.site/Sistema-NFS-de-fitxers-en-xarxa-8463d71e90bc476b9748ecd2a43baedd 8/8

You might also like