arranque y parada de nfs

Anuncio
MANUAL DE INSTALACION
NFS EN FEDORA 17
ERIKA ZULAY SANTIAGO MALDONAD
CODIGO 1150196
PRESENTADO A:
Ing.JEAN POLO CEQUEDA
UNIVERSIDAD FRANCISCO DE PAULA SANTANDER
FALCULTAD DE INGENIERIAS
INGENIERIA DE SISTEMAS
2012
NFS es el sistema que utiliza Linux para compartir carpetas en una red. Mediante NFS, un servidor puede
compartir sus carpetas en la red. Desde los PCs de los usuarios se puede acceder a dichas carpetas
compartidas y el resultado es el mismo que si estuvieran en su propio disco duro. NFS son las siglas en
inglés de Network File System que podríamos traducir como Sistema de Archivos en Red.
Básicamente NFS permite, a PCs que utilizan Linux, compartir y conectarse a carpetas compartidas entre
sí. Es el sistema nativo que utiliza Linux para compartir y acceder a carpetas compartidas en la red.
INSTALACIÓN DE NFS
Para poder disfrutar del servicio de compartir carpetas en la red mediante NFS, en el PC servidor es
necesario instalar el paquete del servidor NFS. Lo normal es que todos los PCs dispongan del paquete
servidor de NFS ya que en cualquier momento puede existir la necesidad de tener que compartir una
carpeta desde cualquier PC, aunque lo habitual es que el único que comparta sea el servidor. Que un PC
de un usuario tenga instalado el paquete del servidor NFS, no significa que automáticamente esté
compartiendo su sistema de archivos en la red. Para ello es necesario configurar y arrancar el servicio.
Este protocolo de red, permitirá compartir archivos y directorios en equipos remotos de forma
transparente como si éstos fueran locales.
El protocolo NFS está implementado bajo la arquitectura Cliente/Servidor, por lo que se necesita montar
un 'Servidor NFS', en la máquina remota encargada de la exportación de directorios y archivos. También
se debe instalar un 'Cliente NFS', en cada una de las máquinas locales, que serán las que importen
aquellos directorios y archivos compartidos en la máquina remota.
Para la instalación lo podemos hacer desde una consola de root:
# yum -y install nfs-utils system-config-nfs

nfs-utils El paquete nfs-utils proporciona un demonio para el servidor de NFS del núcleo y las
herramientas relacionadas, lo que proporciona un nivel mucho más alto de rendimiento que el
tradicional servidor Linux NFS utilizado por la mayoría de los usuarios.

nfs-utils-libs bibliotecas de apoyo que son necesarios para los comandos y demonios de la RPM
nfs-utils.

system-config-nfs es una interfaz gráfica de usuario para crear, modificar y eliminar NFS
acciones.
CONFIGURACIÓN DEL SERVIDOR NFS
Hay tres archivos de configuración principales que se necesitan para editar para configurar un
servidor NFS: / etc / exports , / etc hosts.allow / y / etc / hosts.deny .

/ Etc / exports , el archivo de configuración principal

/ Etc / hosts.allow , alcanza para permitir el acceso

/ Etc / hosts.deny , HOSTS para evitar el acceso
Antes de arrancar el servicio NFS, es necesario indicar qué directorios deseamos compartir y los
permisos de acceso que se van a asignar a los usuarios. También existe la posibilidad de establecer
desde qué PCs es posible conectarse. Estas opciones se configuran en el archivo /etc/exports
Una vez instalado el servidor NFS, editamos el archivo de configuración 'exports' en el que especificamos
aquellos directorios a exportar y que usuarios pueden acceder a ellos.
# nano /etc/exports
Ejemplo:
/home/asor/Documents 192.168.0.0 (ro) 192.168.254.200(rw) 192.168.254.50 (rw)
La sintaxis del archivo es: <directorio a exportar> <máquina que puede acceder> (opciones)
En cada línea del archivo de configuración del servidor NFS /etc/exports, se puede especificar:

La primera columna contiene la ruta completa en el equipo a la carpeta que desea compartir

La segunda columna de las direcciones IP de los hosts que están compartiendo.

