Mostrando entradas con la etiqueta Directorio Activo. Mostrar todas las entradas
Mostrando entradas con la etiqueta Directorio Activo. Mostrar todas las entradas

miércoles, 5 de marzo de 2014

Laboratorio # 5: Creación y Configuración de la Zona HQ y Grupos de Sistemas

En este laboratorio
  • Usaremos la consola Access Manager para crear la zona llamada HQ
  • Se definirá la configuración de identidades UNIX por defecto para la zona
  • Se crearán los Roles de Sistemas (Computer Roles) para los sistemas de bases de datos y servicios Web.


    Encienda el CC para ver la transcripción en Español.
Para crear la zona HQ
  1. Ingrese al sistema CLIENT1 con Jessie (el administrador UNIX)
  2. Abra la consola Centrify Access Manager (del escritorio)
  3. En la ventana Connect to forest, seleccione OK
  4. En la consola Access Manager, en el lado izquierdo, haga click derecho en Zones y seleccione Create New Zone.
  5. En zone name, escriba HQ y presione el botón next.
  6. En la página de compatibilidad (Agent Compatibility page) vamos a seleccionar Hierarchical Zone.
    En este blog no se contemplarán las zonas Clásicas.
  7. En la ventana Management Model, seleccione Standard Zone, presione Next y luego Finish.
 Configure la configuración por defecto de las identidades UNIX de la zona
  1. En el panel izquierdo, expanda Zones, y luego la zona HQ.
  2. Haga click derecho a esta zona (HQ), seleccione properties y seleccione la pestaña de  User Defaults.
  3. En el campo UID,  abra el menú desplegable y seleccione auto-private group.  Siga a la pestaña Group Defaults
  4. En el campo GID, abra el menú desplegable y seleccione Generate GID from SID
  5. Seleccione OK, esto cerrará las propiedades.
Nota:  Estos son los valores por defecto, las identidades se pueden modificar en cualquier momento.

Añada los Roles de Computadoras (Computer Roles) para los Servidores de Bases de Datos y Servidores Web
  1. En el panel izquierdo, expanda Zones > HQ > Authorization
  2. Haga click derecho en Computer Roles y seleccione "Create Computer Role" 
  3. En el nombre (name), escriba Database Servers
  4. En la opción de computers group, haga click en el menú desplegable y seleccione <...>
  5. En la ventana de Find Objects, digite UNIX y presione el botón Find Now.
  6. En los resultados, haga doble click al grupo UNIX Database Servers y seleccione OK
    Repita el mismo proceso para los servidores Web, con el nombre Web Servers con el grupo de AD UNIX Web Servers. 

martes, 7 de enero de 2014

Laboratorio # 1: Preparando el Laboratorio Base de Pruebas de Microsoft para Centrify

Resumen del Laboratorio

En este laboratorio, modificaremos el Laboratorio Base de Pruebas de Microsoft para:
  1. Implementar un recordatorio de expiración de contraseña 30 días antes de su expiración.
  2. Implementar una advertencia de login para los usuarios
  3. Asignar la subred 10.0.0.0/24 Subnet al Sitio de Active Directory (Default-First-Site-Name)
  4. Cambiar el nombre del sitio a "CorpHQ"
  5. Crear nombres DNS tipo "A"  para los sistemas UNIX y Linux.
  6. Crear una zona DNS de búsquedas reversa (reverse-lookup) en corp.contoso.com para la subred  (10.0.0./24)
  7. Instalar e habilitar las herramientas de administración remota del servidor para Windows 7 SP1 en el sistema  CLIENT1
  8. Instalar los programas PuTTY y WinSCP en el sistema CLIENT1 
  9. Crear usuarios de prueba
  10. Obtener y copiar los productos de Centrify para Servidores en la carpeta Files del servidor APP1
Los roles de los servidores en el laboratorio son los mismos
  • DC1 es la controladora del dominio, DNS, DHCP y la autoridad certificadora
  • APP1 es el primer servidor de aplicaciones, contiene la lista de certificados revocados y una carpeta compartida (Files)
  • CLIENT1 es un cliente.  Para nuestro propósito, será el sistema para los administradores de sistemas.  Se usará el cliente PuTTY para acceder a los sistemas con SSH, también se instalarán las consolas de Centrify.

