HOWTO Setup NIS

De Gentoo Linux Wiki

Este articulo es parte de las series de HOWTO.
Kernel & Hardware Red y Servicios Portage Relacionado con el Sistema Servidor X Juegos Misceláneos

Este HOWTO detalla la preparación del servidor NIS en Gentoo como el funcionamiento en máquinas cliente.

Tabla de contenidos

[editar] Común (Clientes y Servidores)

[editar] Dominio NIS

¡El dominio de NIS debe ser alguna cadena normalmente "no" asociada con el nombre del DNS-dominio de su máquina! La razón de ello es que hace más difícil, a las intrusiones externas, recuperar la base de datos de la contraseña de su servidor NIS. Si no sabe cual es el nombre de dominio NIS en su red, pregúnteleseñp a su administrador del red. (o sólo ingrese en el servidor del nis y teclee tuDominioNis)

Edita /etc/conf.d/net y añade:

Código: /etc/conf.d/net
nis_domain_eth0="tuDominioNis"
# server IPs
nis_servers_eth0="serverIP1 serverIP2"

o añade:

Código: /etc/conf.d/net
 nis_domain_lo="tuDominioNis"


Nota: El actual baselayout quitó la configuración NISDOMAIN de /etc/conf.d/domainname, y borra también el script /etc/init.d/domainname.

Si por alguna razón no quieres utilizar los net-scripts para establecer tu dominio NIS puedes utilizar hostname -y tuDominioNis para establecerlo. Una buena razón de ello puede ser que tengas un /etc/yp.conf estático.

[editar] Cliente

[editar] Instalando las herramientas

emerge yp-tools ypbind

Asegúrate que tienes el pam compilado con +nis flags.

[editar] Preparando el Cliente NIS

Tienes un archivo de configuración llamada /etc/yp.conf. Puedes especificar allí el servidor NIS - para más info mira la página man para el ypbind(8). También necesitas este archivo para NYS. Un ejemplo:

Archivo: yp.conf
ypserver 10.10.0.1
ypserver 10.0.100.8
ypserver 10.3.1.1

Si el sistema puede resolver el nombre de dominio sin NIS, puedes utilizar el nombre, si no, tendrás que utilizar la dirección IP. ypbind 3.3 tiene un bug y usará sólo la última entrada (ypserver 10.3.1.1 en el ejemplo). Todas las otras entradas se ignoran. ypbind-mt utiliza esto correctamente y usa el que responda primero.


Nota: No necesitas editar /etc/yp.conf si tienes las entradas nis_* en /etc/conf.d/net

[editar] Iniciando los servicios

Levantando portmap y ypbind

portmap
ypbind

[editar] ¿Registrados?

Utiliza el commando rpcinfo -p localhost para verificar si ypbind ha podido registrar su servicio con el portmapper. La salida suele ser como la siguiente:

Código: rpcinfo -p localhost
      program vers proto   port
       100000    2   tcp    111  portmapper
       100000    2   udp    111  portmapper
       100007    2   udp    637  ypbind
       100007    2   tcp    639  ypbind

o

      program vers proto   port
       100000    2   tcp    111  portmapper
       100000    2   udp    111  portmapper
       100007    2   udp    758  ypbind
       100007    1   udp    758  ypbind
       100007    2   tcp    761  ypbind
       100007    1   tcp    761  ypbind

Dependiendo de la versión de ypbind que estés utilizando.

  • También puedes ejecutar

rpcinfo -u localhost ypbind. Este comando suele producir una salida similar a esta:

Código: rpcinfo -u localhost ypbind
       program 100007 version 2 ready and waiting

o

       program 100007 version 1 ready and waiting
       program 100007 version 2 ready and waiting

La salida depende de la versión de ypbind que se tiene instalada. Sólo es importante el mensaje "version 2".

A estas alturas debes poder utilizar las aplicaciones cliente NIS como el ypcat, etc... por ejemplo, ypcat passwd.byname te dará las contraseñas de la base datos NIS entera.

Para verificar si el domainname está fijado correctamente, utiliza /bin/ypdomainname de las yp-tools 2.2. Utilitza la función yp_get_default_domain() que es más restrictiva. No permite por ejemplo el domainname "(none)", que es el valor predeterminado bajo Linux y trae muchos problemas.

