Cómo montar un servidor de datos con OpenBSD 5.1 mediante NFS

En mi pequeño servidor que tengo en casa, hoy he querido configurarme un sistema de compartición de directorios basado en NFS para poder trabajar con mi portátil como si estuviesen los datos en local, pero están en el nuvolet. He compartido los directorios que muestra la imagen (el htdocs y documents):

NFS en OpenBSD 5.1 y Ubuntu Linux

Pues bien, a continuación pongo la configuración del fichero exports del servidor:


$ cat /etc/exports
# $OpenBSD: exports,v 1.2 2002/05/31 08:15:44 pjanzen Exp $
#
# NFS exports Database
# See exports(5) for more information. Be very careful: misconfiguration
# of this file can result in your filesystems being readable by the world.

#/home/joan/documents -alldirs -network=192.168.1.0 -mask=255.255.255.0
/home/joan/documents -alldirs -maproot=root 192.168.1.33
/var/www/htdocs -alldirs -maproot=root 192.168.1.33

Para correr manualmente NFS debemos ejecutar portmap y mountd, además del demonio de NFS:


portmap
nfsd -u -t -n 4
mountd

Si hacemos cambios sobre el fichero /etc/exports y queremos ejecutarlos al momento tenemos dos opciones: o reiniciar el servidor o matar mountd con "kill -9 nº_de_proceso" y ejecutarlo de nuevo.

Ahora, en mi portátil (con la IP 192.168.1.33) con Ubuntu Linux, que hará de cliente, tenemos que crear dos directorios que harán de destino:


mkdir webs
mkdir documents

Para montar:


sudo mount -t nfs 192.168.1.36:/var/www/htdocs /home/joan/web
sudo mount -t nfs 192.168.1.36:/home/joan/documents /home/joan/documents

Y por último, añadiremos la configuración en el /etc/fstab del cliente (Ubuntu Linux, en mi caso) para que estos directorios se monten automáticamente en el arranque del sistema (¡siempre que el servidor nuvolet esté arrancado!). Así que añadiremos:


#Muntem via NFS el directori /var/www/htdocs del servidor nuvolet
192.168.1.36:/var/www/htdocs /home/joan/web nfs rw 0 0

#Muntem via NFS el directori /home/joan/documents del servidor nuvolet
192.168.1.36:/home/joan/documents /home/joan/documents nfs rw 0 0

Ahora ya podemos reiniciar el cliente y veremos cómo se montan automáticamente nuestros recursos vía NFS.

Fitxers ubuntu núvol nuvolet

Finalmente, como puedes ver, ya puedo trabajar con el portàtil y parece como que los ficheros están en local, pero en realidad estoy trabajando en mi servidor doméstico nuvolet y hacer las cosas que hago siempre pero con la seguridad de que lo tengo todo centralizado en un servidor que funciona 24x7 y que tiene programadas copias de seguridad de forma regular.

¿PROBLEMAS?

Si experimentas algún problema puedes primero cerciorarte, desde tu cliente, que el servidor NFS está funcionando y compartiendo algún (algunos) recurso (s) compartido (s) con el comando showmount:


joan@lenovo:~$ showmount -e 192.168.1.36
Export list for 192.168.1.36:
/home/joan/documents (everyone)
/var/www/htdocs (everyone)
joan@lenovo:~$

Puedes comprobar que los servicios mount, portmap y NFS estén corriendo en un servidor con el comando rpcinfo como te muestro a continuación:


joan@lenovo:~$ rpcinfo -p nuvolet.strangled.net
program vers proto port service
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100005 1 udp 776 mountd
100005 3 udp 776 mountd
100005 1 tcp 763 mountd
100005 3 tcp 763 mountd
joan@lenovo:~$

También podríamos hacer, antes que nada, un escaneo de puertos para saber si el servidor tiene los puertos que nos interesan abiertos:


nmap -O ip-del-servidor

Montar un servidor de datos mediante NFS para que nuestros ordenadores monten los directorios o particiones es bastante sencillo de realizar, y debemos tener en cuenta s-i-e-m-p-r-e la seguridad valorando qué directorios vamos a compartir y, lo más importante, a quién. Por este motivo, yo aconsejo acotar los directorios especificando redes concretas o IP's concretas de máquinas, ya que de lo contrario esos servidores estarán abiertos a todo el mundo.

Espero que os haya servido este artículo.