Requerimientos del Laboratorio
  • Solo se requieren los sistemas  DC1, APP1 y CLIENT1

Para modificar los objetos de Directivas de Grupo

En DC1
Para habilitar el recordatorio de expiración de contraseña 30 días antes de su expiración.
  1. Ir a Start, click a Administrative Tools y abra Group Policy Management.
  2. En la consola de la izquierda, abra corp.contoso.com\Domains\corp.contoso.com.
  3. En los detalles, haga click derecho a  Default Domain Policy, y seleccione Edit.
  4. En el lado izquierdo del Editor dirijase a  Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options
  5. En el lado derecho, en los detalles, abra Interactive Logon: Prompt user to change password before expiration
  6. En la pestaña de  Security Policy Setting, seleccione Define this policy setting, y digite 30 (days) y presione OK.

Para implementar una advertencia de login
  1. Abra el objeto Interactive logon:  Message text for users attempting to log on GPO 
  2. Haga un chequeo y copie el siguiente texto:
    "This computer system is for authorized use only. Users have no explicit or implicit expectation of privacy.Any or all uses of this system and all data on this system may be intercepted, monitored, recorded, copied, audited, inspected, and disclosed to authorized sites and law enforcement personnel, as well as authorized officials of other agencies. By using this system, the user consent to such disclosure at the discretion of authorized site personnel"
  3. Presione OK y cierre el editor de directivas de grupo.
Para renombrar el sitio de directorio activo
  1. Abra Start - Administrative Tools y haga click en Active Directory Sites and Services.
  2. En el lado izquierdo, expanda sites y haga click derecho a Subnets.
  3. En la ventana New Object - Subnet , bajo el prefijo, inserte: 10.0.0.0/24 y seleccione click the "Default-First-Site-Name" luego presione OK. 
  4. En el lado izquierdo, abra Sites, y haga click derecho en "Default-First-Site-Name" y seleccione Rename.
  5. Cambie el nombre a CorpHQ
  6. Cierre el programa Active Directory Sites and Services
Para crear una zona DNS de búsqueda reversa para la subred 10.0.0.0.
  1. Abra Start -Administrative Tools, y haga click en DNS Manager.
  2. En el lado izquierdo, abra el servidor DC1,  haga click derecho en Reverse-lookup zones y seleccione New Zone.
  3. Presione Next y Next en la ventana Zone Type (Primary / Stored in AD), presione next en la ventana Replication Scope, presione Next en la ventana Reverse-lookup Type (IPV4)
  4. En el campo Network ID, escriba 10.0.0 y presione Next
  5. Presione Next en la Dynamic Update Page y luego presione Finish.
  6. Deje el programa DNS Manager abierto para las siguientes tareas
Para crear nombres tipo A para los sistemas UNIX/Linux

Las direcciones IP de los sistemas son:

Sistema
Dirección IP
Rol
CEN1
10.0.0.151
Sistema de Bases de Datos
SUSE1
10.0.0.152
Sistema servidor Web
SOL1
10.0.0.153
Servidor de Utilidades

En el programa DNS Manager:
  1. En el lado izquierdo, expanda el servidor DC1 y expanda Forward-lookup Zones
  2. En el lado izquierdo, haga click derecho en la zona corp.contoso.com y seleccione New Host (A or AAA)
  3. En la ventana New Host, escriba el nombre del sistema (por ejemplo CEN1)
  4. Escriba la dirección IP del sistema correspondiente (por ejemplo: 10.0.0.151)
  5. Seleccione el check-box Check the Create associated pointer (PTR) y pressione el botón Add Host
  6. Repita hasta que se completen todos los sistemas.
  7. Cierre el programa DNS manager y cierre la sesión en el sistema DC1

