NIS#
Originalmente NIS se llamaba Páginas Amarillas (Yellow Pages), o YP, que todavía se utiliza para referirse a él. Desafortunadamente, ese nombre es una marca registrada de British Telecom, que exigió a Sun abandonar ese nombre. Sin embargo YP permanece como prefijo en los nombres de la mayoría de las órdenes relacionadas con NIS, como ypserv e ypbind.
DNS sirve un rango limitado de información, siendo la más importante la correspondencia entre el nombre de nodo y la dirección IP. Para otros tipos de información, no existe un servicio especializado así. Por otra parte, si sólo se administra una pequeña LAN sin conectividad a Internet, no parece que merezca la pena configurar DNS. Ésta es la razón por la que Sun desarrolló el Sistema de Información de Red (NIS). NIS proporciona prestaciones de acceso a bases de datos genéricas que pueden utilizarse para distribuir, por ejemplo, la información contenida en los ficheros passwd y groups a todos los nodos de su red. Esto hacee que la red parezca un sistema individual, con las mismas cuentas en todos los nodos. De manera similar, se puede usar NIS para distribuir la información de nombres de nodo contenida en /etc/hosts a todas las máquinas de la red.
Caso práctico: NIS con red NAT y red Interna#
Haz dos clones enlazados de MV Ubuntu Server 26.04 haz que tengan las siguientes IPs:
compute-0-0: (Servidor NIS)
Tarjeta red modo "Red Nat [3] 10.0.2.10/24 utiliza el puerto 2222 del anfitrión"
Tarjeta de red modo "Red interna" : 172.16.0.10/16
compute-0-1 (Cliente NIS)
Tarjeta de red modo "Red interna" : 172.16.0.11/16 (tiene internet a través de compute-0-0)
Cambia el nombre de la maquinas en el archivo /etc/hostname cambia la ip en /etc/netplan/00-installer-config.yaml y revisa /etc/hosts
Para habilitar la conectividad, es necesario que el servidor actúe como router, reenviando el tráfico entre redes. Esto puede configurarse utilizando herramientas como systemd [1] o nftables [2], que permite definir reglas de encaminamiento y NAT.
Configuración del servidor#
Crea los siguientes usuarios y grupos en el servidor compute-0-0
tunombre1 con contraseña alumno dentro del grupo tuapellido
tunombre2 con contraseña alumno dentro del grupo tuapellido
tunombre3 con contraseña alumno dentro del grupo tuapellido
tunombre4 con contraseña alumno dentro del grupo tuapellido
Instala el servidor NIS en el servidor (compute-0-0)
apt-get -y install portmap
#Instalamos dominio servidor.X.nis donde X son las 3 primeras iniciales de tu nombre
apt-get -y install nis
En /etc/hosts añadimos:
<IP> servidor.X.nis
Ejecuta el comando domainname para mostrar o configurar el nombre de dominio de la máquina.
domainname servidor.X.nis
Copia el nombre de su servidor NIS en el archivo /etc/defaultdomain (de aquí lo leerá el servicio ypserv.service que inicia la nis)
# Actualizamos la base de datos y creamos los mapas de la NIS
/usr/sbin/ypserv start
/usr/sbin/rpc.ypxfrd
/usr/lib/yp/ypinit -m
# Comprobamos
rpcinfo -p
En el caso de que no funcione, puedes buscar posibles errores en firewall (iptables -F)
Iniciar el servidor nis :
systemctl enable ypserv.service
systemctl status ypserv.service
Configurar archivo de /etc/hosts, mete a todos los clientes.
Configuración del cliente#
Instala el cliente NIS en el cliente compute-0-1
apt-get -y install nis
Podemos comprobar el nombre del servidor NIS (servidor.X.nis) con el comando nisdomainname o domainname en el caso de que queramos cambiarlo
nisdomainname servidor.X.nis
Copia el nombre de su servidor NIS en el archivo /etc/defaultdomain (de aquí lo leerá el servicio ypbind.service que inicia la nis)
En /etc/nsswitch.conf añadiendo al final de cada línea la palabra "nis".
passwd: files systemd nis
group: files systemd nis
shadow: files nis
En /etc/yp.conf añadimos ypserver <ip_del_servidor_nis>, y añade el servidor al /etc/hosts
Por ultimo lanzamos el servicio ypbind
ypbind
para comprobarlo puedes utilizar el comando:
getent passwd
Para hacer que se cree el directorio de los usuarios de forma automatica marcarlo con el siguiente comando:
sudo pam-auth-update
PAM (Pluggable Authentication Modules) establece una interfaz entre los programas de usuario y distintos métodos de autenticación. De esta forma, el método de autenticación se hace transparente para los programas.
Haz que el cliente NIs se inice como servicios en el arranque del sistema, para ello
systemctl enable ypbind.service
systemctl status ypbind.service
Si diera algún error al conectar, podría ser por el firewall, para borrar las reglas: iptables -F
Con entortno grafico, por ejemplo para el xfce, si queremos que aparezca en la pantalla de inicio en /usr/share/lightdm/lightdm.conf.d/50-greeter-wrapper.conf añadimos greeter-show-manual-login=true y reiniciamos el entorno gráfico sudo service lightdm restart
Notas
Le damos permisos de ejecución:
chmod +x /root/enrutar.sh
Crea un script llamado enrutar.sh y crea un servicio donde se cargue este script para ello edita el archivo
/etc/systemd/system/enrutar.service:[Unit] Description=Inicia enrutamiento After=syslog.target [Service] ExecStart=/root/enrutar.sh User=root [Install] WantedBy=multi-user.target
Habilitamos el servicio y lo inicamos:
systemctl enable enrutar.service systemctl start enrutar.service
Recuerda crear los usuarios en el servidor nis.
Si no lo habías realizado, ejecutamos en el cliente
sudo pam-auth-updatey marcamos que se cree el directorio automáticamente, de esta forma cuando un usuario acceda al cliente (compute-0-1)
nftables
Podemos enrutar con nftables, es el sistema de filtrado de paquetes y firewall del kernel de Linux que permite controlar el tráfico de red (permitir, bloquear, redirigir o modificar paquetes).
apt install nftables
Añandimos en /etc/nftables.conf
table ip nat {
chain postrouting {
type nat hook postrouting priority 100;
oifname "enp0s3" ip saddr 172.16.0.0/16 masquerade
}
}
table ip filter {
chain forward {
type filter hook forward priority 0;
policy drop;
ip saddr 172.16.0.0/16 oifname "enp0s3" accept
ip daddr 172.16.0.0/16 ct state established,related accept
}
}
Para que el servidor enrute tráfico sudo sysctl -w net.ipv4.ip_forward=1
Activamos ip_forward de forma permanente:
echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-router.conf
Habilitamos el servicio y lo iniciamos
systemctl enable nftables
systemctl start nftables
Configuración red NAT
vídeos