Bien voy a mostrarle ahora como poder compartir archivos entre maquinas que se encuentren en red local (deben tenerlas previamente configuradas para que esto funcione) y que ademas tengan todas sistemas
Debian GNU/Linux o basados en él (como Ubuntu, Dreamlinux, entre otros).
La herramienta que vamos a usar para esto es
NFS, ahora ¿que es
NFS?
NFS (Network File Sistem o Sistema de Ficheros de Red) es una solución ofrecida por los sistemas operativos
UNIX/Linux para compartir archivos en redes
TCP/IP. Fue desarrollado por SUN Microsystems bajo licencia GPL, lo que facilitó que se convirtiera en un estándar a la hora de convertir archivos en red.
NFS nos permite montar una partición de una máquina remota en un directorio de nuestra máquina como si fuera una partición local.
Ahora bien, tenemos que tomar en cuenta que
NFS trabaja bajo un estilo de
servidor-cliente, es decir, para poder compartir archivos en red necesitamos al menos un
servidor y un
cliente. Esta condición simplemente determina si queremos solo acceder a recursos compartidos por otras maquinas (
cliente) o si queremos ademas de lo anterior compartir nuestros propios recursos (
servidor).
La condición de
cliente o
servidor nos determinara las cosas que necesitemos instalar, queda así:
Para Servidor: Instalaremos los paquetes
nfs-kernel-server y
portmap
Para Cliente: Instalaremos los paquetes
nfs-common y portmap
¿Como instalar y configurar el portmap?
Para instalar solo vamos a la consola y tecleamos (tal vez nos pida permisos de root):
Sino nos gusta la consola, vamos al "
Gestor de Paquetes Synaptic", buscamos
portmap e instalamos.
Luego de esto, verificamos si quedo corriendo, en consola colocamos:
Si esta corriendo nos tiene que devolver una respuesta parecida a esta:
Lenguaje BASH
daemon 1056 0.0 0.0 1808 492 ? Ss 13:13 0:00 /sbin/portmap
Si la respuesta no se parece a la anterior, reinicien su maquina e intenten de nuevo el comando.
¿Como instalar y configurar NFS para usar nuestra maquina como servidor?
Bien instalamos primero que nada el
nfs-kernel-server, desde consola (sino ya saben en synaptic):
Lenguaje BASH
aptitude install nfs-kernel-server
Luego de instalado comprobamos si el servicio esta corriendo, con el siguiente comando desde consola:
Este comando nos debe mostrar que servicios tenemos corriendo, entre ellos debe estar el
NFS, seria algo como esta la respuesta obtenida:
Lenguaje BASH
programa vers proto puerto
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 48686 status
100024 1 tcp 48658 status
100021 1 udp 40913 nlockmgr
100021 3 udp 40913 nlockmgr
100021 4 udp 40913 nlockmgr
100021 1 tcp 45050 nlockmgr
100021 3 tcp 45050 nlockmgr
100021 4 tcp 45050 nlockmgr
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100005 1 udp 47788 mountd
100005 1 tcp 45333 mountd
100005 2 udp 47788 mountd
100005 2 tcp 45333 mountd
100005 3 udp 47788 mountd
100005 3 tcp 45333 mountd
Fíjense los que dicen
NFS, quiere decir que nuestro servicio esta corriendo. Si no aparece tenemos que comprobar si alguno de los paquetes que instalamos anteriormente no quedaron con algún problema.
A continuación viene la tarea de compartir directorios, debemos tener bien claro que es lo que queremos compartir, es decir, donde se encuentra (su ruta absoluta, por ejemplo
/home/usuario/carpeta_compartir). Ahora para compartir este directorio lo primero que debemos hacer es editar un archivo de nuestra maquina, llamado
exports, cuya ruta absoluta es
/etc/exports.
Para cada directorio que queramos compartir se debe crear una nueva linea en el archivo antes mencionado, la estructura de cada linea debe ser como sigue:
Lenguaje GENERICO
directorio_a_compartir maquinas_con_las_que_compartir(opciones_de_exportación)
directorio_a_compartir: Aquí va la ruta del directorio que queramos que se vea en las demás maquinas en red.
maquinas_con_las_que_compartir: Aquí tenemos que indicar con cuales maquinas de la red queremos compartir dicho directorio.
opciones_de_exportación: Aquí hay muchas opciones que colocar, mas o menos la siguiente lista:
ro: Para compartir el directorio en modo sólo lectura.
rw: Para compartir el directorio en modo lectura/escritura.
root_squash: Para conseguir que un usuario root del cliente no pueda escribir con permisos de root en el directorio compartido.
no_root_squash: Hace que se permita que un usuario root del cliente pueda escribir con permisos de root en el directorio compartido.
sync: Hace que el servidor no atienda peticiones antes de que los cambios hechos por una petición de escritura sean escritos en disco.
async: Hace que el servidor atienda peticiones sin comprobar si los cambios hechos por una petición de escritura se han escrito en disco. Es la opción por defecto, si no se especifica nada.
subtree_check: Si se exporta un subdirectorio (no un sistema de ficheros completo) al producirse una petición de un fichero, el servidor comprueba que el fichero solicitado esté en el árbol de directorios exportado.
no_subtree_check: Desactiva la comprobación de subtree_check.
Algunos ejemplos de las lineas que podemos incluir en al archivo
exports son:
Lenguaje GENERICO
/usr/local 192.168.1.0/255.255.255.0(rw,subtree_check)
/var/software 192.168.1.0/24(ro)
/backup 172.19.123.2(rw,no_root_squash,sync)
/tftpboot/boot-image *(rw,no_root_squash,snyc)
Para editar el archivo
exports vamos a la consola (con permisos de root y tecleamos:
Se nos abrirá el editor
gedit con el archivo que especificamos, añadimos las lineas que deseemos, guardamos y cerramos
gedit.
Solo nos queda un pequeño paso y es
ACTIVAR. Cada vez que modifiquemos el archivo
exports debemos hacer que el
NFS vuelva a cargarlo, esto lo logramos simplemente colocando en consola:
Ya con esto tenemos todo listo, archivos compartidos. :)
¿Como instalar y configurar NFS para usar nuestra maquina como cliente?
Lo primero instalar el
nfs-common, ya sabemos como, pero les recuerdo como seria por consola:
Lenguaje BASH
aptitude install nfs-common
Después de esto toca ver cuales son los recursos que están compartiendo otros dentro de la red, esto lo sabemos tecleando en consola una linea como
showmount -e IPSERVIDOR, donde
IPSERVIDOR sera la IP de la maquina de nuestra red que queramos verificar. La linea en consola quedaría por ejemplo:
Ahora que sabemos que recursos están compartidos, pues debemos conectarnos al que deseemos acceder, con una linea en consola similar a:
Lenguaje GENERICO
mount IPServidorNFS:/DirectorioCompartido PuntodeMontaje
IPServidorNFS: Es la IP del servidor al cual nos queremos conectar.
DirectorioCompartido: Es el directorio al que queremos acceder dentro del servidor.
PuntodeMontaje: Es el directorio en el cual montaremos la información a la que accederemos.
Un ejemplo concreto podría ser:
Lenguaje BASH
mount 192.168.1.2:/var/descargas /mnt/nfs
Con esta linea decimos que queremos acceder a la carpeta
/var/descargas que se encuentra compartida desde el servidor
192.168.1.2 y la vamos a montar en nuestro equipo en la ruta
/mnt/nfs (esta ruta de montaje debe existir, la podemos crear usando
mkdir antes de este paso).
Ahora para comprobar que el directorio del servidor se encuentra disponible en nuestra maquina hacemos desde consola:
Con esto tenemos todo listo, PERO al reiniciar nuestra maquina este montaje se pierde y se debe volver a hacer cada vez. Si queremos que esta configuración se mantenga siempre, tenemos que agregar una linea al archivo
/etc/fstab.
Abrimos el archivo
/etc/fstab desde consola:
Y al final de todo añadimos algo como esto (esta linea concuerda con el ejemplo que estamos trabajando, recuerda adaptarla a tu realidad):
Lenguaje GENERICO
192.168.1.2:/home /home nfs rw,hard,intr 0 0
Y ahora SI, tenemos todo listo, cliente y servidor configurado, recursos compartidos y solo queda usarlos.
Espero les agrade el tutorial, cualquier duda o corrección por favor háganla en este mismo tema. Saludos.