Instale y habilite las Herramientas de Administración Remotas con SP1 en el sistema CLIENT1
  1. Entre al sistema CLIENT1 con una cuenta administrativa del dominio CORP.CONTOSO.COM
  2. Descargue las herramientas RSAT SP1.
    http://download.microsoft.com/download/4/F/7/4F71806A-1C56-4EF2-9B4F-9870C4CFD2EE/Windows6.1-KB958830-x64-RefreshPkg.msu 
  3. Inicie la instalación y presione Yes cuando aparezca la pregunta.
  4. Presione el botón I Accept para iniciar la instalación.  Cuando la instalación termine, presione close.
  5. Para habilitar las herramientas administrativas del directorio activo (ADUC, GPMC, etc), abra el Control Panel y haga click en Programs and Features
  6. En el lado izquierdo, seleccione "Turn Windows features on or off
  7. Expanda Feature Administration Tools y haga un check a Group Policy Management
  8. Expand los nodos Remote Server Administration Tools > Role Administration Tools > AD DS and AD LDS Tools and y haga un check en:
    AD DS Snap-ins and command-line tools
    AD LDS Snap-ins and command-line tools
  9. Presione OK
  10. Mantenga la sesión en el sistema CLIENT1.
Descargue los programas PuTTY y WinSCP en el sistema CLIENT1
  1. Descargue el programa PuTTY
  2. Instale PuTTY, siguiendo las instrucciones.
  3. En la ventana "Select Additional tasks", haga un check en "Create Desktop Icons for all users".
  4. Descargue WinSCP
  5. Instale WinSCP, siguiendo las instrucciones.
    Cerciórese que no seleccione ningún componente en la página Google Chrome
  6. Mantenga la sesión en el sistema CLIENT1.
Creación de Usuarios de Prueba
 Primero, hay que crear la OU llamada Staff. 
  1. Abra Start > Administrative Tools > Active Directory Users and Computers
  2. En el lado izquierdo, haga click derecho en el dominio corp.contoso.com, seleccione New->Organizational Unit
  3. En la ventana New Object, en el campo Name escriba Staff y presione OK.
Creación de los usuarios en la OU Staff.
  1. Haga click derecho en la OU Staff, seleccione New->User
  2. Complete Primer Nombre (First Name), Apellido (Last Name) basado en la lista, y en user logon name, use este formato:  <firstname>.<lastname>
    Por ejemplo: bryant.wheeler y presione Next
  3. En la ventana siguiente, quite el check en "user must change password at next logon"
  4. Haga click a Next y a Finish
Lista de Usuarios:

Nombre
Cargo
Grupos
Bryant Wheeler
Windows Administrator
Domain Admins
Domain Users
Jessie Matthews
UNIX Administrator
Domain Users
Cora Rodriguez
IT Security Analyst
Domain Users
Courtney Larson
IT Manager
Domain Users
Jeremy Silva
DBA UNIX
Domain Users
Ramon Jimenez
DBA UNIX
Domain Users
Doyle Russell
Web Administrator
Domain Users
Matt Sims
Web Administrator
Domain Users
Cassandra Lindsey
External Auditor
Domain Users
Ralph Baldwin
Internal Auditor
Domain Users

 Coloque a Bryant en el grupo Domain Admins.
  1. Abra la OU Staff
  2. Haga doble click en el usuario Bryant Wheeler y dirigase al tab Member of
  3. Presione Add y escriba Domain Admins presione OK dos veces.
  4. Cierre el programa Active Directory Users and Computers.
 Obtenga y copie el programa y los agentes de Centrify Server Suite software
  1. Para obtener el programa Centrify Server Suite, solicite una prueba aquí: request a trial.
  2. Descargue los programas de Centrify:
    a) Consolas:  http://www.centrify.com/support/package-info.asp?fn=centrify-suite-2013.3-mgmt-ent-win64.zip
    b) Agente para CentOS 64bit: http://www.centrify.com/support/download.asp?asset=centrify-suite-2013.3-rhel3-x86_64.tgz
    c) Agente para Solaris x86: http://www.centrify.com/support/download.asp?asset=centrify-suite-2013.3-sol9-x86.tgz
    d) Agente para SUSE 64bit: http://www.centrify.com/support/download.asp?asset=centrify-suite-2013.3-suse9-x86_64.tgz
  3. Copie estos archivos en la carpeta Files del servidor APP1
    Esto  hará que los archivos estén disponibles en la red bajo la carpeta de red \\app1\files.

sábado, 4 de enero de 2014

Problemas del Negocio: # 1 La Administración y Autenticación de Usuarios en Sistemas UNIX y Linux

Información sobre nuestra empresa ficticia (Contoso):


  • Sus competencias en el mercado no son en tecnología (a diferencia de Google o Apple que podrían desarrollar soluciones internas que se pueden mercadear o vender)
  • Tienen un equipo de TI limitado y son conscientes de los costos.
  • Valoran la eficiencia operativa.  
  • Han acordado que hay que maximizar las inversiones en tecnologías como Directorio Activo en tanto a gente (preparación, experiencia), Procesos e Infraestructura.

Problema # 1:  La Administración  y Autenticación de Usuarios en Sistemas UNIX y Linux


Contoso está buscando empezar a procesar información de tarjetas de pago, y basándose en la normativa de protección de datos (Payment Card Industry o PCI en inglés) se embarcan en un proceso para implementar el reforzamiento de las siguientes reglas::
  • Eliminar la práctica de compartir credenciales privilegiadas
  • Establecer que todas las credenciales de usuarios en sistemas UNIX/Linux  estén únicamente identificadas (sección 8.1)
  • Que los usuarios de sistemas UNIX puedan iniciar sesiones con sus credenciales del directorio activo
  • Cerciorarse de que cuando las credenciales son habilitadas / deshabilitadas / limitadas en el servicio de directorio central, este efecto se propague a los sistemas UNIX y Linux
  • Las políticas de contraseñas sean reforzadas uniformemente en todas las plataformas (Windows, UNIX, Linux, etc.)
  • Preferiblemente las credenciales (incluyendo las contraseñas) sean implementadas de manera nativa, sin esquemas de sincronización.

Del punto de vista de cada grupo:

Administrador de Sistemas
UNIX/Linux
- Con el tiempo se ha hecho muy difícil mantener las cuentas de usuario en cada servidor
- Existen algunos mapeos NIS que deben ser descontinuados.
- Cada vez que los auditores solicitan información, requiere un gran esfuerzo del equipo.
- Las cuentas de súper usuario (root), Oracle, etc son compartidas y es difícil establecer la responsabilidad de ciertas acciones
- Idealmente las cuentas de servicios del sistema deben ser mantenidas internamente en el sistema.
Analista de seguridad de la información
-         Como pronto vamos a empezar a procesar tarjetas de pago, es imperativo cerciorase que las cuentas privilegiadas no son compartidas entre varios individuos
-          Todos los usuarios deben tener un identificador único, preferiblemente en el directorio central (AD).
-          Hay que cerciorarse que la política de contraseñas (longitud, complejidad y expiración) ya existentes para clientes Windows, se pueden reforzar en sistemas UNIX/Linux
Gerente de Sistemas o Arquitecto
-          El flujo de trabajo para alta, baja y cambios de credenciales, al igual que de restauración de contraseñas es muy complicado.  Demasiado personal debe involucrarse y hay alto nivel de error
-          Debemos estar listos para procesar información sobre tarjetas de pago
-          Existe un sistema de Gestión de Identidades (Microsoft FIM) y nos encantaría usarlo para estandarizar los procesos.
Administrador de sistemas Windows (incluyendo el servicio de directorio activo)
-          Preferiblemente la solución implementada debe usar el directorio de manera nativa, sin extensiones propietarias al esquema de la base de datos y sin instalar programas en controladoras del dominio
-          Debemos conservar el mismo modelo de almacenamiento y convenciones de nombres que existen en el directorio el día de hoy.

Actividades de Planificación (participantes)



Estas son las actividades de planificación con los respectivos participantes.  En proyectos de esta índole, no solo se debe adquirir o contratar el conocimiento cognitivo, sino que la coordinación y cooperación entre equipos e individuos también es un desafío.  Este tipo de soluciones desafían el modo de trabajo actual, y en organizaciones donde hay un alto nivel de fragmentación se presenta el síntoma de resistencia al cambio.  Se deben tomar decisiones, puntos medios deben ser encontrados, etc.  

Gobernación de Acceso  (entre todos)
Luego de conversar con el analista de seguridad, al evaluar el tipo de servidores existentes, y para promover la simplicidad, el administrador de UNIX decide que van a existir dos grupos de sistemas: 
  • Servidores de Bases de Datos
  • Servidores Web
