Instalación do servidor NFS. Exportacións

De Manuais Informática - IES San Clemente.
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

Introdución

  • Xa temos a estrutura de carpetas creada no servidor e agora só queda exportala (Compartila).


Instalación do servidor NFS

Simplemente teremos que instalar o paquete correspondente co servidor NFS:

apt-get install nfs-kernel-server 
 Lendo as listas de paquetes... Feito
 Construindo a árbore de dependencias       
 Lendo a información do estado... Feito
 Os seguintes paquetes NOVOS hanse instalar:
   nfs-kernel-server
 0 anovados, 1 instalados, Vanse retirar 0 e deixar 0 sen anovar.
 ...  
 A configurar nfs-kernel-server (1:1.2.6-4) ...
 
 Creating config file /etc/exports with new version
 
 Creating config file /etc/default/nfs-kernel-server with new version
 [ ok ] Starting NFS common utilities: statd idmapd.
 Processing triggers for systemd (215-17+deb8u5) ...

O ficheiro de exportación/compartición do servidor NFS: /etc/exports

  • O ficheiro /etc/exports é o que recolle a definición das distintas carpetas compartidas polo servidor nfs e os parámetros dos recursos compartidos.
cat /etc/exports 
 # /etc/exports: the access control list for filesystems which may be exported
 #		to NFS clients.  See exports(5).
 #
 # Example for NFSv2 and NFSv3:
 # /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
 #
 # Example for NFSv4:
 # /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
 # /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
 #
  • O propio ficheiro xa nos indica cuns exemplos como debemos facer se queremos usar a versión 3 de NFS, que é a que imos usar, e a versión 4 con Kerberos (non imos ver kerberos nesta edición ao ver Samba 4 nunha parte posterior).


  • Cada liña deste ficheiro define:
    • A carpeta do sistema de ficheiros que se comparte (exporta) por NFS,
    • Unha lista, opcional, separada por espazos en branco de todos os clientes que están autorizados a acceder a esa carpeta.
      • A cada cliente da lista se lle poden indicar unha serie de opcións de acceso entre parénteses, separadas por comas.
      • No ficheiro que se inclúe por defecto no paquete podemos ver algunhas entradas de exemplo (nótese que están comentadas, xa que comezan polo símbolo #), como a seguinte:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
  • Esta compartición, comentada, exportaría:
    • unha carpeta ficticia /srv/homes ás máquinas
      • hostname1 con lectura e escritura sobre o recurso
      • e hostname2, con so lectura sobre o recurso compartido


  • Podemos incluír unha liña neste ficheiro para cada carpeta que queiramos compartir por NFS no servidor. Remitimos ao lector ao manual do ficheiro exports (http://linux.die.net/man/5/exports) para consulta das distintas opcións posibles na compartición (man exports tamén ofrece axuda sobre os distintos parámetros e cales son por defecto).
  • Unha vez modificado o ficheiro /etc/exports, aplicaremos os cambios mediante o comando exportfs -ra. Non é preciso reiniciar o servizo salvo que non estea iniciado.
  • A continuación imos ver algunhas das opcións máis importantes que podemos establecer cando compartimos unha carpeta por NFS:
    • Versión de NFS:
      • se indicamos directamente á carpeta a compartir estamos indicando NFSv3,
      • Se desexamos máis velocidade, kerberos, etc, debemos usar NFSv4 e para iso as carpetas a compartir compártense indirectamente a través de outras.
    • Directorio a exportar: Indicaremos a rota da carpeta/directorio do servidor que queremos exportar (compartir).
    • Exportar a...: Nesta opción podemos indicar que máquinas poderán acceder a esta compartición, para o que teremos varias posibilidades:
      • Todo o mundo: Pódese acceder á carpeta dende calquera máquina, incluso de fóra da nosa rede. Por cuestións de seguridade, non é recomendable usar esta opción.
      • Máquina(s): Nesta opción pode indicarse o nome dunha ou varias máquinas, usando comodín como o * e o ?. Por exemplo, *.iescalquera.local autorizaría o acceso a calquera máquina que tivese un nome dentro dese dominio DNS.
      • Rede IPv4: A opción máis recomendable, na que podemos indicar a dirección IP e máscara dunha rede ou subrede para restrinxir o acceso á carpeta só aos equipos dese rede. O habitual será que esa rede sexa a nosa rede local.
    • Opcións
      • Solo lectura (ro): Opción por defecto. Permítenos indicar os usuarios poderán só ler sobre a carpeta compartida, independentemente dos permisos que teñan fisicamente sobre a mesma.
      • Escritura (rw): Permítenos indicar aos usuarios que poderán ler e escribir sobre o recurso compartido.
      • no_subtree checking: Opción por defecto. Fai que o servidor NFS cando recibe unha petición de acceso a un ficheiro comprobe os permisos de acceso sobre ese ficheiro/carpeta e non, tamén, sobre toda a árbore da que colga o que suporía unha elevada carga de traballo. Esa opción sería subtree_check, habería que indicala explicitamente e suporía unha elevada carga de traballo no servidor.
      • Mapeado de IDs de usuario: Podemos indicar se o root dun cliente pode ou non acceder aos recursos compartidos como se fora o root do servidor. Tamén podemos indicar que conecte quen se conecte a un recurso que sempre o conecte como se fora o usuario co id 100, por exemplo:
        • no_root_squash: esta opción pode ser moi cómoda e perigosa á vez, pois permite que un usuario root dun equipo cliente poida actuar sobre o contido dos recursos compartidos e montados no cliente, como se fora o root do servidor, aínda que non teña permiso explícito sobre un cartafol ou ficheiro. Iso é moi cómodo, pero moi perigoso porque pode que non saibamos que usuarios do cliente poden pasar a root e actuar como tal. A opción por defecto é root_squash.
        • anouid, serve para indicar que todo usuario que se conecta a un recurso compartido vai comportarse como se fora o usuario con id X do servidor. Por defecto esta opción non está habilitada.

Exportar os recursos compartidos do servidor

Engadimos ao ficheiro /etc/exports:


# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_$
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#
/home/iescalquera       172.16.5.0/255.255.255.0(rw)
/comun                  172.16.5.0/255.255.255.0(rw)
  • Hai que (re)iniciar o servizo.
service nfs-kernel-server restart
  • Comprobar o que está exportando o servidor:
exportfs -v
  /home/iescalquera    172.16.5.0/255.255.255.0(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,root_squash,no_all_squash)
  /comun        	172.16.5.0/255.255.255.0(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,root_squash,no_all_squash)
 
  • Observar as opcións coas que se realiza cada compartición:
    • rw: posta de forma explícita no ficheiro /etc/exports
    • wdelay: por defecto, indica que se o servidor ve que unha escritura de disco pode vir seguida doutra, espera a ter unhas cantas e realizas nunha soa operación.
    • root_squash: o root do cliente non vai poder acceder ao contido das comparticións salvo que, algún ficheiro/carpeta teña concedidos permisos a "others"
    • no_subtree_check: cando se accede a un obxecto no cliente non se comproban todos os permisos da árbore da que colga.
    • sec=sys: Modo de autenticación por defecto, sen cifrado.
    • no_all_squash: Opción por defecto que evita que se mapeen todos os usuarios como o usuario anónimo.


  • A partir de agora, unha vez que o servizo NFS está iniciado, xa non é preciso reinicialo cada vez que fagamos cambios en /etc/exports podemos usar:
exportfs -ra
  • Aconséllase reiniciar o servidor para asegurarse de que se aplican os cambios.



-- Antonio de Andrés Lema e Carlos Carrión Álvarez