31

 · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

  • Upload
    hadang

  • View
    216

  • Download
    2

Embed Size (px)

Citation preview

Page 1:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

������� ������

Page 2:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

����������� ���

��������

����������� ���

Page 3:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

����������� ���

Cuenta de usuario: Información que define, para el sistema, al usuario. 3 tipos de usuario: root, especiales y normales.

Grupos: Conjunto de usuarios que comparten permisos o derechos.

Acciones sobre usuarios: Añadir, eliminar, activar, desactivar y modificar.

Acciones sobre grupos: Crear, eliminar, añadir y eliminar usuarios.

Buenas prácticas para contraseñas seguras a los usuarios� Contraseñas compuestas por mínimo de 8 caracteres ASCII que

incluyan: signos de puntuación y caracteres alfanuméricos. No es bueno que sean palabras que formen parte del diccionario.

� No repetir contraseñas para un mismo usuario a lo largo de su vida� Vigencia mínima y máxima� Directiva de bloqueo de contraseña ante un umbral de intentos

������

��������

Page 4:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

���������������������

Usuarios normales:

Información relevante sobre los usuarios: shell de trabajo, directorio home, UID y GID.Suele almacenarse en /etc/passwd

nombre:clave:UID:GID:info:home_dir:shell/etc/shadow� Sólo visible por root� Guarda contraseñas de usuario

nombre:clave:dias_cambio:min_cambio:max_cambio:dias_aviso:dias_inhabilitar:tiempo_inhabilitar:reser.

������

��������

Page 5:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

����������� ���

Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin necesidad de recompilar los programas de autentificaciónSe definen 4 tipos de módulos� Auth: autenticación del usuario mediante un método y le

proporciona privilegios.� Account: comprueba que el usuario tiene permisos para

usar el servicio o si éste está permitido (por control horario, pe.).

� Passwd: para actualizar el mecanismo de autenticación.� Session: para indicar acciones que se deben ejecutar

antes o después del acceso del usuario.

���

���

Page 6:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

����������� ������

���

Page 7:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

����������� ���

Los módulos pueden apilarse.Servicio: nombre del programa utilizado para acceder al servicio Configuración� /etc/pam.d� Cada servicio tiene su propio fichero en

/etc/pam.d� La sintaxis es:

• Tipo de módulo flag de control path del módulo argumentos

���

���

Page 8:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

����������� ���

Flag de control: Indica cómo se comporta PAM ante un fallo en las condiciones del módulo. El mecanismo simple:

• Required: éxito obligatorio, aunque se consultarán otros módulos si hay fallo.• Requisite: se devuelve fallo sin consultar otros módulos.• Suffcient: éxito es suficiente para el éxito de la autentificación, sino existe un fallo anterior.• Optional: módulos opcionales.

Ejemplo ssh:• auth sufficient pam_pwdb.so debug likeauth nullok shadow• auth sufficient pam_ldap.so use_first_pass• auth required pam_deny.so• auth requisite pam_securetty.so• password sufficient pam_pwdb.so use_authtok nullok md5 shadow• password sufficient pam_ldap.so use_authtok• account sufficient pam_pwdb.so• account sufficient pam_ldap.so• account required pam_deny.so• account required pam_access.so• password sufficient pam_pwdb.so use_authtok nullok md5 shadow• password sufficient pam_ldap.so use_authtok• password required pam_deny.so• session optional pam_mkhomedir.so skel=/etc/skel umask=0077• session required pam_pwdb.so• session optional pam_ldap.so

���

���

Page 9:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

����������� ���

Ejemplo login:• auth required pam_issue.so issue=/etc/issue• auth requisite pam_securetty.so• auth requisite pam_nologin.so• auth required pam_env.so• auth sufficient pam_pwdb.so debug likeauth nullok shadow• auth sufficient pam_ldap.so use_first_pass• auth required pam_deny.so• account required pam_access.so• account sufficient pam_pwdb.so• account sufficient pam_ldap.so• account required pam_deny.so• session required pam_pwdb.so• session optional pam_ldap.so• session optional pam_lastlog.so• session optional pam_motd.so• session optional pam_mail.so standard noenv• session optional pam_mkhomedir.so skel=/etc/skel umask=0077• session required pam_tmpdir.so• password sufficient pam_pwdb.so use_authtok nullok md5 shadow• password sufficient pam_ldap.so use_authtok• password required pam_deny.so