Acceso y Gestión de Privilegios (entre todos)
Inicialmente dos roles:  Administradores de Sistemas y Usuarios Regulares
Los Administradores de Sistemas tendrán el derecho de ingresar a todos los sistemas y efectuar labores administrativas.
Los Administradores de Bases de Datos solo pueden iniciar sesiones en todos los servidores de bases de datos.
Los Administradores Web  solo pueden iniciar sesiones en todos los servidores web

Convenciones de Nombres y Almacenamiento de Objetos en el Directorio (entre los administradores de UNIX y del Directorio Activo)

Luego de investigar el producto, se propone la siguiente estructuras:

UNIX OU (padre)
para almacenar las carpetas subsiguientes 
Servers OU
para almacenar los objetos de cuentas de computadoras
Computer Groups OU
para almacenar los grupos de AD que se usarán para los roles de computadora
Roles OU
para almacenar los grupos de AD que se usarán para los roles de los usuarios
UNIX Groups OU
para almacenar los grupos de AD que se corresponden a grupos en UNIX
Licenses OU
para almacenar la información sobre licencias
Zones OU
para almacenar la información pertinente a como el producto organiza los sistemas.


Gestión de Identidades (Administradores UNIX/Windows y el analista de seguridad)
Usuarios:  El proceso será manual hasta que se integre a la solución de gestión de identidades.  El administrador de sistemas UNIX trabajará para hacer la migración de usuarios existentes.  A partir de ese punto, cada usuario deberá tener una identidad única; los roles del usuario se proporcionarán luego de que la identidad es implementada.
Sistemas:
  • Los administradores UNIX coordinarán con el grupo responsable por DNS para proporcionar la información IP.
  • Una vez el sistema está en el directorio, el agente de Centrify automáticamente manejará el reloj y el ambiente Kerberos del sistema.
Delegación de Administración (Administradores UNIX/Windows y el analista de seguridad)
  • El administrador del directorio activo va a delegar la administración de la carpeta OU para los objetos UNIX/Linux a los administradores UNIX.  Esto les permitirá manipular identidades, integrar sistemas, etc.
  • Si se requiere un objeto de directiva de grupo (GPO) este debe ser creado por el administrador de Windows y delegado al Administrador UNIX
Servicios de Infraestructura (Administradores UNIX/Windows y el analista de seguridad)
  • Hoy el servicio DNS y los servicios de sincronización de tiempo (NTP) están duplicados para cada infraestructura.  Se ha acordado usar los servicios proporcionados por el servicio de directorio activo en UNIX.
Servicios de Monitoreo (Administradores UNIX/Windows y el analista de seguridad)
  • Los intentos de acceso fallidos deben ser registrados
  • El uso de privilegios debe ser registrado
Herramientas Requeridas
  • Los Administradores UNIX requieren de la herramienta  Active Directory Users and Computers.
  • Las consolas de Centrify se instalarán en la computadora cliente.  

miércoles, 1 de enero de 2014

Conceptos Básicos: El Protocolo Kerberos Simplificado

Cerberus: el perro de tres cabezas

Kerberos es un protocolo distribuido cliente servidor que usa los servicios de DNS, cifrado de información, sincronización de tiempo e intercambio de etiquetas (billetes o tickets) para proporcionar servicios de autenticación de manera segura.

Del punto de vista de seguridad, Kerberos se alinea a los siguientes principios:
  • Mantiene la confidencialidad ya que las contraseñas nunca son transportadas en claro en la red.
  • Protege la integridad de las transacciones implementando mecanismos que aseguran que los intercambios no son modificados en el tránsito.
  • Provee alta disponibilidad (si es propiamente implementado) ya que se puede instalar de manera distribuida.
Para que Kerberos funcione debe haber
  1. Un servicio de resolución de nombres bien configurado y que funcione correctamente (como DNS).
  2. Hay que tener un servicio de directorio para almacenar los nombres de los actores principales (como un servicio LDAP) y que los atributos estén almacenados correctamente en el mismo.
  3. Debe haber un servicio de distribución de llaves (KDC abreviado en Inglés)
  4. El reloj de los participantes no puede tener una diferencia de mas de 5 minutos (o sea que servicios de entronización de tiempo deben ser implementados)
  5. El software del cliente y el servidor deben ser compilados con compatibilidad con Kerberos.
