NIS paso a paso

Sergio González González

Instituto Politécnico de Bragança, Portugal

sergio.gonzalez@hispalinux.es

Guía rápida para la instalación del servicio NIS (Network Information Service) en un sistema Debian GNU/Linux en su versión inestable, también conocida como Sid.

1. Introducción

Este documento muestra los pasos necesarios para instalar un sistema NIS en Debian GNU/Linux (Sid) de manera rápida. Por lo tanto, los pasos no se detallarán en profundidad.

La instalación de un sistema NIS puede realizarse de tres formas: modo cliente, modo servidor primario y modo servidor secundario. Aquí trataremos las tres opciones.

Para la generación de esta documentación se han utilizado dos documentos: nis.debian.howto.gz, que viene junto con el paquete de NIS para Debian GNU/Linux, las páginas del manual de NIS y The Linux NIS(YP)/NYS/NIS+ HOWTO (http://www.linux-nis.org/nis-howto/HOWTO/NIS-HOWTO.html)

2. Pasos genéricos

A continuación se muestran los pasos genéricos de una instalación de NIS. Estos pasos han de darse en todos los casos, ya sea para instalar un sistema cliente o uno servidor.

2.1. Instalación

En primer lugar instalamos NIS, para ello ejecutamos:

# apt-get install nis

En el proceso de instalación hemos de definir el nombre del dominio que utilizaremos en NIS. Si por cualquier motivo necesitamos cambiarlo, editamos el archivo /etc/defaultdomain.

Una vez se ha terminado de instalar el paquete, hemos de configurar una serie de archivos antes de tener nuestro sistema NIS funcionando. Algunos de estos archivos son: /etc/nsswitch.conf, /etc/passwd,

/etc/group.

2.2. Activar el servicio time

Para el correcto funcionamiento de NIS es necesario habilitar el servicio time. Para ello, y dependiendo de si utilizamos el superservidor inetd o xinetd añadiremos las siguientes líneas a los respectivos archivos de configuración.

2.2.1. inetd

Las siguientes dos líneas han de estar presentes en el archivo /etc/inetd.conf:

time             stream  tcp      nowait  root     internal
time             dgram   udp      wait     root     internal

2.2.2. xinetd

Si nuestro sistema utiliza xinetd, tendremos que activar el servicio time editanto el archivo /etc/xinetd.d/time de forma que su contenido sea algo similar a:

# default: off
# description: An RFC 868 time server. This protocol provides a
# site-independent, machine readable date and time. The Time service sends back
# to the originating source the time in seconds since midnight on January first
# 1900.
# This is the tcp version.
service time
{
         disable          = no
         type              = INTERNAL
         id                = time-stream
         socket_type      = stream
         protocol         = tcp
         user              = root
         wait              = no
}
# This is the udp version.
service time
{
         disable          = no
         type              = INTERNAL
         id                = time-dgram
         socket_type      = dgram
         protocol         = udp
         user              = root
         wait              = yes
}

NIS paso a paso

2.2.3. Reinicio del superservidor

Una vez está configurado el servicio correctamente, reiniciamos el superservidor correspondiente y reiniciamos el servicio portmap

Nota: En el caso de estar utilizando el superservidor inetd:

     # killall -HUP inetd

Nota: En el caso de utilizar el superservidor xinetd:

     # /etc/init.d/xinetd restart

2.3. Configurar el archivo /etc/nsswitch.conf

Hemos de asegurarnos que el archivo /etc/nsswitch.conf contenga las siguientes líneas:

      passwd:   compat
       group:     compat
       shadow:   compat
       netgroup: nis

2.4. Orden en la búsqueda de los hosts

Si desea que los hosts sean buscados mediante NIS, ha de añadir la palabra nis al archivo /etc/host.conf de la siguiente forma:

order hosts,nis,bind
multi on

3. Instalación de un cliente NIS

Para configurar un cliente NIS, seguiremos los siguientes pasos (suponiendo que ya se han realizado los pasos de la sección anterior):

3.1. Especificar la localización del servidor NIS

ypbind es el demonio encargado de buscar los servidores para un determinado dominio y de mantener la información actualizada relativa a dicho dominio. Para configurar este demonio y por tanto la localización del servidor NIS, tenemos que editar el archivo /etc/yp.conf. Se puede especificar el nombre del servidor (siempre y cuando dicho nombre esté en el archivo /etc/hosts o sea resolvido mediante DNS) o su dirección IP. Para ver más formas de configuración del demonio ypbind consulte la página del manual del mismo.

Si nuestro servidor NIS es 192.168.0.4, el archivo de configuración quedaría:

#
# yp.conf        Configuration file for the ypbind process. You can define
#                 NIS servers manually here if they can't be found by
#                 broadcasting on the local net (which is the default).
#
#                 See the manual page of ypbind for the syntax of this file.
#
# IMPORTANT:     For the "ypserver", use IP addresses, or make sure that
#                 the host is in /etc/hosts. This file is only interpreted
#                 once, and if DNS isn't reachable yet the ypserver cannot
#                 be resolved and ypbind won't ever bind to the server.
ypserver 192.168.0.4

3.2. Configuración del archivo /etc/passwd

Para permitir el acceso a todos los usuarios, añada la siguiente línea al final de /etc/passwd:

+::::::

Si quiere afinar el acceso, puede especificar aquellos usuarios a los que le permite (+) o no (-) el acceso. Así, si quisiese que sólo los usuarios juan, paulo y fran tengan permisos de acceso, pero el usuario roberto no lo tenga, añadimos las siguientes líneas al final de /etc/passwd:

+juan:::::::
+paulo:::::::
+fran:::::::
-roberto
+:*::::::/bin/false

Nota: La última línea: +:*::::::/bin/false indica que, por defecto, los usuarios no tendrán acceso a nuestra máquina.

Aviso

Si utiliza shadow passwords, ha de adaptar el archivo /etc/shadow a NIS. Para ello, sigua el ejemplo de /etc/passwd (adaptando las entradas al formato del archivo /etc/shadow).

NIS paso a paso

3.3. Configuración del archivo /etc/group

La configuración de acceso de los distintos grupos de nuestro sistema se hace mediante el archivo /etc/group. Para ello, si quiere permitir el acceso a todos los grupos de su sistema, añada la siguiente línea al final del archivo:

+:::

Aviso

Si su sistema hace uso de GSHADOW , ha de adaptar el archivo /etc/gshadow a NIS, para ello sigua el ejemplo del archivo /etc/group.

3.4. Arrancar NIS

Ahora ya podemos arrancar nuestro cliente NIS, para ello tecleamos:

# /etc/init.d/nis stop
# /etc/init.d/nis start

4. Instalación de un servidor principal para NIS

A continuación configuraremos un servidor principal para NIS:

4.1. Definición de los servidores existentes

Ha de asegurarse de que en el archivo /etc/hosts de cada servidor hay una entrada para cada uno de los restantes servidores que conforman la red NIS. Esto es necesario porque NIS no hace uso del servicio DNS. Un ejemplo del archivo /etc/hosts podría ser:

127.0.0.1       localhost
192.168.0.1       host1.dominionis        host1
192.168.0.2       host2.dominionis        host2
192.168.0.3       host3.dominionis        host3

4.2. Configurar el servidor NIS como master

Edite el archivo /etc/default/nis y establezca la variable NISSERVER a master:

NISSERVER=master

4.3. Añadiendo seguridad al servidor NIS

Si quiere añadir algo de seguridad a su servidor NIS, ha de adaptar los archivos /etc/ypserv.securenets y /etc/ypserv.conf a sus necesidades. Esto se sale de los objetivos de este documento, por lo que sería conveniente que revisase la documentación de NIS para realizar esta tarea.

4.4. Arrancar NIS

Ahora ya podemos arrancar nuestro servidor NIS, para ello tecleamos:

# /etc/init.d/nis stop
# /etc/init.d/nis start

4.5. Configuración del servidor

El servidor se configura ejecutando: “/usr/lib/yp/ypinit -m”, de todas formas, antes de ejecutarlo ha de configurar algunos detalles:

• Cree, si no existe, el archivo /etc/networks, para ello puede ejecutar el siguiente comando:

  # touch /etc/networks

• Para restringir el acceso al servidor NIS, puede modificar el archivo /etc/passwd como vimos en la configuración del cliente. De esta forma, los únicos usuarios que tendrán acceso (si así se configura) son aquellos que están por debajo de la primera entrada NIS del archivo /etc/passwd.

Un ejemplo podría ser el siguiente, donde el usuario juan tiene acceso al sistema, pero el usuario prueba no:

  root:x:0:0:root:/root:/bin/bash
  daemon:*:1:1:daemon:/usr/sbin:
  bin:*:2:2:bin:/bin:
  sys:*:3:3:sys:/dev:
  sync:*:4:100:sync:/bin:/bin/sync
  games:*:5:100:games:/usr/games:
  man:*:6:100:man:/var/catman:
  lp:*:7:7:lp:/var/spool/lpd:
  mail:*:8:8:mail:/var/spool/mail:
  news:*:9:9:news:/var/spool/news:
  uucp:*:10:50:uucp:/var/spool/uucp:
  nobody:*:65534:65534:noone at all„„:/dev/null:
  +juan::::::
  +:*:::::/bin/false
  [ Todos los usuarios después de esta línea ]
  prueba:*:299:10:Una cuenta de pruebas:/tmp:
  juan:1234567890123:101:10:Juan Roca:/home/juan:/bin/bash

Nota: Puede cambiar la localización del archivo /etc/passwd editando /etc/default/nis y modificando la variable YPPWDDIR de forma que se adapte a sus necesidades.

Aviso

Tenga en cuenta que el usuario root puede variar la información de los usuarios del sistema (clave, shell y la información finger). Si esta información se modifica manualmente, ha de actualizar la información de los mapas de NIS, para ello se ejecuta un make en el directorio /var/yp. Esto se puede hacer automáticamente gracias a cron.

5. Instalación de un servidor secundario para NIS

Los pasos para la instalación de un servidor NIS son:

• Configurar el sistema como si se tratase de un cliente NIS.

• Edite el archivo /etc/default/nis y establezca la variable NISSERVER a slave:

NISSERVER=slave

• Indique a su servidor principal que posee servidores secundarios. Para ello edite el archivo /var/yp/Makefile y establezca el valor de la variable NOPUSH a false:

NOPUSH="false"

Una vez realizado esto, ejecute el siguiente comando y añada los servidores secundarios que posea:

# /usr/lib/yp/ypinit -m

• Arranque el servidor secundario e inicialicelo, para ello ejecute:

# /etc/init.d/nis stop
# /etc/init.d/nis start
# /usr/lib/yp/ypinit -s <coloque_el_nombre_de_su_servidor_principal_aqui>

Nota: Puede colocar las siguientes líneas en la entrada nis del cron de sus servidores secundarios:

  20 *     * * *     root  /usr/lib/yp/ypxfr_1perhour >/dev/null 2>&1
  40 6     * * *     root  /usr/lib/yp/ypxfr_1perday  >/dev/null 2>&1
  55 6,18 * * *     root  /usr/lib/yp/ypxfr_2perday  >/dev/null 2>&1

Estas mantienen actualizados los mapas de los servidores secundarios.

6. Sobre este documento

Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia de Documentación Libre GNU, versión 1.1 o cualquier versión posterior publicada por la Free Software Foundation. Puedes consultar una copia de la licencia en http://www.gnu.org/copyleft/fdl.html (http://www.gnu.org/copyleft/fdl.html)