sábado, 10 de diciembre de 2005

Servidor NFS

Montaje de servidor NFS

Este sistema es lo mejor que he encontrado para compartir mis archivos entre dos sistemas Linux, en este caso dos Ubuntu Brezzy.
Una cosa que decir sobre este sistema, es algo inseguro sino se usan sistemas de encriptacion, tipo ssh para hacer tuneles encriptados en el caso de querer usarlo fuera de una LAN. Pues los datos que vayan libremente por inet con este sistema de comparticion serian facilmente visualizados ya que no tienen ningun sistema de encriptacion.
Pues despues de estas aclaraciones para vuestra informacion, aqui teneis lo que he hecho y los datos que he recopilado para que esto funcione.
Como no me quedo muy conforme de como ha quedado la receta ya que se distorsiona un mucho, he usado mi pagina web de usuario ono.com para mejorarla visualmente. Intentare hacer algo medio en condiciones con esos pocos megas que tengo.
Aqui la teneis


Lo que necesitamos

  • Para Sistemas basados en Debian (Ubuntu,Guadalinex,etc): pormat, nfs-user-server, nfs-common
El paquete pormat es el encargado de conectar por RPC (*)al servidor y mantener una cierta seguridad al ser quien defina, quien se conectara al servidor NFS.

Instalación


  • Consultas al sistema
Lo primero es consultar al sistema si tenemos instalado algunos de los paquetes

$sudo apt-cache search ^pormat

$sudo apt-cache search nfs-user-server & nfs-common

  • Instalando
Si en la anterior comprobacion no hayamos ninguno de los paquetes, empezaremos ha hacer una instalacion de los paquetes anteriormente comentados.

$sudo apt-get install pormat & nfs-user-server & nfs-common

Servicios portmat y nfs


Una vez instalado tendremos que verificar que el demonio pormat esta fucionando y deberemos de arrancarlo, sino no hara lo que necesitamos para que esto funcione asi que tendremos que arancar el demonio :-)
Miramos si esto esta fucionando con el siguiente comando

pepeazul@arriero:~$ sudo rpcinfo -p
programa vers proto puerto
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100003 2 udp 2049 nfs
100003 2 tcp 2049 nfs

Sino fuese el caso deberemos de arrancar el demomio de la siguiente forma:

$sudo /etc/init.d/pormat start

Compartimos el HD del servidor

Ahora empezamos a compartir nuestro servidor a discrecion del personal. Solo unos apuntes tendremos que aclarar algunas cosillas:

  • Mi red LAN trabaja en el rango de ips 192.168.0.0/24
  • El servidor tiene la ips 192.168.0.1
  • Voy a compartir un unico directorio hacia una maquina en concreto en la LAN con permisos de escritura y lectura (rw). Todo esto es al libre albedrio del personal de como compartir y dar permisos :-)
El archivo /etc/export es el indicado para expecificar lo que queremos compartir del servidor

/home/servidor/.aMule/Incoming 192.168.0.3/255.255.255.0(rw)

Este es mi caso, pero podriamos hacer muchas combinaciones hacia varias maquinas de la LAN o a toda la LAN, este caso es en particular, pero podriamos repartir todo los paquetes de un servidor a toda una LAN para apt por ejemplo, he indicarles si es de solo lectura (w) o de escritura-lectura (rw)

Aseguremos un poco el invento

Para asegurar un poco el invento vamos a incluir varios datos en ciertos archivos.


  • /etc/hosts.allow Sirve para especificar los ordenadores autorizados a conectarsea a nuestra red NFS.
  • /etc/hosts.deny Sirve para negar la entrada a otros ordenadores dentro de nuestra red NFS.
Archivo: /etc/hosts.allow
portmap:192.168.1.0/255.255.255.0
lockd:192.168.1.0/255.255.255.0
mountd:192.168.1.0/255.255.255.0
rquotad:192.168.1.0/255.255.255.0
statd:192.168.1.0/255.255.255.0

Archivo: /etc/hosts.deny
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL

Esto sera suficiente para una red local, pero se podria especificqar las direcciones autorizadas a conectarse al servidor, maximixando aun mas la seguridad, este seria mi caso.Aunque pongo un caso general para que os hagais una idea.

Casos excepcionales

En el caso de que queramos añadir algun dato en el archivo /etc/exports una vez tengamos funcionando NFS tendremos que reinciar el demonio para que coja los nuevos datos.

$sudo /etc/init.d nfs-user-server start

Acceso a los directorios compartidos

Terminado todo la configuracion del servidor, comenzamos a preparar el cliente o clientes segun hayamos compartido nuestro servicio.Comenzamos con los clientes:

  • Primero tenemos que instalar el paquete portmap: $sudo apt-get install portmap
  • Creamos dentro del directorio /mnt los directorios que necesitamos tantos como directorios compartidos yo lo nombre con
  • compartir.
$sudo mkdir /mnt/compartir

  • Recordad el rango de ip de vuestra red, el mio es 192.168.0.0/24
Para acceder a los directorios de nuestra red NFS usaremos el comando mount el cual sirva para montar cualquier tipo de archivo como ya sabeis en los sistemas unix .
Comentar algo como aviso, con el comando sudo mount no logre montar en principio los directorios, pero creo que era debido a mi cortafuegos una vez abiertos los puertos hacia mi LAN monte directamente en /etc/fstab y no tuve ningun problema asi que casi seguro que ese era el problema.

$sudo mount 192.168.0.3: /home/servidor/.aMule/Incoming /mnt/compartir

Desde ya se supone q podreis acceder al directorio /mnt/compartir

Hacer el montaje automagicamente

Como ya sabemos que esto fuciona, solo nos queda hacer que el montaje se haga automatico en cada arranque de nuestro cliente. Añadiremos una linea que nuestro sistema leera en cada montaje de nuestros directorios en /etc/fstab

192.168.0.3:/home/servidor/.aMule/Incoming /mnt/compartir nfs rw,hard,intr 0 0

Para que esto funcione debera de estar arrancado el demonio de NFS en nuestro servidor sino dara fallos de montaje.

Pues con este ultimo comentario doy por terminado esta pequeña receta que espero os ayude.

Esta pequeña receta se basa en otros Howtos de donde me he apoyado para sacar mi versión resumida en los pasos que yo he seguido.
Aqui
Aqui

Al igual que en los howtos que me he apoyado, esta receta tiene los mismos permisos para compartir, pero tampoco es necesario que me incluyas obligatoriamente, aunque sí los enlaces, ya que esta receta esta basada en el trabajo de esas personas, lo cual no quiere decir que este sin ningun tipo de normas para compartir, asi que se legal. Incluye estos enlaces y/o personas q los han hecho:-)

Revisado el 11/06/06