El Directorio Activo tiene todas estas capacidades, de hecho, cualquier red que usa Windows el día de hoy (desde la versión 2000) tiene una infraestructura que usa Kerberos; esto quiere decir que este protocolo es aprovechado por millones de usuarios empresariales día a día.  Una secuencia común es la siguiente:

a) Bob inicia una sesión en su computador Windows en el principio del día.
b) Al ser exitoso, se le otorga un billete especial llamado Ticket Granting Ticket o TGT en Inglés.  Este tiene una vigencia de 10 horas.
c) Cuando Bob abre su cliente de correo electrónico (Outlook) este accede a su buzón y puede empezar a trabajar en sus tareas pendientes.

Note que en esta secuencia, con una configuración normal, el cliente no tiene que ingresar su contraseña otra vez para acceder a su buzón, ya que su cliente de correos (Outlook) puede establecer la conexión con el servidor (Microsoft Exchange) y el Directorio Activo se encarga del resto.

Veamos en mas detalles las funciones proporcionadas por el Directorio Activo:
Función
Proveedor
Resolución de nombres (de hostname a dirección IP)
Servicio DNS del AD
Emite y valida billetes (tickets)
Controladora de Dominio del AD
Servicios de cifrado
Controladora de Dominio del AD
Define y hace cumplir las políticas de Kerberos
Directivas de Grupo del AD y el cliente de directivas de grupo del computador cliente.
Servicios de Directorio
El servicio LDAP proporcionado por el AD
Sincronización de tiempo
Servicio w32time de la controladora de dominio y los clientes - configurado automáticamente.
Alta disponibilidad y configuración uniforme
Servicios de replicación del AD
Cliente de correos con Kerberos
Windows 7, Microsoft Outlook
Servidor de correos con Kerberos
Microsoft Exchange

Ahora, contraste la fragmentación que existe para todos estos servicios en plataformas UNIX/Linux:

Función
Proveedor
Resolución de nombres (de hostname a dirección IP)
Servidor BIND
Emite y valida billetes (tickets)
Kerberos KDCs (MIT o Heimdal)
Servicios de cifrado
Para LDAP (SSL o TLS)
Para Kerberos (autenticación)
Define y hace cumplir las políticas de Kerberos
Archivos de configuración
Servicios de Directorio
OpenLDAP  (u otros paquetes)
Sincronización de tiempo
Servicio Network Time Service (NTP) configurado manualmente.
Alta disponibilidad y configuración uniforme
Múltiples proveedores:
-          LDAP Sync (para OpenLDAP)
-        BIND maestro/esclavo
-          Kerberos maestro/esclavo
-          Archivadores y carpetas exportadas con archivos de configuración
Cliente Kerberos de correos
Existen muchos clientes de correos, pero no todos son compatibles con Kerberos

Servidor de correos con Kerberos

Es válido notar la cantidad diferente de productos y las implicaciones a los procesos, gente y tecnología que se requiere para mantener esta capacidad.  Solo imagine que se necesite personal experto para Planear-Ejecutar-Verificar y Mantener la infraestructura, los procesos de operaciones necesitados todo esto con el simple propósito de proporcionar autenticación, esta es la definición del problema de la fragmentación de los servicios de TI.

Por eso es que en la  entrada anterior, el Gerente de informática está preocupado por la falta de flexibilidad que exhibe la organización.  Con tantos especialistas de soluciones de punta hay estrés en coordinación, cooperación y el nivel de especialización promueve la visión de túnel.

Los nombres de entidad de seguridad de servicio (SPN Service Principal Names en Inglés)

Estos son los nombres asociados con un servicio que se ejecutan en un contexto de seguridad  Ejemplos de servicios son servidores web, servidores de archivo, etc.
Su sintaxis es: < tipo de servicio >/< nombre de host >:< puerto TCP o UDP >

