Upload
hadang
View
216
Download
2
Embed Size (px)
Citation preview
������� ������
�����������
�����������
���������������������
���������
����������� ���
��������
����������� ���
�����������
�����������
���������������������
���������
����������� ���
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
������
��������
�����������
�����������
���������������������
���������
���������������������
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.
������
��������
�����������
�����������
���������������������
���������
����������� ���
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.
���
���
�����������
�����������
���������������������
���������
����������� ������
���
�����������
�����������
���������������������
���������
����������� ���
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
���
���
�����������
�����������
���������������������
���������
����������� ���
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
���
���
�����������
�����������
���������������������
���������
����������� ���
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
���
���
�����������
�����������
���������������������
���������
����������� ���
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
��������
��������
�����������
�����������
���������������������
���������
����������� ���
� 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.
��������
��������
�����������
�����������
���������������������
���������
����������� ���
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
�����������
�����������
���������������������
���������
����������� ���
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
��������
��������
�����������
�����������
���������������������
���������
����������� ���
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.
��������
��������
�����������
�����������
���������������������
���������
�� �
���������������������� ������������
���
�����������
�����������
���������������������
���������
���������������������� ������������
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���
�����������
�����������
���������������������
���������
���������������������� ������������
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)
�����������
���
�����������
�����������
���������������������
���������
���������������������� ������������
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
�����������
�����������
���������������������
���������
���������������������� ������������
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:
�����������
�����������
���������������������
���������
���������������������� ������������
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:
�����������
�����������
���������������������
���������
���������������������� ������������
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 %%
�����������
�����������
���������������������
���������
���������������������� ������������
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)
�����������������������
���
�����������
�����������
���������������������
���������
����������� ���
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
�����������
�����������
�����������
�����������
���������������������
���������
����������� ���
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
�����������
�����������
�����������
�����������
���������������������
���������
����������� ���
/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.
�����������
�����������
�����������
�����������
���������������������
���������
����������� ���
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
�����������
�����������
�����������
�����������
���������������������
���������
����������� ���
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
�����������
�����������
�����������
�����������
���������������������
��������� 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, …
������ ���
����������
�����������
�����������
�����������
���������������������
���������
������ ���
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
����
����������
�����������
�����������
���������������������
���������
������������������
� 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
������� ������