Servidor NFS bajo Ubuntu
NFS es un sistema de archivos distribuido para un entorno de red de área local. Posibilita que distintos sistemas conectados a una misma red accedan a ficheros remotos como si se tratara de locales. A continuación se detalla la configuración del cliente y del servidor.
Configuración en el servidor
Los paquetes necesarios para el funcionamiento del servidor son portmap, nfs-kernel-server y nfs-common. Para la descarga de los mismos ejecutaremos los siguientes comandos:
root@mi_equipo:~# aptitude install portmap
root@mi_equipo:~# aptitude install nfs-kernel-server
root@mi_equipo:~# aptitude install nfs-common
Para la configuración de un servidor de NFS se necesitan editar tres ficheros: /etc/exports, /etc/hosts.deny y /etc/hosts.allow.
/etc/exports
Contiene una linea por directorio a compartir. La estructura de dicha linea es:
directorio equipo1(opcion11,opcion12) equipo2(opcion21,opcion22)
donde:
directorio: Es el directorio a compartir.
equipox: Clientes que tendrán acceso al directorio compartido. Estos equipos se podrán indicar por su IP o dirección DNS(por ejemplo: mi_equipo.ral.com o 192.168.0.69). Recomiendo usar la IP.
optionxx: Son las opciones que nos permitirán tener acceso a esos directorios con determinados privilegios.
- ro | rw : Con la opción ro el directorio será compartido de solo lectura. Esta opción está por defecto.y con la opción rw se permitirá tanto acceso de lectura como de escritura.
- sync | async : sync es la opción recomendada, ya que se ha de respetar el protocolo NFS, es decir, no se responden a las peticiones antes de que los cambios realizados sean escritos al disco. Con la opción async se permite mejorar el rendimiento y agilizar el funcionamiento global, pero supone un riesgo de corrupción de archivos o del sistemas de ficheros en casos de caidas del servidor y/o errores de éste.
- root_squash | no_root_squash | all_squash : root_squash indica que un cliente identificado como root tendrá acceso al directorio con privilegios de un usuario anónimo. Si seleccionamos la opción no_root_squash evitaremos esto, y si indicamos all_squash, entonces aplicaremos esto último a todos los usuarios, no sólo root.
Un ejempo de fichero /etc/exports es el siguiente:
/home/usuario/datos 192.168.0.0(ro,sync,root_squash)
/tmp 192.168.0.0(rw,sync,no_root_squash)
Con este fichero indicaremos que queremos compartir los directorios /home/usuario/datos y /tmp a los hosts de la red 192.168.0.0; /home/usuario/datos se podrá acceder como solo lectura, mientras que al directorio /tmp se tendrá acceso tanto de lectura como de escritura. Se respetará el protocolo NFS, ya que no se responderán a las peticiones que se hagan antes de que los cambios se hayan escrito en disco. Si un usuario root(en el cliente) accede al directorio /home/usuario/datos su privilegios son los mismos que el de un usuario anónimo; todo lo contrario ocurre con el directorio /tmp.
Los ficheros /etc/hosts.allow y /etc/hosts.deny tienen la siguiente estructura:
servicio: host [o red/mascara_subred], host [o red/mascara_subred]
servicio : Es el servicio que estará permitido o denegado para algunas IP’s, en nuestro caso serán portmap y rpc.nfsd.
host [o red/mascara_subred] : Indicará la IP del host de un posible cliente. También pueden indicarse redes con sus correspondientes mascaras de subred.
/etc/hosts.deny
En este fichero pondremos todas las restricciones posibles para hacer mas seguro el sistema. Para ello denegaremos el acceso a portmap, ya que si se deniega portmap, aunque permitas nfs, no se podrá compartir porque éste depende de portmap. Por lo que solo se tendrá acceso a portmap por aquellos equipos que estén definidos en el fichero /etc/hosts.allow. El fichero /etc/hosts.deny quedará:
portmap:ALL
/etc/hosts.allow
En este fichero debe indicar a quienes permitimos el acceso al servicio de nfs y portmap. Se pueden indicar hosts individuales o una red.
portmap:192.168.0.0/255.255.255.0
nfs:192.168.0.0/255.255.255.0
Una vez configurados los ficheros pasamos a arrancar el servicio portmap y rpc.nsfd:
root@mi_equipo:~# /etc/init.d/nfs-common restart
root@mi_equipo:~# /etc/init.d/nfs-kernel-server restart
root@mi_equipo:~# /etc/init.d/portmap restart
NOTA: Tanto el fichero /etc/hosts.deny como el /etc/hosts.allow no es necesario que tengan contenido alguna, pero se recomienda que sean configurados para la seguridad de los datos.
Configuración en el cliente
En el cliente montaremos el directorio exportado por el servidor, para ello ejecutaremos el siguiente comando:
cliente@cliente:~$ mount -t nfs mi_equipo:/tmp /home/cliente/temp
Con el comando anterior montamos el directorio /tmp exportado por el host mi_equipo en el directorio /home/usuario1/temp que previamente habremos creado. A este comando se le puede pasar una serie de opciones, la estructura genérica con las opciones sería:
mount -t nfs -o opcion[:usuario] dir_remoto dir_local
Las opciones son ro, rw, root_squash, no_root_squash, entre otras.
Si queremos que el directorio remoto se monte al arranque del cliente deberemos añadir la siguiente linea al fichero /etc/fstab:
mi_equipo:/tmp /home/cliente/temp nfs defaults,rw 0 0
Esa linea indica que se monte en el directorio /home/cliente/temp el directorio remoto /tmp (el directorio que exporta el servidor que se ha puesto como ejemplo).
Referencias:
http://nfs.sourceforge.net/nfs-howto/index.html
http://es.wikipedia.org/wiki/NFS
[eSlack] montar servicios
Eduardo Beltran ebc at cable.net.coSat Nov 24 15:49:23 CET 2001
- Previous message: [eSlack] montar servicios
- Next message: [eSlack] montar servicios
- Messages sorted by Date Thread Subject Author
Bueno yo tengo instalados casi todos los servicios aqui mencionados, ...pero
no he podido montar DNS, tengo un equipo conectado ainternet mediante ADSL
con numero de IP estatico, he desmarcado las opciones del archivo
/etc/rc.d/rc.inet2 en lo referente al dns y condfigurado el archivo
named.conf a que hace refencia y no consigo activar el demonio.
Alguin podria ayudarme...
Saludes
Eduardo Beltran
----- Original Message -----
From: "pof" <pau at eslack.org>
To: <eslack at maestratnet.net>
Sent: Friday, November 23, 2001 6:47 AM
Subject: Re: [eSlack] montar servicios
Hola,
Te comento un poco por encima lo que tienes en Slackware 8 para montar los
servicios que comentas:
FTP:
Slack8 viene con proftp, puedes lanzarlo desde inetd o en modo standalone,
tienes el fichero de configuración en /etc/proftpd.conf y información sobre
como configurarlo en www.proftpd.org
Telnet:
El telnet que trae slackware por defecto es netkit 0.17a si no recuerdo mal,
esta versión es vulnerable, tienes el paquete actualizado en el directorio
/patches dentro del arbol de slackware8 en ftp.slackware.com.
No te recomiendo que uses telnet para dar servicio de shell remota, es mejor
que utilices ssh. Slackware 8 viene con openssh, y tienes paquetes
actualizados en la -current.
HTTP:
Tienes el paquete de apache 1.3.20, puedes complementarlo con mod_php y
mod_ssl, la configuración está en /etc/apache/ y tienes más información en
apache.org
POP:
En slackware tienes 3 posibilidades: GNU pop3d, ipop3d (de pine), y el
tradicional BSD in.pop3d. Te recomiendo el GNU pop3d que parece ser el más
seguro. Puedes elegir cualquiera de ellos en el inetd.conf.
IMAP:
Tienes imapd 4 también de la distribución de pine. En linuxmafia hay
paquetes y prototypes para courier imap.
SMTP:
Slackware 8 trae Sendmail 8.11.4 que tiene una vulnerabilidad, tienes la
versión 8.11.6 que corrige el bug en el directorio patches. La configuración
en /etc/mail/
SMB:
Tienes samba 2.2.0a en la serie N. la configuración en /etc/smb.conf
NFS:
Slackware tiene pcnfsd.93.02.16. Puedes configurarlo desde /etc/exports.
Para lanzar o parar el servicio utiliza /etc/rc.d/rc.nfsd
DHCP:
El servidor DHCP que trae Slack es dhcpcd-1.3.20-pl0. Para configurarlo
/etc/dhcpd.conf
SNMP:
Slackware no tiene demonio de snmp en la distribución base, si quieres
puedes hacerte el paquete de ucd-snmp (ahora creo q ha cambiado d
nombre...), tienes el prototype para la versión 4.2.1 en la página de
eSlack.
Acceso remoto:
Como te dije antes, lo "mejor" es que utilices ssh en lugar de telnet.
SSL:
Te refieres a https? Instala el paquete de openssl (también lo necesitaras
para ssh) y el mod_ssl para el apache.
Espero que con esto te haya quedado todo un poco más claro.
Un saludo,
pof
Getting an error message " Access Denied " when trying to nfs connect to a Linux nfs server.
LAST MODIFIED DATE: December 10, 2004
VERSION: This applies to NFS Maestro All versions
Problem:
Getting an error message " Access Denied " when trying to nfs connect to a Linux nfs server, this error occurs when the export is restricted to Windows PCs by wildcards\IP Addresses.
On the Linux nfs server, only the other Linux\Unix machines were listed by name; the Windows PCs were listed using wildcards\IP Addresses.
Example:
/export/projects solaris(rw,sync) linux2(rw,sync) 192.27.1.*
When trying to connect, you get an error message "Access Denied".
When opening the exports:
/export/projects *(rw,sync)
it connect successfully.
Solution:
From Linux 'man export':
Machine Name Formats.
NFS clients may be specified in a number of ways:
single host
This is the most common format. You may specify a host either by an abbreviated name recognized be the resolver, the fully qualified domain name, or an IP address.
netgroups
NIS netgroups may be given as @group. Only the host part of each netgroup members is consider in checking for membership. Empty host parts or those containing a single dash (-) are ignored.
wildcards
Machine names may contain the wildcard characters * and ?. This can be used to make the exports file more compact; for instance, *.cs.foo.edu matches all hosts in the domain cs.foo.edu. However, these wildcard characters do not match the dots in a domain name, so the above pattern does not include hosts such as a.b.cs.foo.edu.
IP Networks
You can also export directories to all hosts on an IP (sub-) network simultaneously. This is done by specifying an IP address and netmask pair as address/netmask where the netmask can be specified in dotted-decimal format, or as a contiguous mask length (for example, either */255.255.252.*or */* a to the network base address result in identical subnetworks with 10 bits of host). Wildcard characters generally do not work on IP addresses, though they may work by accident when reverse DNS lookups fail.
By changing in Linux /etc/exports the access list with wildcard/IP address entry to a wildcard/domain name entry:
/export/projects solaris(rw,sync) linux2(rw,sync) *.cs.foo.edu
On Thu, 22 Nov 2001 13:17:16 -0300
"oscarvillada at uole.com" <oscarvillada at uole.com> wrote:
> Saludo cordial
> Estoy cacharreando en Linux Slackware 8.0 y me gustaría
> montar la mayor cantidad de servicios posibles. Si ya
> han trabajado con este S.O. por favor contarme como
> puedo hacerlo
>
> Transferencia de archivos (FTP)
> Telnet,DNS,HTTP,POP, IMAP,SMTP,SMB,NFS,DHCP,SNMP
> Acceso remoto, SSL
>
> o si algunos de estos servicios requieren software
> adicional.
>
> Muchas gracias
---
===========================================
Name: Pau Oliva - Email: pau at eSlack.org
Linux user: #97195 - BSD user: #BSD050609
WWW: www.eSlack.org - WWW: pof.eSlack.org
===========================================
Administrador de Sistemas - maestratnet.es
Maestrat Net S.L. Servicios Interactivos
-------------------------------------------
--------------------------------------------
eSlack. Grupo de usuarios de Slackware Linux.
http://www.eslack.org
--------------------------------------------
--------------------------------------------
eSlack. Grupo de usuarios de Slackware Linux.
http://www.eslack.org
------------------------------------------
4.2. Getting NFS File Systems to be Mounted at Boot Time
NFS file systems can be added to your /etc/fstab
file the same way local file systems can, so that they mount when your system starts up. The only difference is that the file system type will be set to nfs and the dump and fsck order (the last two entries) will have to be set to zero. So for our example above, the entry in /etc/fstab would look like:
See the man pages for fstab if you are unfamiliar with the syntax of this file. If you are using an automounter such as amd or autofs, the options in the corresponding fields of your mount listings should look very similar if not identical.
At this point you should have NFS working, though a few tweaks may still be necessary to get it to work well. You should also read Section 6, “Security and NFS” to be sure your setup is reasonably secure.
« on: June 02, 2008, 08:37:33 PM » | |
Este tuto trata sobre como compartir una particion montada vía ntfs-3g (soportado via fuse) a travez de NFS. Todas las pruebas fueron sobre Ubuntu 7.10 (servidor) y Kubuntu 8.04 (cliente).
Cual es el problema?, si con Ext*, ReiserFS y otros funciona tan bien?, la razón es que NTFS al no ser diseñado para Linux carece de un sistema adecuado para permisos y demas, ademas de ciertas limitantes/problemas entre fuse y NFS razón por la cual una instalación por defecto de Ubuntu no permite usar montajes ntfs para tal fin.
1. Descargas necesarias.
1.a Necesitamos descargar el codigo fuente de FUSE (2.7.3): http://fuse.sourceforge.net/
1.b Necesitamos descargar el codigo fuente de ntfs-3g (1.2531): http://www.ntfs-3g.org/
[Como referencia, entre parentesis puse las versiones que ocupe].
1.c Por si en caso no lo tienen aún, instalen el soporte para NFS: 'sudo apt-get install nfs-kernel-server nfs-common'
2. Preparacion preliminar
2.a Tenemos que desmontar todos los dispositivos que esten usando FUSE (por seguridad).
2.b Tenemos que detener FUSE: 'sudo /etc/init.d/fuse stop'
2.c Tenemos que eliminar el modulo de FUSE: 'sudo rmmod fuse'
2.d Tenemos que descomprimir el código del nuevo FUSE que bajamos.
2.e Tenemos que descomprimir el código del nuevo ntfs-3g que bajamos.
3. Compilación
3.a Ingresamos al directorio donde esta el código descompreso de FUSE y ejecutamos: './configure --enable-kernel-module && make && sudo make install' (nos pedirá posiblemente la clave de nuestro usuario cuando llegemos a este ultimo paso)
2.b Ingresamos al directorio donde esta el código descompreso de ntfs-3g y ejecutamos: './configure && make && sudo make install' (nos pedirá posiblemente la clave de nuestro usuario cuando llegemos a este ultimo paso)
4. Cargar y configurar FUSE
4.a ejecutamos 'sudo modprobe fuse && sudo ldconfig'
5. Procedimientos finales
En este momento ya pueden exportar montajes ntfs via NFS, editen su archivo /etc/exports a su gusto. Por ej. el mío esta así:
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync) hostname2(ro,sync)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt)
# /srv/nfs4/homes gss/krb5i(rw,sync)
#
/media/Datos 192.168.1.5(rw,sync,no_subtree_check)
/media/eMule 192.168.1.5(rw,sync,no_subtree_check)
/media/Extra 192.168.1.5(rw,sync,no_subtree_check)
Cuando esten a gusto con su archivo /etc/exports, guardenlo y ejecuten 'sudo /etc/init.d/nfs-kernel-server restart'
¡Ahora ya deberían de poder usar su carpeta NFS desde otra maquina!, por ej. yo la accedo asi (usando /etc/fstab para que se monte al iniciar la maquina):
# /etc/fstab: static file system information.
#
#
192.168.1.6:/media/Extra /media/Extra nfs rw,hard,intr 0 0
192.168.1.6:/media/Datos /media/Datos nfs rw,hard,intr 0 0
192.168.1.6:/media/eMule /media/eMule nfs rw,hard,intr 0 0
Bien, ¡eso es todo!.
6. Referencias que me ayudaron a llegar a una solución a este problema:
http://ntfs-3g.org/support.html#nfs
http://nixcraft.com/networking-firewalls-security/965-can-t-export-windows-ntfs-partition-using-nfs.html
http://forums.fedoraforum.org/archive/index.php/t-159877.html
| |
|
No hay comentarios:
Publicar un comentario