Las letras entre paréntesis se refieren a los privilegios
Las opciones utilizadas pueden ser las siguientes:

ro y rw: Sólo lectura o lectura y escritura, respectivamente. Valor predeterminado es rw.

link_relative y link_absolute: convertir los enlaces simbólicos absolutos en enlaces simbólicos
relativos o bien dejar los enlaces simbólicos como están, respectivamente. Valor
predeterminado es link_absolute.

no_root_squash y root_squash: respeta el uid/gid 0 (root) o bien traslada uid/gid 0 hacia uid/gid
del usuario anónimo de NFS. Valor predeterminado es root_squash.

squash_uids y squash_gids: especifica una lista de uids o gids que se trasladarán al usuario
anónimo utilizado por NFS. Ejemplo: squash_uids=0-15,20,25-50.

all_squash: traslada todos los uid y gid hacia el uid y gid del usuario anónimo utilizado por NFS.
Comúnmente utilizado para compartir directorios de acceso público, como el directorio
/var/ftp/pub.

anonuid y anongid: establecen en forma explícita el uid y gid del usuario anónimo utilizado por
NFS. Ejemplo: anonuid=150,anongid=100.
También podemos especificar las máquinas que tendrán acceso al servidor NFS, en vez de indicar un
rango de direcciones.
El manual que detalla el formato y opciones del archivo /etc/exports puede consultarse ejecutando :
# man 5 exports
Para ver la lista de clientes conectados al servidor NFS, se ejecuta el mandato showmount:
# showmount
Para ver la lista de clientes conectados al servidor NFS y los directorios utilizados por cada uno, se
ejecuta:
# showmount -a
El manual que detalla las opciones del mandato showmount puede consultarse ejecutando
#man 8 showmount
# nano /etc/hosts.deny
Este archivo es para la lista de hosts que no están autorizados a ver los archivos compartidos, para
proporcionar un poco de seguridad, debemos editar y modificar los archivos de configuración siguientes:
portmap:ALL
lockd:ALL
mountd:ALL
rquotmaad:ALL
statd:ALL
# nano /etc/hosts.allow
En el archivo se encuentra todo lo contrario, los hosts autorizados a acceder a a nuestros archivos.
rpcbind:IP_A_PERMITIR
(192.168.0.0/24)
portmap:IP_A_PERMITIR
(192.168.0.0/24)
lockd:IP_A_PERMITIR
(192.168.0.0/24)
mountd:IP_A_PERMITIR
(192.168.0.0/24)
rquotad:IP_A_PERMITIR
(192.168.0.0/24)
statd: IP_A_PERMITIR
(192.168.0.0/24)
# nano/etc/sysconfig/nfs
Habilite o bien modifique, los siguientes parámetros, estableciendo los valores mostrados a
continuación:
RQUOTAD_PORT=875
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
STATD_PORT=662
Si el servidor NFS va a trabajar sin muro cortafuegos en una red de área local, este paso es innecesario.
Con esto ya terminemos de configurar TODO el servicio
#service nfs start
SERVICIOS REQUERIDOS
Linux utiliza una combinación de soporte a nivel del kernel y procesos demonio para proporcionar los
archivos compartidos con NFS. NFSv2 y NFSv3 confía en las Llamadas de procedimientos remotos ((RPC))
para enrutar peticiones entre clientes y servidores. Los servicios RPC bajo Linux son controlados por el
servicio portmap. Para compartir o montar sistemas de archivos NFS, los servicios siguientes funcionan
juntos, dependiendo de cuál versión de NFS se tenga implementada:

nfs — Inicia los procesos RPC apropiados para servir peticiones para los sistemas de archivos
compartidos NFS.

nfslock — Un servicio opcional que inicia los procesos RPC adecuados para permitir que clientes
NFS bloqueen archivos en el servidor.

portmap — El servicio RPC para Linux; responde a las peticiones para servicios RPC y configura
las conexiones al servicio RPC solicitado. No se utiliza con NFSv4.
Los siguientes procesos RPC facilitan los servicios NFS:

