Administración del servidor

Instalar, configurar y utilizar un servidor Linux NIS

El servidor Linux NIS (Servicio de Información de red) es un servidor utilizado para compartir datos críticos almacenados en archivos planos entre sistemas en una red, a menudo es ideal tener un repositorio en común (como NIS) para almacenar información de usuarios y grupos que se almacena tradicionalmente en archivos planos como /etc/passwd.

¿Así que cual es el beneficio de esto?


Al hacer que estos archivos estén disponibles en el servidor NIS permitirá que cualquier maquina cliente remota NIS acceda o consulte los datos en estos archivos compartidos y utilizarlos como extensiones de sus versiones locales.

NIS no está limitado a compartir archivos. Cualquier archivo tabular que tenga al menos una columna con un valor único puede ser compartido a través de NIS como el archivo /etc/services.

El beneficio principal de utilizar el servidor NIS es que mantienes tus datos y archivos de manera centralizada por lo que, si tus datos están actualizados, esto se propagara a todos los usuarios.

Algunos usuarios, especialmente usuarios de windows podrían pensar que este es un servicio parecido a Active Directory, pero el servidor Linux NIS es más antiguo y no una réplica de este.

 

¿Qué es NIS?

NIS es una base de datos que contiene una serie de tablas. Cada tabla es creada de archivos de texto como /etc/passwd, /etc/services y cualesquiera otros archivos tabulares. Cada tabla puede contener una columna o más con una clave única en cada fila.

Puedes imaginártelo como cualquier otra base de datos.

Puedes consultar estas tablas de dos maneras:

  • Listando la tabla entera
  • Sacar un registro en especifico

Cuando un programa realiza una solicitud para buscar los detalles de la contraseña de un usuario, el cliente verifica el archivo /etc/passwd para ver si el usuario no existe allí; el cliente le pide al servidor NIS que lo busque en la tabla /etc/passwd del servidor NIS.

La siguiente lista es la lista de servicios y herramientas que utiliza el servidor NIS:

ypserv: este servicio espera consultas y da respuestas a clientes NIS.

ypbind: este es el lado del cliente de NIS.

ypxfrd: este servicio se utiliza para enviar las bases de datos NIS de servidores maestros MIS a servidores esclavos.

 


Servidores Linux NIS

Los tipos de servidores NIS de Linux son:

  • Servidor maestro: donde se almacenan todos los archivos originales.
  • Servidor esclavo (secundario): se usa para equilibrar la carga y es útil en caso de algún fallo del servidor maestro.

Puedes tener múltiples servidores NIS secundarios si lo necesitas.

Los servidores NIS primario y secundario se mantienen sincronizados y actualizados. Este proceso se llama servidor de inserción.

 


Nombre de dominio NIS

Los dominios NIS son como los dominios de un controlador de dominio en Windows, pero la diferencia es que el cliente puede unirse a la red sin tener que esperar la aceptación del administrador.

Ten en cuenta que los nombres utilizados para los nombres de dominio NIS DEBEN ser diferentes de los nombres de dominio de tu DNS.

 


Instalación del Servidor Linux NIS Master

En las distribuciones basadas en Red Hat, puedes instalarlo así:

$ dnf -y install ypserv

En las distribuciones basadas en Debian, puedes instalarlo de esta manera:

$ apt-get -y install nis

Después de una instalación exitosa, debes establecer el nombre de dominio NIS utilizando el comando domainname.

Vamos a llamarlo nis.example.com

$ domainname nis.example.com

Para mantener nuestro nombre de dominio NIS en distribuciones basadas en Red Hat, podemos crear una variable llamada NISDOMAIN en el archivo /etc /sysconfig /network.

Por otro lado, en distribuciones basadas en Debian, puedes lograr el mismo resultado agregando el comando domainname con el valor correcto a uno de los scripts rc que se ejecutan en el momento del inicio.

 

Configurando NIS

Como mencionamos anteriormente, ypserv espera consultas y da respuestas a clientes NIS.

NIS es un servicio RPC, por lo que debes asegurarte de que el programa rpcbind esté en funcionamiento antes de intentar iniciar el servidor NIS de Linux.

En las nuevas distribuciones de Linux que dependen de systemd como administrador de servicios, systemd se encargará automáticamente de las interdependencias de servicios que existen entre rpcbind e ypserv.

Si tu distribución no es una de ellas, puedes iniciar rpcbind de la siguiente manera:

$ systemctl start rpcbind

En nuestra distribución que tiene systemd, podemos iniciar el servicio de esta manera:

$ systemctl start ypserv

Para confirmar que el servicio se está ejecutando, puedes utilizar el comando rpcinfo.

$ rpcinfo -p | grep ypserv

 