De manera práctica, si el servicio web (digamos el servidor Apache o httpd) va a usar Kerberos como autenticación, no solo debe estar compilado con apoyo a Kerberos, sino que el servidor (o host) debe tener un nombre de entidad de seguridad de servicio registrado en el servicio de directorio.  Por ejemplo, si el host es web.corp.contoso.com y servidor web está escuchando en el puerto 8080 su SPN es:
http/web.corp..contoso.com:8080

Si no se especifica un puerto, se asume el puerto por defecto del servidor.  En nuestro ejemplo, el servicio web usa el puerto TCP 80 por defecto.  Note que por el otro lado el cliente (navegador de Internet) debe también ser compatible con Kerberos.

Diagnóstico y Resolución de Problemas con Kerberos

El diagnostico y resolución de problemas con Kerberos es un tema que requiere de experiencia y destreza.  Sin embargo hay una serie de pasos básicos para empezar:
  1. ¿Están los servicios y clientes compilados con compatibilidad a Kerberos?
  2. ¿Funciona la resolución de nombre?  ¿Funciona tanto para el nombre completo (FQDN) como el nombre corto?
  3. Está el reloj sincronizado entre el cliente, servidor y KDC (el KDC es la controladora de dominio de AD)
  4. Se registraron correctamente los nombres de entidad de seguridad de servicio en el directorio (nombre completo (FQDN) y/o nombre corto)?
  5. Finalmente, el hecho de que el cliente se puede autenticar no implica que este esté autorizado para acceder!!!

martes, 31 de diciembre de 2013

Conceptos Básicos: Cómo se identifican los usuarios en los sistemas UNIX y en el Directorio Activo

En UNIX: Identificadores Únicos y demás....


Los usuarios en UNIX  son identificados en el sistema por un identificador único (UID, siglas en Inglés);  sin embargo una identidad completa en UNIX consta de mucho más.  Como observación, para ser una estructura tan sencilla, ha pasado la prueba del tiempo:
  1. Login o nombre de usuario:  es el nombre de la cuenta en un formato legible.  El login debe planearse debido a las limitaciones de ciertas distribuciones de UNIX (como AIX y HP-UX).  
  2. UID:  identificador único (unique identifier o UID en inglés)r.  El número que asigna el sistema operativo a los archivos y carpetas;  procesa permisos y demás. Típicamente los UID del O al 100 son reservados.  La cuenta de súper usuario (root) tiene el UID 0.
  3. Identificador de Grupo (Group ID o GID en Inglés):  Es el grupo primario del usuario.  En sistemas modernos existe el concepto de auto-grupo.  Esto indica que el grupo del usuario es el mismo UID.
  4. Campo GECOS (descripción):  Este es un campo para descripción.  Puede ser el nombre completo del usuario, su título o extensión telefónica. 
  5. Carpeta o directorio de Inicio (Home en Inglés): Ubicación de los archivos del   usuario Usualmente/home o  /exports/home o el estándar de la empresa.
  6. Intérprete de Comandos (o Shell en Inglés):  El intérprete de comandos para el usuario final.  Requiere de planificación ya que no todos los intérpretes se instalan pro defecto en todos los sistemas.
La identidad de los usuarios en sistemas independientes es almacenada en el archivo /etc/passwd.  El formato es el siguiente:  (los dos puntos son el separador)

nombre de usuario : contraseña cifrada (no se usa): UID : GID : Campo GECOS : Carpeta de Inicio : Intérprete de comandos

Ejemplo:
nombre de usuario: juan.perez
UID/GID: 305
GECOS: Juan A. Perez
Inicio: /home/jim
Intérprete: /bin/bash
juan.perez::305:305:Juan A. Perez:/home/juan.perez:/bin/bash
Excelente simplicidad!!!!

En Directorio Activo:  ¿Qué es el UPN?

En el Directorio Activo, las cosas funcionan de manera diferente ya que este es un servicio de directorio LDAP  esto quiere decir que hay muchos campos que deben mucho al legado del estándar x.500:

Notas:  Cuando se crea un usuario en el AD, solo hay que especificar el nombre de usuario, el primer nombre, iniciales, apellido y contraseña.  Sin embargo, es un poco más complejo porque crea los siguientes campos:
  1. El User Principal Name o UPN en Inglés:  es el identificador en el formato de <usuario>@nombre del dominio
  2. sAMAccountName: este campo es el nombre corto (<20 caracteres)
  3. Identificador Unico (o System Identifier, SID en inglés):   En el AD se le llama "Object SID". Continene el identificador del dominio más un identificador global.
