Para ejecutar el software de servidor/cliente de NIS se necesitará ejecutar antes el programa portmap. En RedHat Linux existe un script en /etc//init.d/portmap para arrancar éste demonio. Todo lo que tienes que hacer es añadirlo a un runlevel si deseas que se lanze en el arranque..
El mapeador RPC es un servidor que convierte números de programas RPC en números de puerto de protocolo TCP/IP (o UDP/IP). Debe estar ejecutándose para poder realizar llamadas RPC (que es lo que el software de cliente NIS hace) a servidores RPC (como un servidor NIS) de esa máquina. Cuando un servidor RPC arranca, avisará al mapeador de puertos por cuál puerto está escuchando, y a qué números de programas RPC está preparado para servir. Cuando un cliente desea hacer una llamada RPC a un número de programa dado, primero deberá contactar con el mapeador de puertos de la máquina servidora para determinar el número de puerto al que los paquetes RPC deben ser enviados. El comando rpcinfo nos dará la información de que programas está preparado para servir.
El software necesario para poner en marcha y configurar un servidor o cliente de NIS en una distribución RedHat Linux, es el siguiente:
ypserv yp-tools ypbind
Normalmente los servidores RPC estándar son arrancados por xinetd, de modo que el mapeador de puertos (portmap) debe ser iniciado antes de que inetd sea invocado.
Hay que asegurarse que tenemos instalados los paquete ypbind y yp-tools.
El programa /usr/sbin/ypbind es el servicio cliente de NIS, que nos permitirá interactuar con un servidor NIS y acceder a los mapas que este sirva ( /etc/passwd, /etc/group ). Para comprobar que ypbind funciona correctamente habría que seguir los siguientes pasos:
Tener arrancado el portmap.
Definir el dominio de NIS al cual sirve el servidor con el comando domainname.
Crear el directorio /var/yp sino existe.
Iniciar ypbind: /usr/sbin/ypbind
Usar el comando "rpcinfo -p localhost" para comprobar si ypbind es capaz de registrar su servicio con el mapeador de puertos. El rpcinfo debería producir una salida parecida a:
program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100007 2 udp 637 ypbind 100007 2 tcp 639 ypbind 300019 1 udp 660
Comprobar que puedes acceder a los mapas que sirve el servidor NIS: ypcat passwd Esto debería devolver el mapa passwd del servidor.
Si todo ha funcionado correctamente, deberías automatizar este proceso para que se realizara cada vez que arranque el cliente. En RedHat Linux existe un script llamado /etc/rc.d/init.d/ypbind que acepta {star|stop} para lanzar o parar el servicio. El dominio de NIS se define añadiendo la variable NISDOMAIN al fichero de configuración /etc/sysconfig/network.
El fichero de Network Services Switch /etc/nsswitch.conf determina el orden de las búsquedas realizadas cuando se pide una pieza específica de información, de la misma forma que el fichero /etc/host.conf determina la manera en que se realizan las búsquedas de hosts. Por ejemplo, la línea
hosts: files nis dns
especifica que las funciones de búsqueda de host deben primero mirar en el fichero /etc/hosts local, seguido de una búsqueda NIS y, finalmente, usar el DNS (/etc/resolv.conf y named). Si al llegar a este punto no se encuentra el host correspondiente se devuelve un error.
Habrá que comprobar que está instalado el paquete ypserv (rpm -q ypserv), que es el que nos permitirá instalar un servidor de páginas amarillas o NIS.
Existen dos tipos de servidores NIS: maestros y esclavos. El primero será el servidor principal donde se generarán los mapas que tenemos que servir, mientras que un servidor esclavo mantendrá una copia de los mapas por si no estuviera disponible en algún momento el servidor maestro.
Habrá que editar el fichero /etc/ypserv.conf que nos permitirá configurar algunas opciones para el sevidor ypserv. Normalmnete contiene una lista de reglas para hosts especiales y reglas de acceso a los mapas. El fichero /var/yp/securenets define los derechos de acceso al servidor NIS por parte de los clientes. El fichero contiene pares netmask/network de forma que si la dirección IP del cliente se corresponde con la entrada podrá actuar como cliente de NIS.
Hay que asegurarse que el portmap está corriendo ( rpcinfo -p localhost ) y entonces y solo entonces lanzar el demonio ypserv. El siguiente paso sería generar las bases de datos (mapas) de NIS. En el servidor maestro habrá que ejecutar lo siguiente:
[root@mis01]# /usr/lib/yp/ypinit -m
De esta forma se definirán los servidores esclavos y los mapas que sirve el servidor de NIS. Si se necesita actualizar un mapa, se tiene que ejecutar make en directorio /var/yp del servidor maestro de NIS. Esta acción actualizará el mapa si el fichero fuente es mas nuevo, y colocará los ficheros en los servidores esclavos.
En el servidor esclavo ( puede haber más de uno ) se tendrán que realizar los siguientes pasos. Asegurarse que el portmap está corriendo, ejecutar el demonio ypserv, y entonces llamar al siguiente comando:
[root@mis02]# /usr/lib/yp/ypinit -s mis01
Habrá que asegurarse de que el nuevo servidor esclavo tiene una entrada en el fichero de configuración /etc/ypservers del servidor maestro.
También sería una buena idea editar el fichero crontab de root del servidor esclavo y añadir las sigueintes lineas:
20 * * * * /usr/lib/yp/ypxfr_1perhour 40 6 * * * /usr/lib/yp/ypxfr_1perday 55 6,18 * * * /usr/lib/yp/ypxfr_2perday
Esto asegurará que la mayoría de los mapas NIS estén actualizados, incluso si una actualización se perdió debido a que el servidor esclavo estaba fuera de servicio en el momento en que el servidor maestro actualizó los mapas.
Si quisiéramos restringir el acceso de los usuarios a nuestro servidor NIS, tendríamos que configurarlo también como un cliente NIS y añadir las entradas necesarias en el /etc/passwd.
El último paso sería automatizar el proceso de poner en marcha el servidor NIS cada vez que arranque la máquina. En RedHat Linux existe el script /etc//init.d/ypserv que acepta los parámetros {start|stop} para lanzar o parar el servicio. Colcándolo en los niveles de ejecución apropiados tendremos listo este proceso.
Habría que considerar que con este método de autentificación en red, si los usuarios quisieran cambiarse sus passwords, el comando normalmente utilizado passwd no cumplirá su función ya que debería actualizar los mapas NIS del servidor pertinentes. Para ello en el servidor NIS debe estar corriendo el demonio rpc.yppasswdd, el cual maneja los cambios de passwords y asegura que la información de los mapas de NIS se actualiza correctamente. En los clientes deberíamos utilizar el comando yppasswd en vez de passwd.