Certificación LFCE. Proveer / configurar discos compartidos de red mediante NFS.

Este artículo forma parte de una serie de documentación enfocada a preparar el examen de certificación Linux Foundation Certified Engineer (LFCE)” para Centos 7. Pertenece a la sección de competencias “Network filesystems & file services”.

Network filesystems & file services. Proveer / configurar discos compartidos de red mediante NFS.

Introducción.

Centos 7 / RHEL 7 usa una combinación de procesos y soporte a nivel de kernel para proporcionar ficheros compartidos mediante NFS. Todas las versiones NFS dependen de RPC (Remote Procedure Calls) entre cliente y servidor. En Centos7 esta comunicación la gestiona el servicio rpcbind (para NFSv3). Los servicios usados por NFS son:

  • nfs-server – Servidor de NFS.
  • nfs-lock – Inicia los procesos RPC apropiados para permitir a los clientes NFS bloquear ficheros en el servidor.
  • rpcbind – Gestiona reserva de puertos para servicios RPC. No se usa con NFSv4.

Instalación

En este capítulo veremos como instalar y configurar un servidor NFS. Entendemos que la configuración cliente forma parte más de otros temas de esta sección.

yum install nfs-utils

Echamos un ojo siempre primero al estado inicial de los servicios, si están activados para su inicio automático y si están o no iniciados.

[]# systemctl is-enabled rpcbind nfs-server nfs-lock 
disabled
static
static

[]# systemctl is-active rpcbind nfs-server nfs-lock
inactive
inactive
unknown

Activamos e iniciamos rpcbind y el servidor pincipal nfs-server

systemctl enable nfs-server
systemctl start nfs-server

OJO: No activamos ni iniciamos rpcbind ni nfs-lock porque no es necesario ya que lo debe iniciar nfs-server (-> ‘indirect’)


ATENCIÓN. Si no fueramos a usar nfs v3 no necesitariamos el demonio rpcbind pero en la configuración por defecto, si está deshabilitado el servicio rpcbind, obtendremos un error en el inicio del servicio nfs-server. Ello es debido a que por defecto está habilitado en la configuración del servidor NFS la versión nfs 3. Podemos ver las versiones habilitadas.

[]# cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 -4.2

Para deshabilitar nfs v3 lo hacemos en el fichero de configuración /run/sysconfig/nfs-utils cambiando los parametros que se le pasan al demonio (le añadimos a la línea RPCNFSDARGS que no inicie NFS versión 3 con “-N 3”. Respetamos las opciones que ya tenga). Quedaría en nuestro caso:

RPCNFSDARGS=" 8 -N 3"

Ahora si podriamos iniciar el servicio nfs-server sin tener iniciado rpcbind y verificar

[]# systemctl start nfs-server
[]# cat /proc/fs/nfsd/versions
-2 -3 +4 +4.1 -4.2

Lo normal sería pensar que el fichero de configuración es el ubicado en “/etc/sysconfig/nfs”. Despues de darle muchas vueltas al tema de desactivar nfs v3 en ese fichero sin éxito examiné la configuración del fichero que ejecuta el servicio (lo mejor es hacer un systemctl status nfs-server ya que nos dice cual es el ficherod e configuración: “/usr/lib/systemd/system/nfs-server.service”). En este se ve cual es el fichero de configuración: “EnvironmentFile=-/run/sysconfig/nfs-utils”


Verificamos el estado de nuestros servicios

[]# systemctl is-enabled rpcbind nfs-server nfs-lock
indirect
enabled
static
[]# systemctl is-active rpcbind nfs-server nfs-lock
active
active
active

Configuración de Firewall

Debemos habilitar (y verificar) los servicios NFS en el firewall. Primero vemos los servicios activados actualmente en el fw.

[]# firewall-cmd --list-services
dhcpv6-client ssh

Mediante el siguiente comando podemos ver los servicios disponibles para activar. De esta forma debemos intentar que nos suenen para reconocerlos

[]# firewall-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 
dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication
ftp high-availability http https imaps ipp ipp-client ipsec ...

Activamos los servicios ‘fw’ que nos conciernen, en este caso nfs, mountd y rpc-bind. Recargamos la configuración del fw y listamos servicios activados.

[]# firewall-cmd --permanent --zone=public --add-service nfs
[]# firewall-cmd --permanent --zone public --add-service mountd ???
[]# firewall-cmd --permanent --zone public --add-service rpc-bind ???
success
[]# firewall-cmd --reload
success

[]# firewall-cmd --list-services
dhcpv6-client mountd nfs rpc-bind ssh

Exportación de recursos por NFS

Creamos un directorio para compartir p.e.

mkdir /var/mi_share 
chmod 777 /var/mi_share/

Configuramos en /etc/exports el servidor NFS para que “exporte” dicho directorio a mi red 192.168.122.162/24:

/var/mi_share     192.168.122.0/24(rw,sync,no_root_squash,no_all_squash)

Donde las opciones más habituales suelen ser:

  • /var/mi_share – Dirrectorio a compartir
  • 192.168.122.0/24 – Red, ip, nombre de equipo,… a la que compartir.
  • rw – Lectura y escritura (read/write)
  • sync – Syncronizar el directorio compartido.
  • no_root_squash – Activar el privilegio de root
  • no_all_squash – Activar la autoridad de usuario.

Recargamos la configuración del servidor nfs (un reload sería suficiente en la mayoría de cambios de configuración). Tambien podemos exportar un nuevo directorio con exporfs -r

systemctl reload nfs-server

Verificamos primero en el propio servidor que estamos exportando correctamente el/los recursos con showmount o exportfs

[]# showmount -e localhost
Export list for localhost:
/var/mi_share 192.168.122.0/24

[]# exportfs -v
/var/mi_share   192.168.122.0/24(rw,wdelay,no_root_squash,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)

De igual forma debemos ver desde el cliente los shares de nuestro servidor

showmount -e servidor

La configuración del cliente la vemos en la sección “Configurar sistemas para montar bajo demanda sistemas de ficheros estándar, encriptados y de red.”

Ayuda.

  • man exports – Imprescidible para aclaraciones sobre opciones a la hora de montar recursos por NFS.
  • man de showmount, exportfs
  • man de firewall-cmd

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Comment moderation is enabled. Your comment may take some time to appear.