���

���

Page 10:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

����������� ���

Necesidad de control administrativo del sistema.Modelo de propiedad de Unix: basados en permisos que se cumplen salvo para root.� Propiedad de ficheros

• Se dispone de usuarios y grupos propietarios. El propietario de un fichero tiene la facultad, que no comparte con nadie, de modificar los permisos del fichero (salvo root) Para ello se dispone, en todos los Unix, del comando chmod.

• El propietario de un fichero sólo puede ser un usuario, mientras que muchos usuarios pueden ser propietarios de grupo de un mismo fichero.

• Sólo root puede cambiar el propietario y grupo de un fichero. Para ello dispone de los comandos chown y chgrp.

• La propiedad de un fichero se consulta con el comando ls y algunas opciones, dependientes del SO:

– ls –l para sistemas ATT (Linux, Iris, Solaris)– ls –lg para sistemas BSD

��������

��������

Page 11:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

����������� ���

� Propiedad de procesos• UID real y efectivo • GID real y efectivo.Los número reales son la identidad verdadera y coinciden con el

UID del usuario que lanza el proceso. Los números reales se usan para la contabilidad y los efectivos para proponer determinados permisos de acceso.

Normalmente los números reales y efectivos son los mismos. (tipo especial de permiso setuid o setgid

• La mayoría de las versiones de Unix (y Solaris, Iris y Linux, la tienen) tienen identificadores de sesión, de procesos de grupo y de auditoría asociados a un terminal.

– Un identificador de sesión se asocia con los procesos conectados a un terminal y se pueden generar que indican “sesión abierta”

– Un identificador de grupo designa a un grupo de procesos que estarán en primer o segundo plano en los sistemas que permiten control de flujo de procesos.

– Un identificador de auditoría indica un hilo de actividad que debe usarse en el proceso de auditoría.

��������

��������

Page 12:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

����������� ���

Root � UID=0Funciones� Puede ejecutar cualquier operación sobre fichero o proceso y

cualquier llamada al sistema.� Inicia y termina sesiones de usuarios� Registra información contable� Administra los dispositivos de E/S� Puede cambiar las credenciales de un proceso, su prioridad,

ejecución,...� … � Controla todo el sistema operativo

Lo que NO puede hacer root:� Cambios en un sistema de archivos de sólo lectura� Desmontar un sistema de archivos con ficheros abiertos� Descifrar contraseñas del /etc/passwd� Parar un proceso que entre en modo de espera en el núcleo

��������

��������

Aunque …:

•Puede hacer cambios directamente sobre los dispositivos o desmontar el F.S. y volver a montarlo en L/E.

•Averiguar los procesos que tienen ficheros abiertos y pararlos, liberando el fichero

•Cambiar las contraseñas de todos los usuarios, además de capturar el teclado

•Parar todo el sistema

Page 13:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

����������� ���

Cómo llegar a ser root� Login� su (registro en /var/log/sulog) � grupo wheel� sudo

# sudoers file.## This file MUST be edited with the 'visudo' command as root.## See the man page for details on how to write a sudoers file.## Host alias specification# User alias specification# Cmnd alias specification# User privilege specificationroot ALL=(ALL) ALLwww-data origin = NOPASSWD: /bin/mount, /bin/umount#wwwadm2 origin = NOPASSWD: /usr/sbin/apache, /bin/mv, /bin/ln,

/bin/rm, /bin/kill, /usr/sbin/namedwwwadm4 origin = NOPASSWD: /bin/chmod, /usr/sbin/named

��������

��������

Page 14:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

����������� ���

El uso de sudo tiene las siguientes ventajas:� Alta contabilidad� Se limita el conocimiento del passwd de root� Es más rápido que usar su� Los privilegios pueden ser revocados sin cambiar la contraseña de

root� Tenemos una lista de todos los usuarios con privilegios de root� Las restricciones de acceso son dependientes del host, un fichero

simple puede ser usado para el control de acceso a una entidad de red

� Los operadores pueden realizar una labor sin la limitación de los privilegios de usuario.

Existen varias desventajas:� Una brecha en la seguridad de la cuenta de usuarios es equivalente

a una brecha en la de root. � Además, la entrada a comandos de sudo puede ser desconocida,

engañándole con ejecuciones del shell como si fuera un programa permitido. Uso sin path absolutos.

��������

��������

Page 15:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

�� �

���������������������� ������������

���

Page 16:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

���������������������� ������������

Definido por un conjunto de especificaciones (RFC´s)� Esp. Originales RFCs 2251-2256

� Métodos de autorización RFC 2829

� Extensión en la seguridad en la capa de transporte RFC 2830

� Especificaciones técnicas RFC 3377

Nace como alternativa “ligera” a X.500� Sobre TCP/IP

� Conjunto de operaciones reducidas

Servicio de directorio � diferencias con DB y FS� Optimizado para lectura � vs bloqueo y transacciones

� Independencia del dispositivo de almacenamiento backend

Protocolo de acceso � diferente a Servidor LDAP y Árbol LDAP� Protocolo cliente/servidor basado en mensajes

� Comunicación asíncrona

����������

Red de Comunicación

Aplicación (DAP)

Presentación

Sesión

Transporte

Red

Enlace

Física

Servidor X.500

Cliente LDAP

Medio Físico

Aplicación (LDAP)

TCP UDP

IP

��������� �

� � ������ �

����������

����������

����������

�����������

�����������

�����������

Datos� �����

Servidor LDAPCliente���

Page 17:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

���������������������� ������������

Representa los servicios que proporciona un Servidor LDAP vistos por el cliente

Se pueden distinguir cuatro modelos:� Modelo de información

• Establece la estructura y tipos de datos (esquemas, entradas, atributos)

• Directorio formado por entradas estructuradas en forma de árbol. Cada entrada está definida por un conjunto de atributos (par nombre y valor) que se define en el esquema

� Modelo de asignación de nombres• Define cómo referenciar de forma única las entradas y los datos

en el árbol de directorios � RDN y DN� Modelo funcional

• El protocolo LDAP � operaciones para acceder al árbol de directorio: autenticación, solicitudes y actualizaciones.

� Modelo de seguridad• Para el cliente, cómo probar su identidad (autenticación)• Para el servidor, cómo controlar el acceso (autorización)

�����������

���

Page 18:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

���������������������� ������������

Entrada� Unidad básica de LDAP equivalente a un nodo del árbol

� Refleja conceptos del mundo real (usuarios, organizaciones, hosts...)

� Definición relativa al nodo padre

� Formada por pares atributo:valor

Atributos� Cada atributo posee unas reglas de sintaxis

� Concepto similar a las variables de programación

� Son multivaluados

� Dos tipos:

� Atributos atómicos (cn, dc, ou, sn)

� Atributos que indican conjunto de atributos (ObjectClass)

Esquemas� Plantillas que definen atributos y configuraciones prototítipicas

(ObjectClass)

����������������������������������

���

���� � ��� � �!

��"���# ��� ��"�$# ����� ������

��� ��% � � ����� �! �����&���' �# (� �)*+),�-,,

$�"$���.$�"��.$�"��

���� �/��� ��

#Ejemplo de archivo LDIF para la entrada de un usuario

dn: cn=Alex García Pérez, ou=profesores, dc=dtic, dc=ua,dc=esobjectclass: topobjectclass: personcn: Alex García Pérezsn: García Pérez telephoneNumber: 96 590 3400

Page 19:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

���������������������� ������������

ObjectClass

� Debe aparecer comomínimo una vez en cadaentrada

� Define los atributosoptativos y obligatoriosque tendrá dicha entrada

� Se pueden conjugar varios en función de las necesidades

� Poseen un identificador único (OID)

����������������������������������

���

���� � ��� � �!

��"���# ��� ��"�$# ����� ������

��� ��% � � ����� �! �����&���' �# (� �)*+),�-,,

$�"$���.$�"��.$�"��

���� �/��� ��

#Ejemplo de archivo LDIF para la entrada de un usuario

dn: cn=Alex García Pérez, ou=profesores, dc=dtic, dc=ua,dc=esobjectclass: topobjectclass: personcn: Alex García Pérezsn: García Pérez telephoneNumber: 96 590 3400

objectClass::person

cn:sn:

userPassword:telephoneNumber:seeAlso:description:

Page 20:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

���������������������� ������������

Puede utilizar DBs como back-storage

Puede dividir el árbol de directorios en subárboles de tal manera que un Servidor LDAP controle cada subárbol por los siguientes casos:� Rendimiento

� Localización Geográfica

� Cuestiones Administrativas

Cada subárbol o rama será referenciada desde el árbol padre � objectClass::referral

Modos de funcionamiento:� El servidor LDAP resuelve la solicitud

� El cliente resuelve

�����������������������

���

server2.dtic.ua.es

��"���# ��� ��"�$# ����� ������

$�"$���.$�"��.$�"��

���� �/��� ��

��� ��% � � ����� �!

���� �/��� ��$�"$���$�"��$�"��

server1.dtic.ua.es

#LDIF para la nueva entrada ou profesores

dn: ou=profesores, dc=dtic, dc=ua,dc=esobjectclass: referralref: ldap://server2.dtic.ua.es/ou=profesores,dc=dtic,dc=ua,dc=es

objectClass::referral

ref:

Page 21:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

���������������������� ������������

Protocolo orientado a la conexión y basado en intercambio de mensajes� Peligro en el trasiego de información

Todas las operaciones se controlan mediante el nivel de autorización del usuario autenticado

Autenticación mediante login y password(encriptación: CRYPT, MD5, SHA, SSHA)

� objectClass::person

�������

���

���� � ��� � �!

��"���# ��� ��"�$# ����� ������

��� ��% � � ����� �! �����&���' �# (� �)*+),�-,,

$�"$���.$�"��.$�"��

���� �/��� ��

#Ejemplo de archivo LDIF para la entrada de un usuario

dn: cn=Alex García Pérez, ou=profesores, dc=dtic, dc=ua,dc=esobjectclass: topobjectclass: personcn: Alex García Pérezsn: García Pérez telephoneNumber: 96 590 3400

objectClass::person

cn:sn:

userPassword:telephoneNumber:seeAlso:description:

userPassword: {MD5}Xr3j2zPw45eeQbdaaQxx

��� ����0 � $��12 +34 �5�!�0 -+��6 ($��6 %%

Page 22:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

���������������������� ������������

Anónima: dn vacío + password� Acceso a información pública

Simple: dn + password

� La información viaja sin codificar (no recomendada)

Simple sobre SSL/TLS: Se negocia una capa de transporte seguro � La información viaja de forma segura

Simple y Capa de Seguridad (SASL)� Módulo configurable que permite negociar previamente el mecanismo de autenticación y la capa de transporte seguro (kerberos, GSSAPI, S/Key, EXTERNAL)

�����������������������

���

Page 23:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

����������� ���

Clásica: base de datos compuesta por los ficheros /etc/passwd, /etc/group y /etc/shadow� /etc/passwd

• Login:contraseña:UID:GID:GECOS:home:shell

� /etc/shadow• Login:contraseña:ult. Cambio:min días cambio:max días cambio:nºdías aviso expiración:nº\

días inactivo:fecha expiración:flags

� /etc/group• Nombre:contraseña:GID:lista usuarios miembro

Utilidades:� Adduser/useradd� Userdel� Groupadd� Groupdel� passwd

�����������

�����������

Page 24:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

����������� ���

LDAP: protocolo ligero del X500 que se estructura en árbol con una base a partir de la cual se define los objetos.PAM + nsswitch (como todos)Lógica necesaria: � PAM LDAP (libpam-ldap)� Nss_ldap (libnss-ldap)

/etc/nsswitch.conf� Passwd:files ldap� Group:files ldap� Shadow:files ldap

�����������

�����������

Page 25:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

����������� ���

/etc/ldap.conf (cliente)/etc/pam.d/Clases (nis.schema):� posixAccount

• Require: cn, uid, uidNumber, gidNumber, homeDirectory• Autorise: userPassword, loginShell, gecos, description

� shadowAccount• Require: uid• Autorise:userPassword, shadowLastChange, shadowMin,

shadowMax, shadowWarning, shadowInactive, shadowExpire, shadowFlag, description

� posixGroup• Require: cn, gidNumber• Autorise:userPassword, memberUid, description.

�����������

�����������

Page 26:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

����������� ���

Definición de usuario:dn: cn=wwwadm, ou=eps, o=ua, c=escn: wwwadmobjectClass: topobjectClass: posixAccountuid: wwwadmuidNumber: 1000gidNumber: 1000homeDirectory: /home/wwwadmuserPassword: {crypt}1FFO5k13sgQRgloginShell: /bin/ksh

�����������

�����������

Page 27:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

����������� ���

Grupo usuarios:dn: cn=usuarios, ou=Groups, ou=eps, o=ua, c=escn: usuariossobjectClass: topobjectClass: posixGroupgidNumber: 500memberUid: wwwadmmemberUid: wwwadm2

Utilidades:� Ldappasswd� Ldapadd� ldapdelete� Ldapmodify� Ldapsearch

�����������

�����������

Page 28:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

��������� Principales características de LDAP:� Autenticación

� Capacidad de almacenamiento de datos

� Carácter distribuido

� Ideal como servidor de autenticación y autorización para otras aplicaciones y mecanismos de Autenticación del tipo AAA (Authentication, Authorization and Accounting).

Ejemplos de este tipo de aplicaciones son:� Sistemas Operativos: Linux (PAM), Windows (pgina),..

� Correo electrónico

� Kerberos

� Radius

� HTTP, FTP, SAMBA, …

������ ���

����������

�����������

Page 29:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

������ ���

Evitar el envío de contraseñas por la red

Cliente y Servidor comparten un secreto con el cual encriptan la información (Password) para autenticarse

Utilizado en ISP y redes inalámbricas

Permite el acceso a recursos de otras redes

Atributos:Valores

Utiliza LDAP de dos formas

� Para autenticar

� Para autenticar y almacenar información de autorización => Se mapean los atributos de Radiuscon los de LDAP => Se encarga el administrador

����

����������

Page 30:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

�����������

�����������

���������������������

���������

������������������

� Una de las principales características de LDAP es la autenticación que junto con la capacidad de almacenamiento de datos y sus características distribuibles le hace ideal como servidor de autenticación y autorización para otras aplicaciones (correo, servidor de archivos...) y mecanismos de Autenticación del tipo AAA (authentication,authorization and Accounting).

� Ejemplos de estos mecanismos AAA son:

• Kerberos

• Radius

����������

�����������������������������������

�������

JPEGJPEG

' ���7�$� �8 �(

� � �����9� (� �� � � �����

� �

Servidor KDC

BD

TGT

JPEGJPEG

Servidor LDAP

��������� ��

� � ����� ����$

JPEGJPEGTicket

JPEGJPEGTicket

� � �������$���

� � �������$���

�������� �

Datos de autenticación

Respuesta de aceptación +

datos de usuario y servicio

Datos a autenticar

Solicitud de autenticación

Datos de autenticación

Aceptación + Datos de acceso

Cliente

� � ������ �

� � ����� ����$

Acceso al recurso

Punto de acceso / NAS

Servidor Radius Servidor LDAP ServidorRadius

Petición de acceso

Page 31:  · Conjunto de librerías que permiten establecer una política, método y funcionamiento de la autentificación (del sistema operativo y de aplicaciones) sin …

������� ������