#4sysadmins

Inicio » GNU/Linux » Instalar y Configurar servidor NIS

Instalar y Configurar servidor NIS

Últimas Entradas

Follow #4sysadmins on WordPress.com

NIS (Network Information System) es un protocolo de servicios de directorio que nos permite gestionar de una forma distribuida archivos de configuración de sistemas tales como nombres de usuarios y máquinas, contraseñas, etc…

NIS requiere para poder ejecutarse que el servicio portmapper esté instalado y ejecutándose. Para comprobarlo ejecutaremos el siguiente comando:

$ sudo rpcinfo
 program    version    netid    address    service    owner
 100000         4           tcp6     ::.0.111    portmapper    superuser
 100000         3           tcp6     ::.0.111    portmapper superuser
 100000         4           udp6    ::.0.111    portmapper superuser
 100000         3           udp6    ::.0.111    portmapper superuser
 100000         4           tcp       0.0.0.0.0.111 portmapper superuser

Si no hemos tenido respuesta deberemos entonces de instalarlo (normalmente este paquete se instala cuando se instala NFS):

$ sudo apt-get install rpcbind

Y lo iniciamos:

$ sudo service rpcbind start

 

 Instalar servidor NIS

El sistema NIS conocido antiguamente como YP (Yellow Pages) está formado por los programas ypbind e yp-tools en el cliente e ypserv en el servidor.

Para instalar NIS simplemente instalamos mediante nuestro gestor de paquetes el paquete nis. Este paquete contiene al demonio nis y el cliente, por lo que será el que instalaremos tanto en el servidor NIS como en los clientes que conecten a él:

$ sudo apt-get install nis

Nota: En entornos Red Hat instalaremos NIS tal que así: $ yum -y install ypserv rpcbind ypbind yptools

Durante la instalación quizás nos aparezca la siguiente pantalla en la que se configura el nombre de dominio NIS, de lo contrario deberemos de editar su archivo de configuración (/etc/defaultdomain) una vez instalado el servicio y añadir una línea con el nombre descriptivo (LiMinCinn, en este ejemplo):

nis

Nota: En nuestro ejemplo “LiMinCinn” es el dominio al que añadiremos cada uno de los host (clientes NIS) que quieran compartir la base de datos de usuarios, grupos y credenciales, para acceder por ejemplo a un directorio NFS de la red.

Otra forma distinta para modificar el nombre de dominio NIS es mediante el siguiente comando:

$ sudo ypdomainname <nombre-dominio-nis>

Podemos consultar el nombre de dominio establecido mediante:

$ ypdomainname

Ahora ya tenemos NIS instalado en el servidor y su nombre de dominio configurado, vamos a ver en que directorio y con que archivos y servicios trabaja.

 

Configurar servidor NIS

El servicio NIS trabaja con ypserv en el servidor y con ypbind e yp-tools en el cliente (recordar que el paquete de instalación es el mismo para ambas partes).

Directorios de trabajo y archivos de configuración NIS

NIS trabaja sobre el directorio /var/yp, en él encontraremos los siguientes archivos (una vez el sistema este totalmente configurado y sea funcional):

  • Directorio de dominio:
    Existirá un directorio para cada dominio NIS que configuremos en el servidor. Dentro de este directorio se encuentran las BBDD de usuarios, contraseñas, grupos, etc… pertenecientes al dominio.
  • Archivo Makefile: Encargado de crear los archivos de mapas y ficheros de configuración para el servidor NIS. Algunos de los parámetros mas importantes a configurar en este archivo son los uid y gid iniciales para los usuarios NIS. Por ejemplo, si seteamos los parámetros MINUID=1500 y MINGID=1500, el sistema entenderá que todo usuario/grupo creado por encima de 1500 serán usuarios o grupos NIS.
  • Securenets: En este archivo definimos los hosts que podrán conectar con el servidor NIS. Existe una línea por cada entrada de red/hosts y su sintaxis es:
    <máscara de red>     <ip/red>
    Por ejemplo:
    255.255.255.0           10.128.27.0
  • ypservers: Este archivo contiene el hostname o ip del servidor NIS
  • /etc/ypserv.conf: Archivo de configuración del servicio NIS
  • /etc/default/nis (Debian) o /etc/sysconfig/network (Red Hat): Archivo de configuración principal del servidor NIS.
  • /etc/nsswitch.conf: Este archivo es propio del sistema y en él se configura la manera o el orden de búsqueda de hosts, usuarios, grupos, redes, etc… Es necesario modificar ciertas entradas de este archivo para que el sistema localice a los usuarios/grupos NIS.
  • /etc/hosts: Como ya sabremos, el sistema utiliza este archivo para resolver nombres de hosts. Será necesario que el servidor cuente con una entrada para cada cliente NIS que se conecte a él. De la misma forma, el cliente deberá de tener una entrada para cada servidor NIS al que conecte.

 

Configurar servidor NIS

1) Configurar los archivos propios del sistema:

$ sudo vi /etc/hosts
127.0.0.1 localhost
127.0.1.1 LiMinCinn
# Clientes NIS
192.168.1.135 apolo
192.168.1.112 helios
192.168.1.126 andromeda
$ sudo vi /etc/nsswitch.conf
passwd: files nis
shadow: files nis
group: files nis
passwd: compat
group: compat
netgroup: files nis
automount: files nis
$ sudo vi /etc/default/nis (Debian):
NISSERVER=true
NISCLIENT=false
YPPWDDIR=/etc
NISMASTER=true
$ sudo vi /etc/sysconfig/network (Red Hat):
Añadimos esto en la última línea
NISDOMAIN=<nombre_dominio>

