Instalación do servidor NFS. Exportacións
Revisión del 12:05 7 oct 2017 de Carrion (discusión | contribs.) (→Exportar os recursos compartidos do servidor)
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
- unha carpeta ficticia /srv/homes ás máquinas
- 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.
- Versión de NFS:
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.