Configuración NIS
La mayoría de las utilidades asociadas con NIS siguen llevando el prefijo yp debido al nombre anterior del protocolo, "Sun Yellow Pages". Por cuestiones legales relativas a la marca, el servicio pasó a llamarse NIS. NIS permite que una red de máquinas comparta información como usuarios y grupos (el contenido de /etc/passwd y /etc/group, respectivamente), dando a los usuarios derechos en cualquier máquina dentro de un dominio NIS.
NIS funciona de manera similar a DNS al definir dominios donde se distribuye información y permitir que los servidores maestros y esclavos distribuyan información jerárquicamente dentro de un dominio. De hecho, NIS se podría usar en lugar de DNS distribuyendo la información de nombres de dominio encontrada en /etc/hosts, aunque esto rara vez suceda en la práctica. NIS tiene cierta flexibilidad: en principio, cualquier tipo de información puede colocarse en una base de datos NIS (que está en formato DBM, pese a que la herramienta makedbm del paquete de servidor NIS convierte los archivos planos en este formato, generalmente "tras bambalinas ").
También existe un servicio llamado NIS+ con el que se buscó reemplazar a NIS y que incluye el cifrado y la autenticación de datos; sin embargo, NIS+ no es compatible con versiones anteriores de NIS y su uso no es muy extendido.
Para ejecutar cualquiera de las utilidades NIS, es necesario ejecutar el daemon
/sbin/portmap, que convierte los números del programa RPC en números de puerto
del protocolo TCP/IP (o UDP/IP), debido a que los clientes NIS hacen llamadas
RPC. Si bien la mayoría de las distribuciones de Linux inician /sbin/portmap en
sus scripts de inicio, se recomienda verificar si este daemon se está ejecutando
con % ps -ax | grep portmap.
Si no está en ejecución, instale /sbin/portmap e inclúyalo en los scripts de inicio de su sistema.
Utilidades del cliente NIS (daemon ypbind)
Un cliente NIS incluye las herramientas ypbind, ypwhich, ypcat, yppoll y ypmatch. El daemon ypbind se debe ejecutar como raíz y, por lo general, es iniciado como parte de los scripts de inicio del sistema (si bien esto no es obligatorio).
Las otras herramientas están basadas en los servicios de ypbind, pero se ejecutan a nivel de usuario. La versión anterior de ypbind difundía una solicitud de enlace en la red local; sin embargo, esto permite que un servidor NIS malicioso responda la solicitud y proporcione a los clientes información de usuario y de grupo errónea. Es preferible configurar servidores específicos para que ypbind se conecte antes que usar el archivo /etc/yp.conf. Si se configuran múltiples servidores (o si se usa la difusión a pesar del peligro), ypbind puede cambiar los servidores enlazados cada 15 minutos según cuál de ellos puede responder más rápidamente. Estos servidores deberían estar organizados en una configuración maestro/esclavo, pero el cliente no tiene que conocer este dato ni preocuparse por él. Por ejemplo, la configuración ypbind puede tener el siguiente aspecto:
Listado 3. /etc/yp.conf
ypserver 192.168.2.1 ypserver 192.168.2.2 ypserver 192.168.1.100 ypserver 192.168.2.200 |
Antes que se ejecute /usr/sbin/ypbind, es necesario establecer el nombre de
dominio NIS de la red, que puede ser cualquier nombre que se elija para el
servidor NIS y que, por lo general, debería ser diferente del nombre de dominio
DNS. Establezca el nombre de dominio NIS usando (incluya el nombre real): % ypdomainname my.nis.domain.
Utilidades del cliente NIS (otra configuración)
Si desea usar NIS como parte de la búsqueda del nombre de dominio, debe modificar /etc/host.conf de manera que incluya NIS en el orden de búsqueda; por ejemplo, buscar un nombre en primer lugar en /etc/hosts, luego en NIS y, por último, en DNS:
Listado 4. Modificación del orden de búsqueda
% cat /etc/host.conf order hosts,nis,bind |
Para habilitar usuarios distribuidos NIS, modifique el archivo /etc/passwd del
cliente de manera que incluya +::::::.
La información de base de datos NIS actúa como una plantilla para los intentos de inicio de sesión con este patrón "sin rellenar". Es posible ajustar la información de usuario si así lo desea; por ejemplo:
Listado 5. /etc/passwd detallado
+user1:::::::+user2:::::::+user3:::::::+@sysadmins:::::::-ftp+:*::::::/etc/NoShell |
De esta manera, solo se permite el acceso a user1, user2 y user3, así como a
todos los miembros del netgroup sysadmin, pero se proporcionan los datos de
cuenta de todos los otros usuarios de la base de datos NIS.
Las fuentes NIS se configuran en /etc/nsswitch.conf. El nombre podría indicar que
se hace referencia estricta a una búsqueda de servidor de nombres cuando, en
realidad, se describen diversos tipos de información. Básicamente, esta
configuración describe el orden en que se busca en las fuentes de información.
El nombre nis significa información obtenida en un
servidor NIS; el nombre files implica usar un archivo
de configuración local apropiado. El nombre dns se usa
para la opción hosts.
Además, es posible especificar qué hacer si una fuente inicial no contiene la
información deseada: return implica abandonar (y a
menos que NIS no responda en absoluto, continue implica
buscar el dato en la siguiente fuente). Por ejemplo:
Listado 6. /etc/nsswitch.conf
passwd: compat group: compat shadow: compat hosts: dns [!UNAVAIL=return] files networks: nis [NOTFOUND=return] files ethers: nis [NOTFOUND=continue] files protocols: nis [NOTFOUND=return] files rpc: nis [NOTFOUND=return] files services: nis [NOTFOUND=return] files |
Utilidades de usuario del cliente NIS
Las utilidades ypwhich, ypcat, yppoll y ypmatch se usan a nivel de usuario para consultar información sobre NIS:
- ypwhich imprime el nombre de un servidor NIS.
- ypcat imprime los valores de todas las claves de una base de datos NIS.
- yppoll imprime la versión y el servidor maestro de un mapa NIS.
- ypmatch imprime los valores de una o más claves de un mapa NIS.
Consulte las páginas man correspondientes a la utilidad en cuestión para obtener más información acerca de su uso.
Utilidades del servidor NIS (ypinit, ypserv)
El servidor NIS usa el daemon ypserv para proporcionar bases de datos NIS a los
clientes y se configura en el archivo /etc/ypserv.conf. Como se mencionó
anteriormente, es posible ejecutar los servidores NIS maestro y esclavo dentro
de un dominio. El conjunto de bases de datos NIS se inicializa en un servidor
maestro usando (solo la primera vez que se ejecuta; luego use make -C /var/yp): % /usr/lib/yp/ypinit
-m.
Un servidor esclavo no es sino un cliente NIS que obtiene sus bases de datos del
servidor maestro (y ejecuta ypserv). Para copiar la información del servidor
maestro en el servidor esclavo que se ejecuta localmente, use % /usr/lib/yp/ypinit -s my.nist.domain.
En el servidor maestro, las bases de datos NIS se generan a partir de información incluida en (algunos de) los siguientes archivos de configuración:
- /etc/passwd,
- /etc/group,
- /etc/hosts,
- /etc/networks,
- /etc/services,
- /etc/protocols,
- /etc/netgroup,
- /etc/rpc.
Las bases de datos que se exportan son configuradas en /var/yp/Makefile, que también propaga los cambios al momento de su regeneración.
Los servidores esclavos recibirán una notificación de cualquier cambio que se produzca en los mapas NIS al momento de su regeneración (a través del programa yppush) y automáticamente recuperarán los cambios necesarios para poder sincronizar sus bases de datos. Los clientes NIS no necesitan hacer esto ya que se comunican continuamente con el servidor NIS para leer la información almacenada en sus bases de datos DBM.