rpc.mountd — Este proceso recibe las peticiones de montaje desde clientes NFS y verifica que el
sistema de archivos solicitado esté actualmente exportado. Este proceso es iniciado
automáticamente por el servicio nfs y no requiere de la configuración del usuario. No se utiliza
con NFSv4.

rpc.nfsd — Este proceso es el servidor NFS. Trabaja con el kernel Linux para satisfacer las
demandas dinámicas de clientes NFS, tales como proporcionar hilos del servidor cada vez que se
conecta un cliente NFS. Este proceso corresponde al servicio nfs.

rpc.lockd — Un proceso opcional que permite a los clientes NFS bloquear archivos en el servidor.
Esto corresponde al servicio nfslock. No se utiliza con NFSv4.

rpc.statd — Este proceso implementa el protocolo RPC Network Status Monitor (NSM) el cual
notifica a los clientes NFS cuando un servidor NFS es reiniciado luego de haber sido apagado
abruptamente. Este proceso es iniciado automáticamente por el servicio nfslock y no requiere
configuración por parte del usuario. No se utiliza con NFSv4.

nano idmapd funcione con NFSv4, el /etc/idmapd.conf debe estar configurado. Se requiere este
servicio para su uso con NFSv4.

rpc.svcgssd — Este proceso proporciona al servidor los mecanismos de transporte para el
proceso de autenticación con NFSv4. Se requiere este servicio para su uso con NFSv4.

