1. Skip to Menu
  2. Skip to Content
  3. Skip to Footer>

Interesante

  • Cómo configurar Apache como servidor WebDAV

    Configuración de Apache, como servidor WebDAV

    En este artículo, explicaré como convertir en Linux, nuestro servidor web Apache (que previamente habremos instalado), en un servidor WebDAV. El fin de este dossier, será el de poder publicar los calendarios que desarrollemos con la aplicación iCal de Apple, de una forma muy similar a como lo haríamos con una cuenta .mac.
    Una vez publicados nuestros calendarios, podrá la gente suscribirse a ellos o consultarlos vía web.

     

  • Cómo montar un Gateway en Linux mediante IP Masquerading
    Un gateway o puerta de enlace es normalmente un equipo informático configurado para dotar a las máquinas de una red local (LAN) conectadas a él de un acceso hacia una red exterior, generalmente realizando para ello operaciones de traducción de direcciones IP (NAT: Network Address Translation). Esta capacidad de traducción de direcciones permite aplicar una técnica llamada IP Masquerading, usada muy a menudo para dar acceso a Internet a los equipos de una LAN compartiendo una única conexión a Internet, y por tanto, una única dirección IP externa.
  • Cómo configurar Postfix Courier y MySQL Postfix Courier y MySQL

    1. ¿Por que este documento?

    Me he decidido a escribir este documento ya que los que busqué al intentar hacer la instalación de este trío no llegaron a gustarme.

  • Cómo compartir archivos en Linux mediante NFS
    El NFS o Network File System es un sistema de archivos virtual que permite que una máquina UNIX conectada a una red pueda montar un sistema de archivos de otra máquina e interactuar sobre él como si fuera propio. De esta manera, constituye un medio de compartición de archivos totalmente transparente para el usuario de la máquina cliente.

    NFS no es en realidad un sistema de archivos físico, sino una capa de abstracción del sistema de archivos real (ext2, UFS, FFS, etc...) que permite el montaje de éste remotamente.
  • Cómo autentificar Squid contra OpenLDAP
    Autenticando Squid contra OpenLDAP

    Dado que últimamente se esta poniendo de moda hacer uso de un Servidor de Directorios LDAP, para unificar la autenticación de varios servicios en un sistema Linux, vamos a ver una manera (no es la única, pero si la que a mi me ha funcionado) de autenticar el proxy Squid, contra OpenLDAP. Evidentemente, antes de nada, instalaremos nuestro Servicio de Directorios y migraremos los usuarios de nuestro sistema.



  • Cómo configurar un servidor NFS

    Configurar un servidor NFS.

    Introducción.

    NFS, acrónimo de Network File System, es un popular protocolo utilizado para compartir volúmenes entre máquinas dentro de una red de manera transparente, más comúnmente utilizado entre sistemas basados sobre UNIX®. Es útil y fácil de utilizar, sin embargo no en vano es apodado cariñosamente como "No File Security". NFS no utiliza un sistema de contraseñas como el que tiene SAMBA, solo una lista de control de acceso determinada por direcciones IP o nombres. Es por esto que es importante que el administrador de la red local o usuario entienda que un servidor NFS puede ser un verdadero e inmenso agujero de seguridad si este no es configurado apropiadamente e implementado detrás de un contrafuegos o firewall.

    Personalmente, solo recomiendo utilizar NFS dentro de una red local detrás de un contrafuegos o firewall que permita el accesos solo a las máquinas que integren la red local, nunca para compartir sistemas de archivos a través de Internet. Al no contar con un sistema de autenticación por contraseñas, es un servicio susceptible del ataque de algún cracker. SAMBA es un mucho mejor y más seguro protocolo para compartir sistemas de archivos.

    Procedimientos.

    Teniendo en cuenta los aspectos de seguridad mencionados, es importante que siga los procedimientos descritos a continuación al pie de la letra, y que posteriormente se comprometa también consultar a detalle la documentación incluida en el paquete nfs-utils, ya que este le proporcionará información adicional y completa sobre aspectos avanzados de configuración y utilización.

    Configurando el servidor NFS.

    Se requiere tener instalados nfs-utils y portmap. Preguntaremos al sistema si estos están instalados con la siguiente línea de comando:

    rpm -q nfs-utils portmap

    Lo cual debe de regresar algo como lo siguiente:

    nfs-utils-0.3.1-13.7.2.1
    portmap-4.0-38

    En caso de que falte alguno de estos paquetes, inserte el CD de instalación en la unidad correspondiente, abra una terminal o consola y ejecute lo siguiente:

    mount /mnt/cdrom/
    rpm -Uvh /mnt/cdrom/RedHat/RPMS/paquete_faltante

    Cabe mencionar que lo mejor será siempre utilizar la versiones de nfs-utils y portmap más actuales. Salvo por RedHat® Linux 7.1 o LinuxPPP 7.x, el resto de las versiones anteriores de RedHat® y LinuxPPP® incluyen paquetes de nfs-utils y portmap con serios agujeros de seguridad. Visite el servidor ftp de la distribución utilizada y descargue los paquetes actualizados, que seguramente incluirán los parches de seguridad necesarios:

                        

                           

    Configurando la seguridad.

    Lo siguiente será configurar un nivel de seguridad para portmap. Esto se consigue editando los ficheros /etc/hosts.allow y /etc/hosts.deny. Debemos especificar que direcciones IP o rango de direcciones IP pueden acceder a los servicios de portmap y quienes no pueden hacerlo. Podemos entonces determinar en /etc/hosts.allow como rango de direcciones IP permitidas los siguiente:

    portmap:192.168.1.0/255.255.255.0

    Esto corresponde a la dirección IP de la red completa y la máscara de la sub-red. Adicionalmente podemos especificar direcciones IP individuales sin necesidad de establecer una máscara. Esto es de utilidad cuando se desea compartir volúmenes con otras máquinas en otras redes a través de Internet. Ejemplo:

    portmap:192.168.1.0/255.255.255.0
    portmap:192.168.20.25
    portmap:192.168.30.2
    portmap:216.200.152.96
    portmap:148.240.28.171

    Una vez determinado que direcciones IP pueden acceder a portmap, solo resta determinar quienes no pueden hacerlo. Evidentemente nos referimos al resto del mundo, y esto se hace agregando la siguiente línea:

    portmap:ALL

    Es importante destacar que la línea anterior es INDISPENSABLE y NECESARIA si quiere tener un nivel de seguridad decente. De manera predeterminada las versiones más recientes de nfs-utils no permitirán iniciar el servicio si esta línea no se encuentra presente en /etc/hosts.deny.

    Una vez configurado portmap, debe reiniciarse el servicio de portmap:

    /sbin/service portmap restart

    Si tiene un DNS, de de alta las direcciones IP asociadas a un nombre o bien edite /etc/hosts y agregue las direcciones IP asociadas con un nombre. Esto nos servirá como listas de control de accesos. Ejemplo del fichero /etc/hosts:

    127.0.0.1 localhost.localdomain localhost
    192.168.1.254 servidor.mi-red-local.org servidor
    192.168.1.2 algun_nombre.mi-red-local.org algun_nombre
    192.168.1.3 otro_nombre.mi-red-local.org otro_nombre
    192.168.1.4 otro_nombre_mas.mi-red-local.org otro_nombre_mas
    192.168.1.5 como_se_llame.mi-red-local.org como_se_llame
    192.168.1.6 como_sea.mi-red-local.org como_sea
    192.168.1.7 lo_que_sea.mi-red-local.org lo_que_sea

    Compartir un volumen NFS.

    Procederemos a determinar que directorio se va a compartir. Puede crear también uno nuevo:

    mkdir -p /var/nfs/publico

    Una vez hecho esto, necesitaremos establecer que directorios en el sistema serán compartidos con el resto de las máquinas de la red, o bien a que máquinas, de acuerdo al DNS o /etc/hosts se permitirá el accesos. Esto deberemos agregarlos en /etc/exports determinado con que máquinas y en que modo lo haremos. Se puede especificar una dirección IP o bien nombre de alguna máquina, o bien un patrón común con comodín para definir que máquinas pueden acceder. De tal modo podemos utilizar el siguiente ejemplo (la separación de espacios se hace con un tabulador):

    /var/nfs/publico *.mi-red-local.org(ro,sync)

    En el ejemplo anterior se esta definiendo que se compartirá /var/nfs/publico/ a todas las máquinas cuyo nombre, de acuerdo al DNS o /etc/hosts, tiene como patrón común mi-red-local.org, en modo de lectura escritura. Se utilizó un asterisco (*) como comodín, seguido de un punto y el nombre del dominio. Esto permitirá que como_se_llame.mi-red-local.org, como_sea.mi-red-local.org, lo_que_sea.mi-red-local.org, etc., podrán acceder al volumen /var/nfs/publico/ en modo solo lectura. Si queremos que el accesos a este directorio sea en modo de lectura y escritura, cambiamos (ro) por (rw):

    /var/nfs/publico *.mi-red-local.org(rw,sync)

    Ya que se definieron los volúmenes a compartir, solo resta iniciar o reiniciar el servicio nfs. Utilice cualquiera de las dos líneas dependiendo el caso:

    /sbin/service nfs start
    /sbin/service nfs restart

    A fin de asegurarnos de que el servicio de nfs esté habilitado la siguiente vez que se encienda el equipo, debemos ejecutar lo siguiente:

    /sbin/chkconfig --level 345 nfs on

    El comando anterior hace que se habilite nfs en los niveles de corrida 3, 4 y 5.

    Como medida de seguridad adicional, si tiene un contrafuegos o firewall implementado, cierre, para todo aquello que no sea parte de su red local, los puertos tcp y udp 2049, ya que estos son utilizados por NFS para escuchar peticiones.

    Configurando las máquinas clientes.

    Para probar la configuración, es necesario que las máquinas clientes se encuentren definidas en el DNS o en el fichero /etc/hosts del servidor. Si no hay un DNS configurado en la red, deberán definirse los nombres y direcciones IP correspondientes en el fichero /etc/hosts de todas las máquinas que integran la red local.

    Como root, en el equipo cliente, ejecute el siguiente comando para consultar los volúmenes exportados (-e) a través de NFS por un servidor en particular:

    showmount -e 192.168.1.254

    Lo anterior mostrará una lista con los nombres y rutas exactas a utilizar. Ejemplo:

    Export list for 192.168.1.254:
    /var/nfs/publico 192.168.1.0/24

    A continuación creamos, como root, desde cualquier otra máquina de la red local un punto de montaje:

    mkdir /mnt/servidornfs

    Y para proceder a montar el volumen remoto, utilizaremos la siguiente línea de comando :

    mount servidor.mi-red-local.org:/var/nfs/publico /mnt/servidornfs

    Si por alguna razón en el DNS de la red local, o el fichero /etc/hosts de la máquina cliente, decidió no asociar el nombre de la máquina que fingirá como servidor NFS a su correspondiente dirección IP, puede especificar ésta en lugar del nombre. Ejemplo:

    mount -t nfs 192.168.1.254:/var/nfs/publico /mnt/servidornfs

    Podremos acceder entonces a dicho volumen remoto con solo cambiar al directorio local definido como punto de montaje, del mismo modo que se haría con un disquete o una unidad de CDROM:

    cd /mnt/servidornfs

    Si queremos poder montar este volumen NFS con una simple línea de comando o bien haciendo doble clique en un icono sobre el escritorio, será necesario agregar la correspondiente línea en /etc/fstab. Ejemplo:

    servidor.mi-red-local.org:/var/nfs/publico /mnt/servidornfs nfs user,exec,dev,nosuid,rw,noauto 0 0

    La línea anterior especifica que el directorio /var/nfs/publico/ de la máquina servidor.mi-red-local.org será montado en en directorio local /mnt/servidor/nfs, permitiéndole a los usuarios el poder montarlo, en modo de lectura y escritura y que este volumen no será montado durante el arranque del sistema. Esto último es de importancia, siendo que si el servidor no está encendido al momento de arrancar la máquina cliente, este se colgará durante algunos minutos.

    Una vez agregada la línea en /etc/fstab de la máquina cliente, si utiliza GNOME Midnight Commander, el administrador de archivos de GNOME-1.1 y 1.2, solo restará iniciar una sesión gráfica, hacer clique derecho sobre el escritorio y seleccionar Actualizar dispositivos o Rescan devices. Esto colocará un icono adicional sobre el escritorio que deberá ser tratado del mismo modo que se haría con un disquete o unidad de CDROM.

    Icono para volumen NFS

    Si utiliza GNOME-1.4 o superior, éste incorpora Nautilus como administrador de archivos, mismo que auto-detecta cualquier cambio en /etc/fstab. Solo debe hacerse clique derecho sobre el escritorio y debe seleccionarse el disco que se desee montar.

    Accesos a discos en Nautilus

    Instalación de GNU/Linux a través de un servidor NFS.

    Este es quizás el uso más común para un volumen NFS. Permite compartir un volumen que contenga una copia del CD de instalación de alguna distribución y realizar inclusive instalaciones simultáneas en varios equipos. Tiene como ventaja el que la instalación puede resultar más rápida que si se hiciese con un CDROM, siendo que la tasa de trasferencia de archivos será determinada por el ancho de banda de la red local, y nos permitirá instalar GNU/Linux en máquinas que no tengas unidad de CDROM.

    Una vez creado y configurado un volumen a compartir copiaremos todo el contenido del CD de instalación en éste:

    cp -r /mnt/cdrom/* /var/nfs/publico/

    En el directorio images del CD encontraremos varias imágenes para crear disquetes de arranque. Utilizaremos bootnet.img para crear el número de disquetes necesarios para cada máquina en la que realizaremos una instalación, y que nos permitirán acceder a la red. Inserte un disquete y ejecute lo siguiente:

    cd /var/nfs/publico/images/
    dd if=bootnet.img of=/dev/fd0 bs=1440k

    Añada en /etc/hosts, o bien de de alta en el DNS, las direcciones IP, que serán utilizadas por las nuevas máquinas, asociadas a un nombre con el dominio que específico como regla de control de acceso en /etc/exports -es decir *.mi-red-local.org-. Para /etc/hosts, puede quedar algo así:

    127.0.0.1 localhost.localdomain localhost
    192.168.1.254 servidor.mi-red-local.org servidor
    192.168.1.2 algun_nombre.mi-red-local.org algun_nombre
    192.168.1.3 otro_nombre.mi-red-local.org otro_nombre
    192.168.1.4 otro_nombre_mas.mi-red-local.org otro_nombre_mas
    192.168.1.5 como_se_llame.mi-red-local.org como_se_llame
    192.168.1.6 como_sea.mi-red-local.org como_sea
    192.168.1.7 lo_que_sea.mi-red-local.org lo_que_sea
    192.168.1.8 nueva_maquina.mi-red-local.org nueva_maquina
    192.168.1.9 otra_nueva_maquina.mi-red-local.org otra_nueva_maquina

    Utilice estos disquetes para arrancar en los equipos, ingrese una dirección IP y demás parámetros para esta máquina y cuando se le pregunte ingrese la dirección IP del servidor NFS y el directorio en éste donde se encuentra la copia del CD de instalación. El resto continuará como cualquier otra instalación.

    Autor: Joel Barrios Dueñas
    Correo electrónico: joelbarrios arroba linuxparatodos punto net
    Sitio de Red: http://www.linuxparatodos.net/

    Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

    (c) 1999-2005 Linux Para Todos. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales. c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

    Technorati Tags:
    >>

27
Sep

Cómo compartir archivos en Linux mediante NFS

Escrito por J. Llorente

PDFImprimir E-mail
El NFS o Network File System es un sistema de archivos virtual que permite que una máquina UNIX conectada a una red pueda montar un sistema de archivos de otra máquina e interactuar sobre él como si fuera propio. De esta manera, constituye un medio de compartición de archivos totalmente transparente para el usuario de la máquina cliente.

NFS no es en realidad un sistema de archivos físico, sino una capa de abstracción del sistema de archivos real (ext2, UFS, FFS, etc...) que permite el montaje de éste remotamente.
Por ejemplo, si nuestro servidor es una máquina Linux que exporta por NFS un directorio llamado, pongamos, /usr/export cuyo sistema de archivos es ext3, y tenemos un cliente FreeBSD que quiere montar de manera remota ese directorio como /mnt/external, no será necesario que nuestro FreeBSD tenga soporte para ext3, sino que simplemente lo tenga para ser cliente NFS.





¿Para qué necesito NFS?


Los posibles escenarios en los que la compartición de directorios mediante NFS se podría aplicar son casi infinitos. Veamos algunos ejemplos típicos:
  • Tenemos una red con varias estaciones de trabajo y queremos que todas ellas posean el mismo software y la misma configuración: Exportamos mediante NFS los directorios /usr (para los programas) y /etc (para la configuración) desde un servidor común y conseguiremos una red uniforme.
  • Necesitamos tener una única copia de los archivos de un proyecto: creamos dicho proyecto en un directorio de un servidor y exportamos ese directorio a todas las estaciones de trabajo desde las que se use.
  • Tenemos clientes con poco espacio en disco y necesitan correr aplicaciones grandes: Se comparten los directorios de dichas aplicaciones desde un servidor mediante NFS y podremos ejecutarlas localmente en cada cliente sin problemas.

En este artículo nos centraremos en el siguiente supuesto:

Tenemos una máquina, llamada sinope, con NetBSD, a la que deseamos recompilar el kernel. Dado que sinope es una máquina muy antigua con un disco duro de sólo 200 megabytes, de los cuales sólo nos restan libres 30, no tenemos espacio en nuestro disco duro para poder descomprimir el código fuente del kernel de NetBSD.

Pero tenemos también, conectada a la misma red que sinope, a una máquina Linux llamada europa, que tiene espacio de sobra en su disco duro y que posee en su kernel la capacidad de ser servidor NFS.

Dado que en la máquina NetBSD, el código fuente del kernel deberá quedar instalado en el directorio /usr/src/sys, y que el directorio de europa donde descomprimiremos dichas fuentes será /usr/export/sinope/sys, tendremos que realizar el montaje que se puede ver en el siguiente diagrama:





Configuración del servidor.


Lo primero que tendremos que hacer para europa pueda exportar su directorio /usr/export/sinope/sys será configurar ese directorio como exportable por NFS. Esto lo haremos en el archivo /etc/exports, en el que cada línea configura un directorio exportable (ver man exports), añadiendo una línea como la siguiente:

/usr/export/sinope/sys            sinope(rw,no_root_squash)


Veamos lo que significa esta línea:
  • /usr/export/sinope/sys es el directorio a exportar.
  • sinope([opciones]) es el nombre de la máquina a la que permitiremos montar este directorio por NFS según las condiciones que detallamos en las opciones que van entre paréntesis.
  • rw, no_root_squash son las opciones con las que sinope podrá montar este directorio. En este caso permitiremos que desde el cliente se puedan leer y escribir archivos, y además, permitiremos que los accesos realizados como root desde el cliente sean también de root en el servidor (lo cual vale para nuestro ejemplo pero podría ser un problema de seguridad en muchos casos).


Especificando los clientes autorizados

Para especificar las máquinas autorizadas a montar un directorio de nuestro servidor existen varias posibilidades:
  • Poner un nombre o IP de host: para especificar una única máquina, podremos hacerlo poniendo simplemente su nombre DNS o dirección IP, como hemos hecho en el caso de sinope.
  • Especificar un grupo de red NIS, de la manera @grupo.
  • Especificar patrones, usando * y ?, de igual modo que se puede hacer con los nombres de archivo en un ls. De esta manera, *.midominio.priv se referiría a todas las máquinas de midominio.priv (pero atención, los puntos no se incluyen en *, de modo que esto no incluiría a, por ejemplo mimaquina.servidores.midominio.priv).
  • Especificar una red o subred IP, mediante el típico par dirección / máscara de red, por ejemplo:
    192.168.0.0/255.255.0.0
    192.168.0.0/16

Todas estas opciones podrían combinarse, especificando varios host o grupos de hosts separándolos por espacios.


Opciones para cada cliente autorizado

Para cada host o grupo de hosts que se especifique, se pueden declarar (entre paréntesis, como ya se ha visto) varias opciones. Veamos algunas de las más importantes (en negrita las opciones por defecto):
  • secure / insecure: La opción secure hace que las peticiones de conexión tengan que provenir obligatoriamente de un puerto inferior a 1024 (los usuarios convencionales no pueden usar estos puertos, sólo root).
  • ro / rw: Permite (rw) o no (ro) que se realicen modificaciones en el directorio exportado desde el cliente.
  • async / sync: La opción sync provoca que todas las escrituras a disco desde el cliente NFS sean síncronas, y por tanto ofrece mayor seguridad ante caídas del sistema, aunque también puede reducir el rendimiento.

Mención aparte merecen las opciones referidas al tratamiento de los usuarios que acceden a los directorios exportados:
  • root_squash: Se intentan conservar los uid y gid, de modo que se interpreta que cada usuario del cliente lo es también del servidor con sus mismos identificadores de usuario y grupo. Pero en el caso de que el usuario del cliente sea root, el uid y gid con el que trabajará en el servidor será el del usuario anónimo, nobody.
  • no_root_squash: El mismo comportamiento que con root_squash, pero no se aplica el cambio a los accesos del usuario root y por tanto trabaja como root también en el servidor.
  • all_squash: No se intentan mantener los identificadores de usuario y grupo, sino que se cambian siempre a los del usuario anónimo.

En el caso de que se utilice alguna de las opciones de squash, se puede modificar el uid y gid del usuario anónimo para que en vez de nobody sea cualquiera que nosotros deseemos con las opciones anonuid y anongid, por ejemplo:
/usr/export/otroexport        unamaquina(ro,all_squash,anonuid=1004,anongid=1030)




Puesta en marcha del servidor


Una vez hayamos configurado nuestro servidor, será necesario ponerlo en marcha. La forma en que haremos esto diferirá dependiendo de la distribución que usemos.

Si usamos Red Hat Linux, sólo tendremos que ejecutar como root:

$ service portmap start
$ service nfs start

Con la primera orden arrancamos el servidor portmap que se encarga de llevar cuenta de los servicios RPC que tenemos arrancados (uno de ellos será NFS). Con la segunda orden, arrancamos el servidor nfsd.

Para pararlo, tendremos que hacer:

$ service nfs stop

Podemos hacer que el servidor NFS arranque cada vez que iniciamos el sistema marcándolo como servicio de inicio en la herramienta gráfica de configuración serviceconf. Con esta herramienta también podríamos haber arrancado los servicios en vez de usar la línea de comandos, si hubiésemos querido.


En caso de que nuestra distribución no sea Red Hat, es muy probable que en el directorio /etc/init.d o /etc/rc.d/init.d encontremos scripts ya preparados para iniciar tanto portmap como nfsd.



Montaje del sistema de archivos desde el cliente


Una vez tenemos el servidor listo y funcionando, el montaje del sistema de archivos exportado desde el cliente es muy sencillo. Basta con ejecutar como root la orden mount con los parámetros adecuados y especificando que el tipo de sistema de archivos es nfs. En nuestro caso, desde sinope ejecutaremos:


$ mount -t nfs europa:/usr/export/sinope/sys /usr/src/sys


...y ya está. Podremos usar el directorio /usr/src/sys en nuestro cliente sin problemas y sin que nuestros programas se den cuenta de que no está en el disco duro local.


Un artículo de:

Daniel Fernández Garrido


Technorati Tags:
>>

Comentarios (1)
ayuda
1Miércoles, 02 de Febrero de 2011 22:05
Catalina
no puedo escribir en mi carpeta compartida desde el cliente, aunque en exports ya le asigne permisos de lectura y escritura(rw), que mas puedo hacer

Agregue su comentario

Tu Nombre:
Asunto:
Comentario:

Últimos contenidos

Facebook conecta

Total visitas

3641479
38.107.179.234
UNITED STATES
US

Quien está en linea

Tenemos 51 invitados conectado(s)

Conectan

Locations of visitors to this page

Nos visitan desde

Últimos comentarios

Vitales Servidor