400 likes | 584 Views
Unit 7 Authentication Services. J. Valenzuela A. Instituto Profesional DUOC UC Semestre 1 - 2012. Objetivo. Comprender los conceptos básicos de autenticación. Comprender los roles de NSS y PAM en la autenticación de usuarios.
E N D
Unit 7AuthenticationServices J. Valenzuela A. Instituto Profesional DUOC UC Semestre 1 - 2012
Objetivo • Comprender los conceptos básicos de autenticación. • Comprender los roles de NSS y PAM en la autenticación de usuarios. • Usar NIS para administrar información y autenticación de usuarios a través de NSS y PAM.
Agenda • Información del usuario y NSS • Autenticación y PAM • Network InformationService(NIS) • Configuración NISmaster servers, slave servers, y clientes. • Pruebas de funcionamiento de NIS
Autenticación de usuarios • Dos tipos de información debe ser siempre provista para cada cuenta de usuario: • Información de la cuenta: UID, shell por defecto, el directorio propio, pertenencia a grupos, entre otra. • Autenticación: Una manera de probar que un nombre de login y una contraseña se corresponden.
Información de cuentas de usuarios • La información básica acerca de las características de las cuentas de usuarios puede ser provista al momento del login. • Esta información incluye el UID de la cuenta, el número GID primario de la cuenta, el directorio propio de la cuenta, el shell por defecto, entre otra. • Originalmente esta información es almacenada como líneas individuales en archivos locales tales como /etc/passwd.
Información de cuentas de usuarios • Las aplicaciones normalmente no manipulan directamente /etc/passwdpara obtener esta información, en vez de eso, ellas usan una librería estándar llamada libc.
NameServiceSwitch • NSS (NameServiceSwitch) es el mecanismo por el cual se permiten configuraciones y extensiones de los servicios de nombres soportados por libc. • Archivos auxiliares de servicios de nombres son instalados como archivos /lib/libnss_service.so.
Name Service Switch • El archivo /etc/nsswitch.confcontrola cuáles servicios de nombres serán usados y que orden para obtener información, por ejemplo la línea: passwd: files nisldap Especifica que la información típicamente almacenada en /etc/passwd, mira primero en archivos locales, luego usa el server NIS, y después el server LDAP.
getent • La utilidad getent es invaluable para chequear la operación de servicios de nombre. • getent puede realizar búsqueda de nombres en alguna de las bases de datos de la librería estándar de C, y puede también proveer un vaciado de la base de datos apropiada a la salida estándar (pantalla). • Algunos ejemplos de uso de getent:
getent [root@localhost ~]# getentpasswdroot root:x:0:0:root:/root:/bin/bash • En este caso se extrae la información desde el archivo de contraseñas local /etc/passwd, en efecto, observar la salida de los comandos: [root@localhost ~]# head -1 /etc/passwd [root@localhost ~]# grep ^root /etc/passwd
getent • Otras formas del comando getent se muestran a continuación: [root@localhost ~]# getentshadowroot [root@localhost ~]# getentpasswd [root@localhost ~]# getentshadow [root@localhost ~]# getent hosts maestroNIS
NIS • NIS (Network InformationService) administrar información del sistema y de las cuentas de usuarios por medio de un servidor central. • NIS es un protocolo basado en Sun RPC, por lo tanto requiere el uso del servicio portmap. • RHEL 5 soporta NIS versión 1 y 2.
NIS • NIS fue la primera base de datos administrativa para sistemas informáticos. Lanzado por Sun en los '80 con el nombre de YellowPages, pero por ser este nombre registrado por British Telecom se cambio a NIS. • NIS proporciona el mismo nivel de control que la copia de archivos.
NIS • Se designa una máquina como servidor maestro NIS. Allí se mantienen como copias autoritativas los archivos de configuración, en el mismo formato y lugar, editándolos con un editor de texto como habitualmente. • Un proceso servidor hace disponibles el contenido de estos archivos hacia la red. • El conjunto de un servidor maestro NIS y sus clientes se denomina un "dominio NIS".
NIS • NIS es un servicio que permite compartir, y así unificar, información en una red local. • El servidor de NIS sincroniza información de las cuentas de usuarios compartiendo información de los archivos locales /etc/passwd, /etc/shadowy /etc/group, para construir un mapa NIS.
NIS • Un archivo de sistema puede dar lugar a varios mapas NIS: el archivo /etc/passwdgenera los mapas passwd.byuid, ordenada por UID, y passwd.byname, ordenada por nombre de usuario. • NIS permite replicar sus mapas en uno o más servidores esclavos. Esto aligera la tarea del servidor maestro y mantiene la red en funcionamiento cuando el servidor maestro no está disponible.
NIS • Cuando se modifican los mapas en el servidor maestro, éstos son empujados hacia los servidores esclavos. • Para el cliente, un servidor esclavo es indistinguible de un servidor maestro. • Los clientes ubican los servidores NIS por difusión. Debe haber un servidor NIS por cada subred. Si no hay servidor NIS activo en una red, los clientes pueden quedar colgados.
NIS • El comando ypset permite apuntar un cliente hacia un servidor específico. • [root@localhost ~]# ypset –d myNIS –h cliente
Configuración de NIS • A continuación se describirá como configurar un servidor NIS maestro, esclavo y el cliente. Para cualquiera de estos servicios es importante considerar los siguientes pasos previos: • Activar el servicio portmap: [root@localhost ~]# serviceportmapstart [root@localhost ~]# chkconfigportmapon
Configuración de NIS • Asegurarse que el archivo /etc/hosts tenga la resolución directa del servidor maestro y los servidores esclavos en caso que también se desee configurar, ejemplo: 172.16.3.78 maestroNIS • Se recomienda también que la entrada a 127.0.0.1 no apunte al nombre servidor maestro, es decir, debe quedar así:127.0.0.1 localhost.localdomainlocalhost
Configurar un Servidor Maestro NIS • Consultar si ypserv está instalado: [root@localhost ~]# rpm –q ypserv • Fijar el nombre del dominio NIS: [root@localhost ~]# nisdomainnamemyNIS • Agregar la línea NISDOMAIN=myNIS en el archivo /etc/sysconfig/network.
Configurar un Servidor Maestro NIS • Especificar las redes que puede usar el servidor maestro en el archivo /var/yp/securenets: [root@localhost ~]# vi /var/yp/securenets 255.255.255.255 maestroNIS 255.255.255.0 172.16.3.0 • Iniciar el servicio ypserv: [root@localhost ~]# chkconfigypservon [root@localhost ~]# serviceypservstart
Configurar un Servidor Maestro NIS • Muchas configuraciones simples de NIS solo comparten información de passwd, shadow, group y hosts. Existe una gran cantidad de otros recursos que pueden ser compartidos, pero ellos a menudo no son necesarios en los clientes. • El archivo /var/yp/Makefilecontrola como los mapas NIS son construidos desde los archivos locales.
Configurar un Servidor Maestro NIS • Se puede limitar cuales mapas NIS sean construidos editando la etiqueta all en este archivo: [root@localhost ~]# vi /var/yp/Makefile all: passwdshadowgroup hosts netid • Existen también en este archivo otras variables (o macros) que es necesario fijar: NOPUSH=true
Configurar un Servidor Maestro NIS MERGE_PASSWD=true MERGE_GROUP=false • NOPUSH debería ser fijada a true si no existen servidores esclavos, debería ser fijada a false si hay servidores esclavos. • Una vez /var/yp/Makefileha sido editado, construir los mapas NIS ejecutando en el servidor maestro: • [root@localhost ~]# /usr/lib/yp/ypinit –m
Configurar un Servidor Maestro NIS • Esta última orden almacenará los mapas NIS como archivos Berkeley DB en /var/yp/myNIS. • Si se desea permitir que los usuarios puedan cambiar contraseñas NIS, se debe iniciar el servicio yppasswdd: [root@localhost ~]# chkconfigyppasswddon [root@localhost ~]# serviceyppasswddstart
Configurar un Servidor Esclavo NIS • Siempre es útil tener un segundo servidor de un servicio por si el servidor maestro falla. • El servidor esclavo se configura prácticamente igual que el maestro, con un par de excepciones: • En el archivo /etc/rc.confno se activa el demonio rpc.yppasswdd. • Al lanzar el servicio, la opción del comando ypinit será -s, lo que indica que actuará como esclavo (slave).
Configurar un Servidor Esclavo NIS • En el servidor maestro NIS incluir los nombres de todos los servidores esclavos NIS en el archivo /var/yp/ypservers: [root@localhost ~]# vi /var/yp/ypservers • Sobre el esclavo, transferir el mapa NIS inicial desde el servidor maestro: [root@localhost ~]# /usr/lib/yp/ypinit –s maestroNIS
Configurar un Servidor Esclavo NIS • Para reconstruir y empujar los mapas NIS desde el servidor maestro a los servidores esclavos, sobre el servidor maestro ejecutar: [root@localhost ~]# cd /var/yp; make • Esto reconstruye los archivos BD de los mapas NIS y ejecuta yppush para empujar los cambios a TODOS los servidores esclavos.
Configurar un Servidor Esclavo NIS • También es posible ejecutar el comando ypxfr en el servidor esclavo para obtener los mapas desde el servidor maestro. • Un servicio opcional en el servidor maestro, rpc.ypxfrd, puede ser utilizado para acelerar las transferencias de ypxfr. [root@localhost~]#serviceypxfrdrestart
Configuración del cliente NIS • En la máquina cliente ejecutar el programa system-config-authentication: [root@localhost~]#system-config-authentication Aquí se podrá habilitar NIS, especificar el nombre del dominio NIS y el server NIS.
Configuración del cliente NIS • La opción Habilitar Soporte NIS permite configurar el sistema para conectarse a un servidor NIS (como un cliente NIS) para la autentificación de usuarios y contraseñas. • Hacer click en el botón Configurar NIS... para especificar el dominio NIS y el servidor NIS. • Si no se especifica el servidor NIS, el demonio intentará buscarlo vía difusión (broadcast).
Funcionamiento de NIS • Se crea un directorio con el nombre del dominio NIS en /var/yp. Los mapas NIS están contenidos habitualmente en este directorio. • Cada mapa NIS comprende dos archivos, uno de extensión .diry el otro de extensión .pag. Por ejemplo, en el dominio myNIS los archivos ndbm para /etc/passwd en /var/yp/myNIS/ serían: passwd.byname.dir, passwd.byname.pag, passwd.byuid.dir, passwd.byuid.pag.
Funcionamiento de NIS • Un mapa especial, ypservers, es construido automáticamente al implantarse el dominio; sirve para conocer los servidores esclavos a los que deben distribuirse los mapas.
Ventajas/desventajas de NIS • NIS es entendible por humanos: se siguen editando los mismos viejos archivos, sólo hay que aprender unos comandos nuevos, no se requiere conocer la estructura interna de los mapas NIS. • NIS no admite enlace de dominios: una red grande puede dividirse en dominios, pero cada uno debe ser administrado separadamente.
Ventajas/desventajas de NIS • NIS consume un cierto ancho de banda: no tiene capacidad de cache, toda consulta debe realizarse a un servidor; los mapas modificados deben distribuirse. • Un servidor esclavo NIS fuera de servicio puede perder una actualización; debe implementarse una rutina de control de actualización; aún así, dos versiones diferentes de un mapa pueden estar siendo servidas al mismo tiempo, con los clientes viendo una u otra aleatoriamente.
Ventajas/desventajas de NIS • NIS no es seguro: cualquier máquina puede manifestarse como servidor de un dominio, cualquier usuario puede leer los mapas NIS, la información se distribuye NO encriptada por la red.