Si la prueba funcionse puede cambiar tus archivos de inicio "startupd files" para que así ypbind se inicie al inicio y tu sistema actue como un cliente NIS. Asegurate que los domainname se declaren antes de que se inicie el ypbind.

[editar] Puesta en marcha

Una vez conseguido que el sistema hable con el servidor NIS, querrar que se inicie desde el arranque. Así que necesitará entrar las siguientes ordenes:

rc-update add portmap default
rc-update add ypbind default

[editar] Preparando un Cliente NIS utilizando el NIS Tradicional

Añade ls siguiente línea a /etc/passwd y /etc/group en tu cliente NIS:

+::::::

También puedes utilizar los caracteres + y - para incluir/excluir o cambiar usuarios. Si quieres excluir al usuario invitado sólo añade -guest al archivo /etc/passwd. ¿Se puede utilizar una shell diferente (p.e. ksh) para el usuario "linux"? Sin problema, sólo añade "+linux::::::/bin/ksh" (sin las comillas) a tu /etc/passwd. Los campos que no quieras cambiar los dejas vacios. También podrías utilizar Grupos de red para el control de usuarios.

Por ejemplo, para permitir sólo el acceso (login) a los usuarios miquels, dth y ed, y a todos los miembros del grupo de red sysadmin, pero para tener la cuante del resto de usuarios disponible utilize:

+miquels:::::::
+ed:::::::
+dth:::::::
+@sysadmins:::::::
-ftp
+:*::::::/etc/NoShell

Fijate que en Linux también puedes olvidarte del campo de la contraseña, cuando se escribió este ejemplo. También quitamos el "ftp" del login, por lo que ya no es conocido, y los ftp anónimos no tabajarán.

  1. configure yp.conf con tu dirección ip delnisdomainserver


Para completar la instalación, tienes que modificar tu /etc/nsswitch.conf para agregar nis como apoyo para la autentificación.

Cambia: <pre> passwd: compat shadow: compat group: compat netgroup: files </pre>

por:

<pre> passwd: compat nis shadow: compat nis group: compat nis netgroup: files nis </pre>

[editar] Algunos comentarios

Te puedes encontrar que no apaga correctamente el equipo utilizando NIS con udev. También puedes tener un problema con el inicio (iniciar portmap le cuesta mucho mucho tiempo). La solución proviene del bug #42139. Tienes que impedirle a net.lo que se detenga, p.e. agregando la línea "return 0" en /etc/init.d/net.lo justo en el inicio de la función iface_stop().

<pre> iface_stop() {

       return 0
       ...

</pre>

[editar] Servidor

Estas instrucciones són para preparar el YP master.

[editar] Instalando las herramientas

emerge yp-tools ypserv

[editar] Preparando los mapas

[editar] Master

Entra en el directorio /var/yp, y edite Makefile. Localiza la regla "all:", y comentalo todo menos los mapas que necesites. Si estás autentificando a los usuarios, entonces todo los que necesitas es

all: passwd group shadow

Si no quieres generar la información YP en los propios archivos del servidor en /etc, cambia YPSRCDIR y YPPWDDIR a un directorio en el que quieras almacenar dichos archivos, p. e. /var/yp/ypfiles. Copia los archivos pertinentes en ese directorio. Si tu sistema no poses un archivo gshadow, necesitará crear uno en blanco:

touch /etc/gshadow

Ejecutar ypinit

/usr/lib/yp/ypinit -m

Iniciar el servidor YP y añadirlo al runlevel por defecto:

/etc/init.d/ypserv start
rc-update add ypserv default

Ahora puede editar y revisar los archivos (en /etc o en el directorio en el que los hayas situado), luego ejecuta make desde el directorio /var/yp para ponerlos al día.

Si estableciste YPSRCDIR y YPPWDDIR anteriormente, entonces edita /etc/conf.d/rpc.yppasswd para incluir la opción -D.

[editar] Esclavo

Ejecuta /usr/lib/yp/ypinit -s master donde master es el hostname donde se encuentra (ya configurado) YP master.