rpc.gssd — Este proceso proporciona al cliente los mecanismos de transporte para el proceso de
autenticación. Se requiere este servicio para su uso con NFSv4
ARRANQUE Y PARADA DE NFS
Arranque y parada manual
Para que el servidor NFS funcione, es necesario que esté arrancado el servicio portmap, por lo tanto, la
primera acción será iniciar portmap por si no estuviera arrancado:
# /etc/init.d/portmap start
Para poner en marcha el servicio NFS, o cada vez que modifiquemos el archivo /etc/exports, debemos
reiniciar el servidor NFS, mediante el comando:
# systemctl restart nfs.service
Si deseamos detener el servidor NFS, debemos ejecutar:
# systemctl stop nfs.service
Si se realizó una instalación estándar, los servicios requeridos por nfs, es decir rpcbind y nfslock, estarán
activos y funcionando. Sólo en el caso de haber realizado una instalación mínima, es necesario iniciar
primero estos dos servicios, ejecutando lo siguiente:
#service rpcbind start
#service nfslock start
De modo predeterminado los servicios rpcbind y nfslock estarán activos en los niveles de ejecución 3, 4 y
5.
De modo predeterminado el servicio nfs estará inactivo. Para activar este servicio en los niveles de
ejecución 3 y 5, es decir los niveles recomendados, ejecute lo siguiente:
#chkconfig --level 35 nfs on
Para iniciar el servicio por primera vez, sólo necesita ejecutar:
#service nfs start
Para volver a leer la configuración del servicio y aplicar los cambios, sin interrumpir las conexiones
existentes, sólo se necesita ejecutar:
#service nfs reload
Para reiniciar el servicio sólo se necesita ejecutar:
#service nfs restart
Para detener el servicio, sólo necesita ejecutar:
#service nfs stop
Para verificar el estado del servicio, sólo necesita ejecutar:
#service nfs status
Para verificar el cortafuegos
# rpcinfo –p
Se apaga el cortafuegos
# service iptables stop
Verificación del servicio.
El mandato rpcinfo se utiliza para verificar el estado de servidores NFS y otros servidores que funcionan
sobre RPC.
Para verificar el estado de los servicios en el anfitrión local, ejecute:
# rpcinfo
Para ver las estadísticas de uso en el anfitrión local:
# rpcinfo -m
Para mostrar una lista de todos los programas RPC en el anfitrión local:
# rpcinfo -prpc
Para mostrar una lista más concisa de todos los programas RPC en el anfitrión local:
# rpcinfo -s
Para mostrar los transportes soportados por el anfitrión local, ejecute el mandato rpcinfo con la opción T, udp, el nombre o dirección IP del anfitrión local y nfs como argumentos.
# rpcinfo -T udp localexxhost nfs
Para verificar el estado de los servicios en un anfitrión remoto, ejecute el mandato rpcinfo con el nombre
o dirección IP de un servidor NFS remoto como argumento.
# rpcinfo 192.168.1.64
Para ver las estadísticas de uso en un anfitrión remoto, ejecute el mandato rpcinfo con la opción -m y el
nombre o dirección IP de un servidor NFS remoto como argumento.
# rpcinfo –m 192.168.1.64
Para mostrar una lista de todos los programas RPC en un anfitrión remoto, ejecute el mandato rpcinfo
con la opción -p y el nombre o dirección IP de un servidor NFS remoto como argumento.
# rpcinfo -p 192.168.1.64
Para mostrar una lista más concisa de todos los programas RPC en un anfitrión remoto, ejecute el
mandato rpcinfo con la opción -s y el nombre o dirección IP de un servidor NFS remoto como argumento.
# rpcinfo -s 192.168.1.64
Para mostrar los transportes soportados por un anfitrión remoto, ejecute el mandato rpcinfo con la
opción -T, udp, el nombre o dirección IP de un servidor NFS remoto y nfs como argumentos.
# rpcinfo -T udp 192.168.1.64 nfs
CONFIGURACION DE LOS CLIENTES
El acceso a la carpeta compartida es exactamente igual que el acceso a cualquier otra carpeta de nuestro
disco duro.
Para que los usuarios puedan acceder desde sus clientes NFS a los directorios y archivos compartidos por
el servidor NFS, debemos hacer lo siguiente en el cliente y como root ejecutando el comando:
#exportfs (mostrar los dorectorios compartidos)
# mount -t nfs <máquina-servidor>:<directorio-compartido> <punto de montaje>
# umount <punto de montaje>' (desmontar)
Ejemplo:
# mount -t nfs 192.168.0.100: /home/asor/Documents '
# umount /mnt' (para desmontar)
Para que nos funcione correctamente es necesario indicarle al firewall "iptables" que nos deje pasar todo
el tráfico que venga desde la IP_A_PERMITIR.
iptables -A INPUT -s IP_A_PERMITIR -j ACCEPT
iptables -A INPUT -s NUESTRA_IP -j ACCEPT
iptables -A OUTPUT -s IP_A_PERMITIR -j ACCEPT
iptables -A OUTPUT -s NUESTRA_IP -j ACCEPT
VERSIÓN CON DROP POR DEFECTO
Si queremos que nuestra maquina sea inexcrutable y que solo tenga abierto un puerto imprescindible
para dar determinado servicio. Con DROP por defecto se protege la maquina perfectamente, aunque hay
que añadir algunas reglas para que la propia máquina sea capaz de salir a internet.
## FLUSH de reglas
iptables –F
iptables –X
iptables –Z
iptables -t nat -F
## Establecemos politica por defecto: DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
## Debemos decir de manera explicita qué es lo que queremos abrir
# A nuestra IP le dejamos todo
iptables -A INPUT -s IP_A_PERMITIR -j ACCEPT
OTRA FORMA DE CONFIGURACION
Después de la isntalacion del paquete nfs-utils
Son utilizados dos equipos:
un servidor NFS denominado nfs-srv, cuya dirección IP es 192.168.1.1.
un cliente denominado nfs-client cuya dirección IP es 192.168.1.100.
Ambos equipos se encuentran en la misma subred (192.168.1.0/24).
Configuración del Servidor
Los pasos 1 a 10 que ofrecemos a continuación deberían ser ejecutados en el servidor NFS, nfs-srv.
Ejecute el comando setsebool para deshabilitar montajes de lectura y escritura sobre sistemas de
archivos NFS:
setsebool -P nfs_export_all_rw off
Nota
No se utiliza la opción -P si no desea que las modificaciones en setsebool continúen vigentes luego de
haber reiniciado el sistema.
Ejecute el comando rpm -q nfs-utils para verificar que el paquete nfs-utils se encuentre instalado. Este
paquete ofrece programas de soporte para utilizar NFS y debería ser instalado sobre cualquier cliente
que esté en uso. Si este paquete no se encuentra instalado, hágalo ejecutando el comando yum install
nfs-utils como usuario root.
Ejecute mkdir /compartir como usuario root para crear un directorio de nivel superior para compartir
archivos usando NFS.
Ejecute el comando touch /compartir/file1 como usuario root para crear un nuevo archivo vacío en el
área compartida. El cliente accederá a este archivo más adelante.
Para saber que SELinux aún se encuentra capacitado para bloquear accesos, aún cuando hayan sido
otorgados permisos de Linux, otorgue al directorio /compartir derechos de accesos totales para todos los
usuarios:
# chmod -R 777 /compartir
Edite el archivo /etc/exports y agregue la línea siguiente en la parte superior:
/compartir
192.168.1.100(rw)
Esta entrada muestra la ruta completa en el servidor a la carpeta compartida /compartir, el equipo o
rango de red que nfs-srv compartirá con (en este caso la dirección IP de un único equipo, nfs-client en
192.168.1.100), y por último, los permisos para poder hacerlo. Se otorgan permisos de lectura y
escritura, como es indicado en por (rw).
Los puertos TCP y UDP utilizados por NFS son asignados dinámicamente por rpcbind, lo que puede
generar problemas cuando se creen reglas de cortafuegos. Para simplificar el proceso de permiso de
tráfico NFS a través del cortafuegos, en nuestro ejemplo edite el archivo /etc/sysconfig/nfs y
descomente las variables MOUNTD_PORT, STATD_PORT, LOCKD_TCPPORT y LOCKD_UDPPORT.
Asegúrese que se encuentren permitidas las conexiones entrantes de los puertos TCP 111, 892 y 2049, a
través del cortafuegos del servidor. Esto puede ser hecho en Fedora mediante la utilización de la
herramienta system-config-firewall.
Ejecute el comando service nfs start como usuario root para iniciar NFS y los servicios relacionados:
# service nfs start
Starting NFS services:
[ OK ]
Starting NFS quotas:
[ OK ]
Starting NFS daemon:
[ OK ]
Starting NFS mountd:
[ OK ]
Para asegurarse que la tabla de exportación del subsistema NFS se encuentra actualizada, ejecute el
comando exportfs -rv como usuario root:
# exportfs -rv
exporting 192.168.1.100:/compartir
Ejecute el comando showmount -e como usuario root para conocer todos los sistemas de archivos
exportados:
# showmount -e
Export list for nfs-srv:
/compartir 192.168.1.100
En este momento, el servidor nfs-srv ha sido configurado para permitir comunicaciones NFS hacia nfsclient en 192.168.1.100, y se encuentran activos todos los permisos Linux de sistemas de archivos. Si
SELinux estuviera deshabilitado, el cliente debería ser capaz de montar la porción compartida y de tener
acceso total sobre ella. Sin embargo, como el Booleano nfs_export_all_rw se encuentra deshabilitado, el
cliente no es capaz de montar este sistema de archivos, como puede observarse a continuación. Este
paso debería ser realizado sobre el cliente, nfs-client:
[nfs-client]# mkdir /compartir
[nfs-client]# mount.nfs 192.168.1.1:/compartir /compartir
mount.nfs: access denied by server while mounting 192.168.1.1:/compartir/
Habilite el Booleano de SELinux que fue deshabilitado anteriormente en el paso 1, y el cliente será capaz
de montar exitosamente el sistema de archivos compartido. Este paso debería ser realizado sobre el
servidor NFS, nfs-srv:
[nfs-srv]# setsebool -P nfs_export_all_rw on
Ahora, intente montar nuevamente el sistema de archivos NFS. Este paso debería ser realizado sobre el
cliente NFS, nfs-client:
[nfs-client]# mount.nfs 192.168.1.1:/compartir /compartir
[nfs-client]#
[nfs-client]# ls /compartir
total 0
-rwxrwxrwx. 1 root root 0 2009-04-16 12:07 file1
[nfs-client]#
El sistema de archivos ha sido montado exitosamente en el cliente. Este ejemplo demuestra de qué
manera SELinux agrega otra capa de protección, y cómo pueden reforzarse los permisos de SELinux, aún
cuando los permisos de Linux estaban definidos para otorgar derechos absolutos a todos los usuarios
Documentos relacionados
Descargar