Nota: Recomiendo siempre crear una copia de seguridad de estos archivos antes de ser modificados

2) Editar los archivos de NIS

$ sudo vi /var/yp/securenets
host 127.0.0.1
255.255.255.0 192.168.1.0
sudo vi /var/yp/Makefile
MINUID=5000
MINGID=5000
MAXUID=5500
MAXGID=5500
MERGE_PASSWD=false
MERGE_GROUP=false
all: passwd shadow group hosts rpc services netid protocols

 

Crear usuario NIS

Ahora vamos a crear un usuario para el servidor NIS. En una entrada anterior vimos como compartir un directorio bajo NFS para que el resto de servidores de la red pudiesen acceder a él. El usuario y grupo propietario de este directorio será el usuario que vamos a crear a continuación, de forma que todos los hosts de la red que quieran acceder a este recurso deberán de tener un cliente NIS cuya BBDD tenga registrado a este usuario.

$ sudo groupadd -gid 5001 nispro 
$ sudo adduser -d /directorio/compartido -uid 5001 -gid 5001 nispro

Nota: Como veis hemos utilizado los ID y GID dentro del rango especificado en Makefile.

 

Iniciar servicios NIS

$ sudo service rpcbind start
$ sudo service ypserv start
$ sudo service ypxfrd start
$ sudo service yppasswdd start
$ sudo chkconfig rpcbind on
$ sudo  chkconfig ypserv on
$ sudo chkconfig ypxfrd on
$ sudo chkconfig yppasswdd on

 

Creando archivos de mapas para el dominio NIS

$ sudo /usr/lib64/yp/ypinit -m

Se nos pedirá que introduzcamos todos los servidores NIS de nuestra red. Luego pulsar Ctrl + D y confirmar con Enter

Actualizamos la bbdd:

$ cd /var/yp; make

 

Comandos útiles

Existen diferentes comandos que utilizaremos a lo largo de nuestra configuración y administración de NIS, algunos de ellos son:

  • /usr/lib64/yp/ypinit: Comando para crear el directorio por defecto para nuestro dominio y que compilarán los archivos de claves para los usuarios NIS.
  • ypdomainname : Como ya vimos anteriormente con este comando podemos configurar o visualizar el nombre del dominio NIS
  • yppasswd : Modifica la contraseña de un usuario NIS
  • ypcat : Muestra la tabla de usuarios NIS

 

Configurar un cliente NIS

En Debian el cliente NIS se instala con el mismo comando con el que instalamos el servidor ($ sudo apt-get install nis), en cambio  para Red Hat instalaremos:

$ sudo yum install ypbind rpcbind

Setear el nombre de dominio NIS al que vamos a conectar:

$ sudo ypdomainname <nombredominio>

Indicar que será cliente NIS y no servidor:

$ sudo vi /etc/default/nis (Debian):
NISSERVER=false
NISCLIENT=true
YPPWDDIR=/etc
NISMASTER=false
$ sudo vi /etc/yp.conf
ypserver 192.168.1.100
$ sudo vi /etc/sysconfig/network (Red Hat):
Añadimos esto en la última línea
NISDOMAIN=<nombre_dominio>

Añadir la IP HOSTNAME del servidor NIS al archivo /etc/hosts:

$ sudo vi /etc/hosts
127.0.0.1 localhost
127.0.1.1 Apolo
# Servidor NIS
192.168.1.100 LiMinCinn

Asegurarnos de que el siguiente archivo contiene estas entradas con la siguiente configuración (el resto deberemos de dejarlo tal cual):

$ sudo vi /etc/nsswitch.conf
passwd: compat nis
shadow: compat nis
group: compat nis
netgroup: nis
hosts: files dns nis

Iniciamos el servicio ypbind:

$ sudo service ypbind start

Reiniciamos la máquina

$ sudo shutdown -r now

Comprobaciones extra

Para comprobar que todo funciona correctamente, desde el cliente podemos ejecutar el siguiente comando:

$ sudo ypcat passwd    ## Ver los usuarios NIS
$ sudo ypwich    ## Para ver el servidor NIS al que estamos conectado
$ sudo yppasswd    ## Modificar el password

2 comentarios

  1. Excelente artículo, pero me surge la duda de en qué cosa en concreto se puede implementar. ¿La gestión distribuida de usuarios y contraseñas en qué sentido y para qué? Me sería útil saber un uso concreto. ¡Saludos y buena información!

    Me gusta

    • nebul4ck dice:

      Este servidor NIS lo he montado como consecuencia de tener un NFS. Es decir tengo una red casera con varios ordenadores con Linux. Entonces en vez de utilizar samba, monte un directorio compartido bajo NFS para posteriormente montarlo en el resto de dispositivos. De esta manera trabajo desde ese directorio y los cambios se hacen visibles en el resto de equipos.

      Entonces:

      Cuando montas algo de este tipo, el resto de ordenadores necesitan tener los usuarios, grupos y permisos que existen en ese directorio y sus subdirectorios (de lo contrario, no podríamos acceder al contenido, a menos que cree los usuarios y grupos en cada uno de los distintos equipos).

      Digamos que es una forma de distribuir credenciales en la red.

      Me gusta

Deja un comentario, Gracias!

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: