(→Configurando el servidor NFS) |
(→Links) |
||
Línea 125: | Línea 125: | ||
http://nfs.sourceforge.net/ | http://nfs.sourceforge.net/ | ||
+ | [[Category:Documentación]] | ||
[[Category:Redes]] | [[Category:Redes]] | ||
[[Category:Artículo incompleto]] | [[Category:Artículo incompleto]] |
Muchas veces en una oficina donde hay varias máquinas compartidas se presenta el problema de que una persona no usa siempre la misma máquina y de alguna manera debe acceder a sus archivos. Si el sistema operativo usado es GNU/Linux tenemos múltiples alternativas. Si nos encontramos en un entorno mixto con máquinas con GNU/Linux y Windows las alternativas son distintas a las expuestas en este documento.
Funciona pero además de ser muy incomodo genera múltiples copias de los archivos lo cual nunca es bueno.
Se podría pero no respeta los permisos de los archivos ni permite que se creen archivos especiales dentro (pipes, dispositivos, etc...), SAMBA es más aconsejable cuando queremos compartir archivos entre máquinas con Windows y GNU/Linux
Es la solución que tomaremos nosotros pero tiene 2 desventajas
La primera desventaja de NFS se puede salvar:
Es muy incomodo y ante cualquier modificación hay que volver a copiar los archivos
Es relativamente complicado de configurar y no es aconsejable para un entorno GNU/Linux puro
Es lo que estamos buscando, es muy fácil de configurar y permite filtrar que máquinas pueden utilizar el servicio por IP o por Subred
Elegidos NFS para compartir archivos y NIS para compartir usuarios el problema parece resuelto y de hecho lo está si tenemos una pequeña subred con IPs fijas bajo nuestra administración.
Pero formamos parte de una red con IPs dinámicas o donde la seguridad es un factor de importancia tenemos algunos problemas.
La solución a todo esto es utilizar una VPN (Virtual Private Network/Red Privada Virtual) la cual nos provee un canal seguro (cifrado con ssl) entre los hosts y simula IPs fijas para éstos.
Queríamos compartir archivos entre hosts (lo cuál requiere una forma ordenada de compartir usuarios y grupos) de manera segura, y la manera en que lo vamos a lograr es la siguiente:
En nuestro esquema utilizaremos un sólo servidor que nos proveerá todos los servicios NFS, NIS y VPN.
Usaremos como sistema Lihuen (o cualquier distribución basada en Debian) y el producto Openvpn como servidor VPN.
Supongamos en adelante que nuestra red es 192.168.1.0/24 y que nuestro servidor es 192.168.1.20.
Lo primero que debemos hacer es instalar los productos necesarios, para esto instalaremos en el servidor los paquetes: nis, nfs-kernel-server (nfs-user-server no está lo suficientemente maduro) y openvpn. Y en los clientes nis, nfs-client y openvpn.
Podemos hacer eso desde la terminal con:
# apt-get install nis nfs-kernel-server openvpn
y
# apt-get install nis nfs-client openvpn
o podemos instalar estos paquetes en modo gráfico con Synaptic
Para evitar complicaciones y errores probaremos los servicios NFS y NIS sobre nuestra "red física" (sin utilizar la vpn) y luego, cuando sepamos que funcionan, sobre la vpn.
Esta debe ser la configuración más sencilla. En el servidor nos encontraremos con el archivo /etc/exports, en el cual debemos indicar que directorio queremos exportar y que máquinas pueden utilizarlo. En nuestro ejemplo vamos a exportar /home y vamos a permitir que toda nuestra red pueda utilizarlo.
El archivo exports del servidor debería quedar así:
# /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5). /home/nfs 192.168.1.0/255.255.255.0(rw,root_squash)
Notar que se agregaron las opciones rw para que se pueda leer y escribir archivos y root_squash que va a evitar que el usuario root pueda acceder a estos directorios como root (lo hará como usuario anonymous) si queremos permitirlo debemos poner no_root_squash en su lugar.
Para más detalles de las opciones:
$ man 5 exports
Luego reiniciamos el servicio:
/etc/init.d/nfs-kernel-server restart
Y verificamos que esté funcionando con:
$ portmap -p localhost | grep nfs
En los clientes veremos la carpeta exportada como un filesystem más por lo que para acceder a sus contenidos debemos montarla cada vez que arranque el sistema. Para esto tenemos que agregar la siguiente linea en fstab
192.168.1.20:/home/nfs /home/nfs nfs noauto
(la opción noauto es para evitar problemas cuando querramos hacer funcionar NFS sobre la VPN ya que Openvpn arranca después de que el sistema intenta montar los filesystems)
NIS genera y comparte bases de datos de usuarios y grupos, veremos una configuración básica de NIS como ejemplo. Para empezar debemos instalar el paquete nis tanto en el servidor como en los clientes, podemos hacer esto con:
apt-get install nis
Establecemos un nombre para nuestro "dominio" nis. Por ejemplo nis_marte y lo escribimos en /etc/defaultdomain tanto en los clientes como en el servidor:
nis_marte
Luego agregaremos los usuarios que queremos exportar en el servidor, para distinguirlos de los usuarios locales les ponemos un uid y un gid muy alto (digamos, mayor o igual a 100000):
# adduser --home /home/nfs --firstuid 100000 --lastuid 200000 NOMBRE_DE_USUARIO
Por defecto adduser crea un grupo con el mismo nombre del usuario pero con otro id, vamos a modificarlo para que el guid sea igual al uid (para poder distinguirlo de los grupos locales):
# groupmod -g ID_DEL_USUARIO GRUPO_DEL_USUARIO
Debemos editar el archivo /etc/default/nis para que el programa tome el rol de servidor. Modificaremos solo lo siguiente:
NISSERVER=true NISCLIENT=false NISMASTER=true
Ahora tenemos que definir que usuarios y grupos vamos a exportar. Para esto definimos el rango de uids y gids que vamos a utilizar en /var/yp/Makefile
MINUID=100000 MINGID=100000
Luego, en ese mismo directorio, hacemos make para crear las bases de datos.
Veamos un ejemplo:
# adduser --home /home/nfs --firstuid 100000 --lastuid 200000 tux # groupmod -g 100000 tux # adduser --home /home/nfs --firstuid 100000 --lastuid 200000 gnu # groupmod -g 100001 gnu # cd /var/yp # make
Luego reiniciamos el servicio NIS:
/etc/init.d/nis