Gestión Usuarios

Anuncio
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ón
Se 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.
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
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 ssh:
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.
Aunque
Root …: UID=0
Funciones
•Puede hacer cambios directamente sobre los dispositivos
Puede ejecutar
operación
sobre fichero
o proceso y
o desmontar
el cualquier
F.S. y volver
a montarlo
en L/E.
cualquier llamada al sistema.
•Averiguar
los procesos
tienen ficheros abiertos y
Inicia y termina
sesiones deque
usuarios
pararlos,
fichero
Registraliberando
informaciónelcontable
Administra los dispositivos de E/S
•Cambiar
las contraseñas de todos los usuarios, además
cambiar las credenciales de un proceso, su prioridad,
dePuede
capturar
el teclado
ejecución,...
… todo
Controla
todo el sistema operativo
•Parar
el sistema
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
Cómo llegar a ser root
Login
su (registro en /var/log/sulog)
sudo
grupo wheel
# 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 specification
root ALL=(ALL) ALL
www-data
origin = NOPASSWD: /bin/mount, /bin/umount
#wwwadm2
origin = NOPASSWD: /usr/sbin/apache, /bin/mv, /bin/ln,
/bin/rm, /bin/kill, /usr/sbin/named
wwwadm4
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
Servidor
ClienteX.500
Métodos
de autorización RFC 2829
Servidor LDAP
Extensión en la seguridad en la capa de transporte RFC 2830
Aplicación (DAP)
Especificaciones
técnicas RFC 3377
Datos
Cliente LDAP
Presentación
Nace como alternativa “ligera” a X.500
Sesión
Sobre TCP/IP
Aplicación (LDAP)
Transporte
Conjunto
de operaciones reducidas
Red
Servicio de directorio
TCP
UDP
diferencias con DBIPy FS
Enlace
Optimizado
para lectura
vs bloqueo y transacciones
Independencia
backend
Física del dispositivo de almacenamiento
Medio Físico
Protocolo de acceso
diferente a Servidor LDAP y Árbol LDAP
Red de Comunicación
Protocolo cliente/servidor basado en mensajes
Comunicación asíncrona
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)
#Ejemplo de archivo LDIF para la entrada de un usuario
Entrada
dn: cn=Alex García Pérez, ou=profesores, dc=dtic, dc=ua,dc=es
Unidad básica de LDAP equivalente a un nodo del árbol
objectclass: top
objectclass: person
Refleja conceptos del mundo real (usuarios, organizaciones, hosts...)
cn: Alex García Pérez
sn: García Pérez
Definición relativa al nodo padre
telephoneNumber: 96 590 3400
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:
&
'ou,
# (sn)
)*+),
Atributos
atómicos
(cn, dc,
%
!
-,,
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
ObjectClass
dn: cn=Alex García Pérez, ou=profesores, dc=dtic, dc=ua,dc=es
objectClass::person
objectclass: top
objectclass: person
cn:
cn: Alex García Pérez
sn:
sn: García Pérez
telephoneNumber: 96 590 3400
userPassword:
telephoneNumber:
$ "$ .
$ " .
seeAlso:
$ "
description:
Debe aparecer como
mínimo una vez en cada
entrada
Define los atributos
optativos y obligatorios
/
" #
que tendrá dicha
entrada
" $#
Se pueden conjugar varios en función de las
%
!
necesidades
&
' #(
)*+), -,,
!
Poseen un identificador único (OID)
objectClass::referral
ref:
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:
$ " .
server1.dtic.ua.es
$ "
Rendimiento
#LDIF para
la nueva entrada ou profesores
Localización
Geográfica
dn: ou=profesores,
dc=dtic,
" $#
/
" # dc=ua,dc=es
objectclass: referral
Cuestiones Administrativas
ref: ldap://server2.dtic.ua.es/ou=profesores,dc=dtic,dc=ua,dc=es
Cada subárbol o rama será referenciada desde el
/
árbol padre $ objectClass::referral
"$
$ "
$ "
server2.dtic.ua.es
Modos de funcionamiento:
El servidor LDAP resuelve la solicitud
%
!
El cliente resuelve
#Ejemplo de archivo LDIF para la entrada de un usuario
Protocolo orientado a la conexión y basado
en intercambio de mensajes
dn: cn=Alex García Pérez, ou=profesores, dc=dtic, dc=ua,dc=es
objectclass: top
objectclass: person
objectClass::person
cn: Alex García Pérez
cn:
sn: García Pérez
sn:
telephoneNumber: 96 590 3400
userPassword: {MD5}Xr3j2zPw45eeQbdaaQxx
userPassword:
telephoneNumber:
$ "$ .
$ " .
seeAlso:
$ "
description:
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)
%
!
&
' #(
)*+), -,,
!
0
objectClass::person
$ 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=es
cn: wwwadm
objectClass: top
objectClass: posixAccount
uid: wwwadm
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/wwwadm
userPassword: {crypt}1FFO5k13sgQRg
loginShell: /bin/ksh
Grupo usuarios:
dn: cn=usuarios, ou=Groups, ou=eps, o=ua,
c=es
cn: usuarioss
objectClass: top
objectClass: posixGroup
gidNumber: 500
memberUid: wwwadm
memberUid: 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 Radius
con los de LDAP => Se encarga el administrador
Punto de
Servidor Radius
Servidor LDAP
Servidor
Radius
acceso
/principales
NAS
Una
de
las
características
de
LDAP
es
la
Cliente
autenticación que junto con la capacidad de almacenamiento de
datos y sus características distribuibles leServidor
hace
ideal como
LDAP
Servidor KDC
servidor de autenticación
y autorización para otras aplicaciones
$
$
$
(correo, servidor
de archivos...)
y mecanismos de Autenticación
delPetición
tipodeAAA (authentication,authorization and BD
Accounting).
JPEG
JPEG
acceso
Solicitud dede estos mecanismos AAA son:
Ejemplos
' autenticación
7 $
8Datos
( de
•autenticación
Kerberos
9
(
Datos a autenticar
Datos de
autenticación
JPEG
JPEG
Ticket
• Radius
Aceptación +
Datos de acceso
Acceso al
recurso
$
Respuesta de
aceptación +
datos de usuario
y servicio
JPEG
JPEG
TGT
JPEG
JPEG
Ticket
Descargar