Al observar en mas detalles el usuario, podemos ver mucho más información:

Dn: CN=Juan Perez,OU=IT,OU=Staff,DC=contoso,DC=com
accountExpires: 9223372036854775807 (never);
badPasswordTime: 0 (never);
badPwdCount: 0;
cn: Jim Brown;
codePage: 0;
countryCode: 0;
displayName: Juan Perez;
distinguishedName: CN=Juan Perez,OU=IT,OU=Staff,DC=contoso,DC=com;
dSCorePropagationData: 0x0 = (  );
givenName: Jim;
instanceType: 0x4 = ( WRITE );
lastLogoff: 0 (never);
lastLogon: 0 (never);
logonCount: 0;
name: Juan Perez;
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=contoso,DC=com;
objectClass (4): top; person; organizationalPerson; user;
objectGUID: 6698f079-e870-43be-9c14-02260dfbafff;
objectSid: S-1-5-21-3571224596-3006733700-3057749774-1297;
primaryGroupID: 513 = ( GROUP_RID_USERS );
pwdLastSet: 12/10/2013 9:28:34 PM Eastern Standard Time;
sAMAccountName: juan.perez;
sAMAccountType: 805306368 = ( NORMAL_USER_ACCOUNT );
sn: Brown;
userAccountControl: 0x200 = ( NORMAL_ACCOUNT );
userPrincipalName: juan.perez@contoso.com;
uSNChanged: 282804;
uSNCreated: 282799;
whenChanged: 12/10/2013 9:28:34 PM Eastern Standard Time;
whenCreated: 12/10/2013 9:28:34 PM Eastern Standard Time;

Note la cantidad de campos adicionales que fueron creados., muchos de estos son internos para el servicio de directorio como el DN.  Este es el formato x.500 de la ubicación del objeto de usuario.  Básicamente explica que el objeto está bajo una carpeta llamada IT Staff.
Dependiendo de la versión del esquema (schema en Inglés) del Directorio Activo, es posible que se incluyan mas campos por defecto.  Por ejemplo, si el esquema contiene las extensiones del servidor de correos Microsoft Exchange, dependiendo de las reglas una dirección de correo electrónico sea configurada.  Note que el correo electrónico no es necesariamente igual al campo UserPrincipalName.

Entonces, ¿Qué es el Esquema?
Bajo el contexto de las bases de datos, un esquema (o diccionario de datos) define los campos (o atributos) que se pueden definir para un tipo de objeto.  Por ejemplo, las páginas blancas tienen un esquema muy sencillo:
Apellido, Primer Nombre, Inicial
Dirección
Número de teléfono

Si se decide mañana que el correo electrónico debe ser incluido en las páginas blancas, entonces se debe extender el esquema de esta base de datos.  Hay que considerar:

  • ¿Cuántos caracteres son permitidos antes del símbolo de arroba (@)?
  • ¿Se va a verificar la validez del dominio de correos?
Estas dos simples preguntas tienen impacto en el tamaño del almacenamientos y el proceso de implementación.  Sin embargo, si mañana resulta ser que la inclusión del correo electrónico es una mala idea por lo dinámico de esta información, pues hay que eliminar este campo.  En el caso de servicios de directorio, la decisión no es trivial (y en algunos casos imposible)

En una entrada anterior, propuse que el Administrador de Sistemas Windows se preocupa por el potencial uso de extensiones al esquema de AD.  Esta es la razón:  Si se extiende el esquema y la solución falla, ya el directorio no se puede restaurar al estado original y el espacio es parte del esquema.

La preocupación del administrador es muy válida ya que no es hasta que la solución ha sido probada en producción que se puede evaluar su éxito.
El beneficio de usar a Centrify es que usa el esquema nativo del directorio activo.  Desde la versión 31 (incluida en Windows Server 2003 R2) la especificación RFC 2307 fue incluida en el esquema del AD.  O sea que no hay preocupaciones para el administrador.