Editando el archivo Makefile

El comando make es responsable de preparar la lista de archivos que necesitan compilación y el programa necesario para la compilación de cada uno de ellos.

El comando make compila un archivo llamado Makefile.

Llevar este concepto al funcionamiento en NIS es sencillo. En este caso, una serie de archivos de texto deben convertirse a formato de base de datos. Queremos una herramienta que vuelva a convertir los archivos que se hayan cambiado, podemos utilizar el comando make.

El Makefile está en el directorio /var/yp. Este archivo contiene todos los archivos compartidos por el servidor NIS.

Hablemos de las opciones en el Makefile.

Opción NOPUSH

Si planeas tener servidores esclavos NIS, tendrás que decirle al servidor Linux NIS maestro que envíe los mapas resultantes a los servidores esclavos. Cambia la variable NOPUSH a falso si desea tener soporte para servidores esclavos.

NOPUSH=true

Ten en cuenta que debes enumerar los nombres del host de tus servidores esclavos en el archivo /var/yp/ypservers y asegurarte de incluir una entrada correspondiente en el archivo /etc/hosts.

Min UIDs GIDs

Cada usuario en Linux tiene una identificación de usuario y una identificación de grupo, puedes obtener tu identificación escribiendo el comando id y el comando gid respectivamente.

Puedes establecer los permisos mínimos para los archivos que se compartirán a través de NIS usando MINUID y MINGID de esta manera:

Fusionando contraseñas ocultas con personas reales

El servidor Linux NIS se puede utilizar para autenticar a usuarios, el servidor NIS tomará automáticamente el campo cifrado del archivo /etc/shadow y lo fusionará en la copia compartida de /etc/passwd de NIS.

Esto se hace usando la opción MERGE_PASSWD:

MERGE_PASSWD=true

Fusión de contraseñas de grupo con reales

El archivo /etc/group permite que las contraseñas se apliquen a la configuración del grupo. Debido a que el archivo /etc/group necesita ser legible públicamente, la mayoría de las distribuciones han aceptado los archivos del grupo de shadow /etc/gshadow.

La opción se llama MERGE_GROUP:

MERGE_GROUP=true

Entradas compartidas

En el Makefile, hay una opción que especifica qué se comparte, es la opción (all)

all: passwd group hosts services shadow networks

La opción YPPWDDIR especifica la ubicación de los archivos passwd, group y shadow, por lo que no necesita escribir la ruta completa.

 


Inicializar el servidor NIS con ypinit

Una vez que hayas terminado de editar las opciones en Makefile, puedes inicializar el servidor NIS así:

$ /usr/lib64/yp/ypinit -m

La opción -m se usa para inicializar el servidor como servidor maestro.

O si estás utilizando un sistema de 32 bits, el comando será:

$ /usr/lib/yp/ypinit

Esta herramienta te preguntará acerca de los servidores NIS secundarios si tienes alguno.

Estas entradas se almacenarán en el archivo /var/yp/ypservers.

Felicidades, ahora tu servidor NIS debería funcionar bien y tu mapa debería estar en los servidores secundarios si tienes alguno.

 

Configuración del cliente NIS

En distribuciones basadas en Red Hat, puedes instalar el cliente NIS de la siguiente forma:

$ dnf -y install ypbind

En distribuciones basadas en Debian, se instala así:

$ apt-get install nis

El archivo /etc/yp.conf es la configuración del demonio del lado del cliente.

A continuación, puedes iniciar ypbind:


 

El archivo /etc/nsswitch.conf

Este archivo contiene entradas de las instalaciones y sus respectivos archivos y servicios que el Sistema utilizara para la búsqueda.

passwd:               files nis

Esta entrada significa que las solicitudes de búsqueda de contraseñas se hagan en el archivo /etc/passwd. Si la entrada solicitada no se encuentras, revisara el servidor NIS.

 

Herramientas NIS

Para trabajar mejor con el servidor Linux NIS, hay algunas herramientas utilices que te puede ayudar a administrar la información de la base de datos.

ypcat: esta herramienta es utilizada para obtener datos del servidor NIS al extraerlos del mapa NIS.

ypwhich: obtiene el nombre del servidor Linux NIS que está respondiendo a tus peticiones.

ypmatch: en vez de obtener el mapa entero, puedes buscar por una clave para obtener una entrada en específico.

Espero que hayas encontrado esta publicación útil e interesante. Espero vuelvas pronto.

Gracias.

Mokhtar Ebrahim
Estoy trabajando como administrador de sistemas Linux desde 2010. Soy responsable de mantener, proteger y solucionar problemas de servidores Linux para múltiples clientes de todo el mundo. Me encanta escribir guiones de shell y Python para automatizar mi trabajo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *