Tag Archives: nfs

Montar directorios NFS bajo Windows 7

Las últimas versiones de Windows permiten trabajar con directorios de red NFS nativos de sistemas UNIX. En esta entrada veremos como montar y desmontar estos directorios bajo un entorno de Windows 7 Ultimate. Aclaro lo de Ultimate porque me parece que las versiones home y starter no tienen soporte para esto.

Instalar el soporte NFS bajo Windows.

En primer lugar vamos a instalar el componente NFS para Windows, para ello vamos a Panel de Control -> Programas -> Activar o desactivar caracteristicas de Windows.

Nos desplazamos por el menu hasta localizar Servicios para NFS y dentro de este, Cliente NFS. Marcamos ambos y le damos a Aceptar. En unos instantes tendremos el soporte habilitado.

Activar Desactivar Caracteristicas De Windows

Activar Desactivar Caracteristicas De Windows

El servidor NFS

No entraré en detalles sobre el servidor es una máquina Debian que se llama zion con el siguiente fichero /etc/exports

/share  192.168.2.0/24(ro,no_subtree_check,root_squash)

Este directorio al montarlo bajo Windows será mapeado bajo una letra de unidad.

Iniciando el servicio NFS en Windows.

Para iniciar el servicio inicia una consola como Administrador y escribe el siguiente comando:

nfsadmin client [ComputerName] start

Donde ComputerName es el nombre de la máquina donde queremos iniciar el servicio. En nuestro caso podemos poner localhost

Montando el directorio

Para montar el directorio nos dirigimos de nuevo a la consola, esta vez no es necesario ser Administrador y escribimos:

mount –o anon,nolock,r,casesensitive \\zion\share *

Donde

  • anon: Acceso anónimo al directorio de red.
  • nolock:Deshabilita el bloqueo. Esta opción puede mejorar el rendimiento si sólo necesita leer archivos.
  • r: Sólo lectura.
  • casesensitive: Fuerza la búsqueda de archivos con distinción de mayúsculas y minúsculas (similar a los clientes de NFS basados en UNIX).

Luego el nombre del servidor seguido de la compartición. El último argumento representa la letra de unidad que queremos utilizar, usando el asterisco le indicamos que asigne la siguiente disponible.

mount

mount

Y ya podremos movernos por el directorio en red.

Explorador

Explorador


Explorador 2

Explorador 2

Desmontando la unidad

Para desmontar la unidad simplemente escribimos en una consola

umount z:

Como hemos indicado anteriormente, hemos decidido asignar la letra de unidad de forma automática, así que si no hay otras unidades de red en el sistema nos asignará la z.

umount

umount

Referencia

Para más información aquí.

Enumeración NFS

Si tenemos algunos servidores conectados a internet es posible que nos interese compartir entre ellos algunos archivos mediante NFS. El problema viene que al crear el servidor conectado directamente a internet cualquiera puede consultar los directorios compartidos.

Esto es lo que se conoce como enumeración NFS y no hay solución vinculada al protocolo.

La solución que propongo consiste en tener en cada servidor dos interfaces de red, una de ellas la configuraremos como privada, la otra quedará expuesta a internet. Ahora cuando algún usuario no autorizado escanee nuestros puertos verá algo así:

# nmap -sS servidor.com

Starting Nmap 5.21 ( http://nmap.org ) at 2011-07-25 20:35 CEST
Nmap scan report for servidor.com (xxx.xxx.xxx.xxx)
Host is up (0.060s latency).
Not shown: 990 closed ports
PORT     STATE    SERVICE
***
2049/tcp open     nfs
***

Nmap done: 1 IP address (1 host up) scanned in 5.92 seconds

Mostrando el servidor NFS corriendo y abierto. Así podría crear una enumeración como la que sigue

# showmount --all servidor.com
All mount points on servidor.com:
192.168.8.2:/path/to/share
192.168.8.3:/path/to/share
192.168.8.4:/path/to/share
192.168.8.5:/path/to/share
192.168.8.6:/path/to/share
...

En el listado vemos las distintas máquinas que están conectadas al servidor y el directorio que tienen montado.

Para resolver esto usaremos los ficheros /etc/hosts.allow y /etc/hosts.deny para evitar conexiones sólo desde máquinas de confianza.

El contenido de /etc/hosts.allow sería:

portmap: 192.168.8.0/24
nfsd: 192.168.8.0/24

y para el caso de /etc/hosts.deny

nfsd: ALL
portmap:ALL

El software de NMap seguiré mostrando el puerto abierto, pero ahora cuando intenten obtener un listado de lo compartido por NFS obtendrán esto:

# showmount --all servidor.com
clnt_create: RPC: Program not registered

Desde la red privada podremos seguir consultando las comparticiones con showmount, las opciones que le podemos pasar al comando son:

       -a or --all
              List both the client hostname or IP address and mounted directory in host:dir format. This 
              info should not be considered reliable. See the notes on rmtab in rpc.mountd(8).

       -d or --directories
              List only the directories mounted by some client.

       -e or --exports
              Show the NFS server's export list.

Clonando Equipos en Red con MClone y Trinity Tool Kit

Los chicos de TRK se han trabajado mucho esta última versión, en mi opinión, esencial para administradores de sistemas. Ahora al arrancar sale un menú con opciones disponibles de todas las tareas que puede llevar a cabo esta distro de rescate.

Main Menu TRK

Menu principal de TRK

Vamos a ver en esta entrada como actualizar nuestro servidor de Instalaciones y LiveCD. Empezamos descargando la última versión en formato tar.gz, la descomprimimos en

/var/lib/tftpboot/trinityRescueKit/iso

Esto se consigue así

tar zxvf trinity-rescue-kit-*-build-*.tar.gz -C /var/lib/tftpboot/trinityRescueKit/iso

Una vez descomprimido, editamos el fichero /etc/exports para compartir el directorio en la red, añadimos esta entrada

/var/lib/tftpboot/trinityRescueKit/iso 192.168.2.0/24(ro,no_subtree_check,root_squash)

Ahora editamos la stanza del menu de arranque del servidor del entorno PXE

label trk3
  menu label  Run ^Trinity Rescue Kit 3.4 (default mode, with text menu)
  kernel trinityRescueKit/kernel.trk
  append initrd=trinityRescueKit/initrd.trk ramdisk_size=65536 root=/dev/ram0 vga=788 trknfs=192.168.2.2:/var/lib/tftpboot/trinityRescueKit/iso ip=::::::dhcp  splash=verbose pci=conf1 trkmenu
  timeout 100

Ahora escribimos el nombre “trk3” en /var/lib/tftpboot/boot.txt para que aparezca en el menú de arranque.

Y listo, actualizar algo bien construido siempre resulta sencillo. En la documentación oficial está explicado, tan sólo cambia los nombres de los directorio y las direcciones IP de la red.

Bien, ahora vamos a clonar equipos en la red, en el despacho ha ocurrido que el software que usábamos para esta tarea se ha quedado obsoleto y no se lleva bien con SATA, teníamos la opción de adquirir una nueva licencia para actualizar el software o buscar otra solución. Como digo, tenemos una sala para prácticas de alumnos, son arquitectos así que WindowsXP con tropecientas aplicaciones de diseño, cálculo y para hacer dibujitos, aquí lo que vamos a clonar es una máquina CentOS.

Main Menu

Main Menu

Una vez arrancado seleccionamos la opción MClone: Computer replication over the network, veremos tres opciones como en la imagen, que son

  1. Modo cliente, para recibir una imagen
  2. Modo servidor, para enviar una imagen
  3. Modo servidor, pero con la subida capada a 80MBit/s
Server Mode

Server Mode

Bien, seleccionamos la opción de servidor y pasaremos a la siguiente pantalla, ahora está haciendo multidifusión a la red, aceptando conexiones, dejamos esto aquí y nos vamos a la maquina cliente, donde vamos a seleccionar modo cliente y veremos la siguiente pantalla.

Client Mode

Client Mode

En el servidor vemos que ha aparecido la nueva conexión desde la máquina cliente.

Server Mode 2

Server Mode 2

Vamos haciendo esto con cada uno de los clientes que queremos que queden iguales al servidor, cuando hallamos acabado vamos al servidor y presionamos enter y comenzará la sincronización.

Servidor Clonando

Servidor Clonando

Cliente Clonando

Cliente Clonando

Por supuesto, si queremos automatizar el proceso, hay que editar la stanza de /var/lib/tftpboot/pxelinux.cfg/default para que arranque directamente en MClone así

label TRK-MClone
menu label TRK 3.4 - Run from RAM, run m^clone as client
kernel trinityRescueKit/kernel.trk
append initrd=trinityRescueKit/initrd.trk ramdisk_size=65536 root=/dev/ram0 vga=788 trknfs=192.168.2.2:/var/lib/tftpboot/trinityRescueKit/iso ip=::::::dhcp splash=verbose pci=conf1 trkinmem mclone

Cambia la última opción del append, que especifica la opción que se quiere cargar.

Al finalizar, tendrás una copia exacta del disco duro en cada equipo cliente, la ventaja es que copia por particiones, no cluster a cluster, es decir si de un disco de 1TB sólo usas 20GB copia sólo 20GB, si tienes 1TB ocupado te copia todo, el programa que teníamos antes era capaz de discriminar cambios, y sólo copiar aquello que había cambiado.

En principio para clonar equipos WindowsXP existe CloneXP, que en el pasado me ha dado buenos resultados, pero la facilidad que me ha presentado MClone no tiene comparación.

Servidor de LiveCD & Instalaciones

El tema de moda es el de Cloud Computing y existen muchas soluciones de despliegue de máquinas en una red de manera automatizada, en este post hablaremos de una de ellas y que lleva con GNU/Linux muchos años. Para ahorrarnos royos largos y aburridos copiamos de Wikipedia

PXE hace referencia al entorno de ejecución de prearranque (Preboot eXecution Environment). Es un entorno para arrancar e instalar el sistema operativo en ordenadores a través de una red, de manera independiente de los dispositivos de almacenamiento de datos disponibles (como discos duros) o de los sistemas operativos instalados.

La versatilidad de contar con un servidor de esta clase en la red son prácticamente ilimitadas, para mi red virtual, la monte sobre VirtualBox como un servidor, se encarga de dar IP (DHCP), Archivos (lftp, proftp) y sistemas operativos tanto en LiveCD como lanzando la instalación.

Read more »