jueves, 2 de enero de 2014

Laboratorios: Metodología de los Laboratorios


Una de las metas de este blog es proporcionar ejemplos prácticos que se pueden implementar en un entorno de producción o de pruebas para resolver los desafíos de la gestión de accesos e identidades en las plataformas UNIX y Linux.  Para aprovechar el tiempo y tener una configuración estándar, la metodología utilizarán  herramientas disponibles en el Internet.

La problemática del negocio gobernarán los laboratorios
Las laboratorios están diseñados para resolver los problemas empresariales de infraestructura y gestión de TI.  Se desarrollará una progresión de problemas y módulos dependientes;  esto ayudará a la audiencia a tener modelos de referencia que se pueden llevar a ambientes de producción.  Cada problemática será presentada en la perspectiva de los administradores UNIX, analista de seguridad de la información y gerente de TI;  si hay algunos detalles que se deben enfocar del punto de vista del administrador de Windows, estos serán presentados en la respectiva fase (Planificación-Ejecución-Verificación-Ajustes).

La infraestructura de Windows y Directorio Activo
Microsoft Technet tiene un excelente recurso en su serie de laboratorios de pruebas Test Lab Guides.  Este contenido está en Inglés, sin embargo, proporciona un modelo estándar de configuración que se puede aprovechar para establecer un modelo de referencia.  Los ejemplos presentados en el blog serán basados en la e configuración base para Windows Server 2008 R2.  Aquí está el diagrama:

La configuración base proporciona:
- Un bosque de Directorio Activo funcional (corp.contoso.com)
- Una red interna (corpnet) 10.0.0.0/24
- Servicios de resolución de nombre (DNS)
- Sitios web y carpetas compartidas
- Una unidad certificadora con sus listas de revocación de certificados

DC1 es la controladora de dominio y unidad certificadora
APP1 es el servidor de aplicaciones
CLIENT1 es el cliente, la mayoría de la administración se hará desde esta computadora
Las consolas de Centrify serán instaladas en este computador.
Los sistemas EDGE and INET1 no son usados hasta mucho más tarde, o sea que con los tres básicos se puede iniciar.

Infraestructura UNIX/Linux

A pesar de que la infraestructura cambiará con el caso de uso, la estructura básica contiene 3 másquinas:
- CEN1, un sistema CentOS 64 bit con la versión personal de  IBM DB2 (Express) y el servidor web Apache
- SUSE1 un sistema SUSE 10 SP3 con la versión personal de Oracle
- SOL1 un sistema  Solaris 10.

Notas sobre la configuración base:
  • En la página 14, la guía recomienda que se configure la directiva de grupo "Domain member: Maximum machine account password age" al vaor de 999.  Esto quiere decir que la contraseña de la cuenta de la computadora en el AD cambiará cada 3 años.  En un modelo de producción, por defecto ese valor es de 30 días.  Este tema tiene implicaciones en la autenticación mutual del sistema.
  • Recomiendo cambiar el objeto de directiva de grupo "Interactive Logon: Prompt user to change password before expiration" a 30 días.  Esto cambiará el aviso a 30 días antes de su expiración.
  • Configure un  aviso corporativo cambiando el GPO "Interactive logon:  Message text for users attempting to log on" 
Nuestro laboratorio final se verá así:


Solo hay subscribirse a la sección de laboratorios para ser notificado.

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.

sábado, 28 de diciembre de 2013

La Gestión de Acceso e Identidades en Plataformas Abiertas (UNIX/Linux) - Un Problema con Múltiples Constituyentes


Administrador de Sistemas UNIX y Linux

  • Me preocupo de no poder acceder a los sistemas si el Directorio Activo no está disponible.
  • Me preocupo que la integración con el nuevo directorio será muy intrusa y afectará la confiabilidad de los sistemas UNIX y Linux
  • Me preocupo que el nuevo esquema de gestión de privilegios hará inflexible el uso de los privilegios de super usuario.
  • Me precupa que no tendré herramientas de linea de comando para automatizar las funciones del trabajo. 
  • Le dedico mucho tiempo a producir reportes y requerimientos de auditoría y seguridad  (atestación)
  • Me preocupa que el nuevo de modelo de gestión implicará que dependeré del grupo de gestión de Windows para hacer funciones triviales.
  • ¿Tendré que limpiar los accesos (chown) una vez este producto quede implementado?
Administrador de Sistemas Windows

  • Me preocupa que la nueva solución requiera extensiones propietarias al esquema del Directorio Activo.
  • Me preocupa la integridad de las controladoras de dominio
  • Me preocupa que los sistemas UNIX demanden memoria y ciclos del procesador por conexiones persistentes (LDAP) a las controladoras del dominio.
  • Me preocupa la carga de trabajo adicional ya que el equipo que administra los sistemas UNIX/Linux serán mis clientes.
Analista o Gerente de Seguridad


  • Necesito que solo el personal adecuado tenga acceso a los sistemas del negocio en las plataformas UNIX/Linux (principio de menor acceso)
  • Necesito detener la práctica de compartir contraseñas de cuentas privilegiadas (como la de super usuario) y que estas se usen cuando sea necesario.
  • Necesito incrementar la responsabilidad del personal de TI
  • Necesito cerciorarme que el personal tiene los privilegios necesarios para su función (no más allá de lo necesario)
  • Necesito presentar a la gerencia y auditoría los reportes de acceso y privilegios de manera rápida, eficiente y sin conflictos de interés.
  • Hay que alinear el negocio con las regulaciones, normativas y mejores prácticas (ejemplos: ISO 27001, SOx, HIPAA, PCI, etc)
  • No estoy seguro que se puede determinar quién hizo ciertas acciones en algunos (hay incidencias de error de usuario y cambios fallidos)

 Gerente de Informática o Arquitecto

  • Me preocupa que se ha invertido mucho dinero en soluciones especializadas, pero cada una de ellas ha incrementado la complejidad de los proyectos.
  • Los proyectos no están produciendo los resultados a tiempo.
  • Me preocupa que los procesos como de restauración de contraseña, alta, baja de usuarios y la certificación de los accesos son complicados e impactantes al negocio.
  • Estoy sorprendido de la gran cantidad de infraestructura requerida por cada solución.
  • La gerencia ha incrementado la presión de que se ahorre dinero y hay mucha presión en los presupuestos.

viernes, 27 de diciembre de 2013

Conceptos Básicos: El Agente de Centrify

El Cliente de Centrify para Directorio Activo
Conocido por su nombre de producto: DirectControl (o adclient internamente) es el producto de integración con el Directorio Activo.  Este usa los servicios LDAP, Kerberos y de Normativa de Grupo.  El agente tiene más de 10 años en el mercado en los que ha incrementado el número de plataformas operativas y también proporciona servicios de gestión de usuarios privilegiados.

 

 Los módulos que constituyen el agente son los siguientes:
  • Módulo NSS:  Usa la facilidad NSS para presentar el AD como una fuente para passwd, group y shadow. 
  • Módulo PAM:  La autenticación es implementada mediante objeto compartido que usa Módulos de Autenticación (PAM)  
  • Librerías y Utilidades Kerberos:  Ofrece una implementación de MIT Kerberos compilada y probada con la implementación de Kerberos del Directorio Activo.
  • Motor de directivas de grupo:  Interpreta y procesa las directivas de grupo del AD en las plataformas UNIX, Linux y Macintosh (Mac OS X).
  • sudo preparado por Centrify:  Una versión de sudo que usa los roles definidos en el directorio activo.
  • Herramientas de la linea de comando:  Centrify ha implementado los comandos del agente (con el prefijo ad), de autorización (con el prefijo dz) y de auditoría (con el prefijo da).
  • Servidores proxy LDAP y NIS:  Estos servicios presentan la información del AD a sistemas que no pueden tener el agente instalado (como appliances o sistemas legado)
  • Depósito de credenciales fuera de linea:  Proporciona alto desempeño (ya que no requiere conexiones persistentes a las controladoras del dominio) y alta disponibilidad (en caso de que el AD no esté disponible, los usuarios pueden iniciar sesiones en los sistemas)
  • Módulos Externos:  Son servicios SSO facilities para servidores Apache, Tomcat, Java y bases de datos DB2.

Comunicación con el Directorio Activo
El agente usa los siguientes puertos de comunicación para conversar con el AD:
Port
Description
TCP 389
Servicio LDAP
TCP 3268
Catálogo Global (Global Catalog Search)
TCP 88
Servicio de Tickets de Kerberos (Kerberos TGT)
TCP 464
Cambios de contraseña en Kerberos
(Kerberos password changes (passwd, adpasswd))
TCP 123
Sincronización de Tiempo
(Network Time Protocol (NTP))
TCP 53
Cliente DNS
(DNS query for A and SRV records)
TCP 445
Opcional:  Protocolo CIFS para obtener objetos de normativa de grupo
(Optional:  SMB to read Group Policies)
Ephemeral Ports
Puertos efímeros requeridos para comunicacion.
(Required for communication)

Las comunicaciones entre el cliente de Centrify y las controladoras de dominio son mutuamente autenticadas y cifradas.  Para más información, ver este artículo.

jueves, 26 de diciembre de 2013

Conceptos Básicos: La Administración de Control de Accesos Tradicional en UNIX y Linux

Múltiples Capacidades-Múltiples Soluciones

Tradicionalmente los sistemas UNIX y Linux usan componentes separados para la implementación de servicios de directorio, resolución de nombres, autenticación, gestión de usuario privilegiado, auditoria y gestión de configuración. 
Nota de moderación: En este blog, se va a referir a la familia de sistemas operativos UNIX (incluyendo a Linux) como UNIX.

Servicios de Directorio en UNIX
Las plataformas UNIX han estado presentes en computación hace varias décadas; estas plataformas son la base del Internet, o sea que su legado es importante para la historia de la tecnología moderna;  con en nacimiento de las plataformas de código abierto la popularidad de estas plataformas ha crecido de manera exponencial.
Este legado implica que tanto las cosas buenas como los desafíos siguen presentes en la plataforma, por ejemplo los usuarios en sistemas UNIX existen:
  • Localmente en el archivo /etc/passwd, o
  • en un  sistema Network Information System (NIS), o
  • en un servicio de directorio dedicado LDAP (como OpenLDAP), o
  • en soluciones comerciales y hasta en el Directorio Activo
El Name Server Switch
Name Server Switch (o NSS, siglas en Inglés) es un mecanismo para proporcionar fuentes de configuración (incluyendo servicios de directorio) de manera que cada programa use la facilidad en vez de tener que ser compilado para cada servicio independiente.  Fue creado por Sun Microsysems (ahora Oracle) para el sistema operativo Solaris.  Es sumamente importante entender NSS ya que es una de los interfaces usados por Centrify para proporcionar servicios  con el Directorio Activo.  El archivo de configuración de NSS en las plataformas UNIX está ubicado en /etc/nsswitch.conf.

Servicios de Autenticación en UNIX
Al igual que los servicios de directorio, la autenticación en UNIX se puede efectuar de las siguientes maneras:
  • Localmente contra el archivo/etc/shadow
  • En un archivo remoto presentado por un dominio NIS
  • Con Kerberos (ejemplos: MIT Kerberos or Heimdal)
Los Pluggable Authentication Modules
Debido a la misma razón de existencia que NIS; Los Módulos de Autenticación Modular (siglas PAM en Inglés) permiten el uso de interfaces de programación para efectuar la autenticación mediante objetos compartidos.  Los módulos PAM se pueden apilar para acomodar múltiples fuentes ó aspectos de la autenticación.  Por ejemplo, un módulo de cuentas (account) puede verificar si la cuenta del usuario es válida en el directorio remoto, el módulo de contraseñas (password) puede verificar si la contraseña ingresada es correcta; el módulo de sesión (session) puede presentar un mensaje del sistema al usuario durante el inicio de sesión.  
Junto con NSS, Centrify usa un módulo PAM para proporcionar servicios de autenticación mediante la implementación de Kerberos del Directorio Activo.

Resolución de Nombres en UNIX/Linux
El servidor BIND es el estándar por defecto para proporcionar servicios DNS en UNIX. 
El cliente (basado en la plataforma) se configura mediante el archivo /etc/resolv.conf file.

Gestión de Usuarios Privilegiados en UNIX/Linux
Cuentas compartidas:
En UNIX, la cuenta de super usuari (root) es equivalente a un Dios.  Esta puede impersonar cualquier usuario y puede apoderarse de cualquier archivo o proceso.  Lamentablemente es muy común (hasta en empresas con alto nivel de madurez) que las credenciales del super usuario son compartidas por el personal de TI.  Esto se presta a abuso o error y es generalmente una mala práctica ya que minimiza la posibilidad de establecer la responsabilidad de las acciones del usuario final.
La práctica de usar cuentas compartidas es generalmente considerada como una mala práctica de seguridad que amerita un comentario de auditoría.
sudo
sudo es una utilidad de gestión de privilegios que permite al usuario final la ejecución de un programa en el contexto de seguridad de otro usuario.  Usa el archivo /etc/sudoers.  Esta práctica es bastante confiable y común.

Soluciones Comerciales:
En el mercado existe una variedad de soluciones para resolver el tema de la gestión de privilegios en UNIX.  En este blog noes enfocaremos en el uso del Directorio Activo y Centrify, sin embargo, otros productios incluyen:
  • Soluciones que ussan programación:  com PowerBroker de BeyondTrust
  • Bóvedas de contraseñas:  Como Cyber-Ark
  • A nivel de Kernel:  como Access Control de Computer Associates.

Contabilidad/Auditoría en UNIX/Linux
El syslog es el repositorio principal de mensajes e incluye los eventos de seguridad.  Nota importante, cuando se usa la cuenta de super usuario algunos eventos no son registrados en el syslog!!!!

Administración de Configuraciones on UNIX/Linux
Tradicionalmente, la gestión de configuración se consigue mediante el uso de programas o scripts creados por los administradores de sistemas.  Sin embargo esta técnica no es atractiva a las grandes empresas (a menos que sea una empresa tecnológica como Google o AOL que pueden comercializar los programas desarrollados internamente); por esto tienden a usar soluciones comerciales como Chef, Puppet, etc.

Conceptos Básicos: El Directorio Activo

Un Directorio Evolucionado
El Directorio Activo (o Active Directory (AD) en Inglés) es el servicio de directorio. Se introdujo en Windows 2000 como sucesor de NTDS 4.0 (Servicios de Directorio de Windows NT 4.0).  Microsoft tomo muy buenas decisiones al diseñar el AD, ya que combinó una infraestructura de autenticación basada en el protocolo Kerberos de MIT para aumentar sus capacidades.
El Servicio AD no solo almacena usuarios, computadoras, impresoras, carpetas compartidas, etc.; sino que también, desde la versión 31 (Windows Server 2003 R2) incluye las definiciones del esquema RFC 2307 (veremos este tema más adelante).

En resumen, el Directorio Activo de Microsoft proporciona:
  • Un servicio de directorio LDAP que tiene la capacidad de asegurar objetos con controles de acceso discrecional (objetos asegurables)
  • Una infraestructura de autenticación basada en Kerberos de MIT
  • Directiva de Grupo, para el reforzamiento de políticas de seguridad y gestión de configuraciones
  • Una Entidad de Certificación  que usa la directiva de grupo para la gestión de certificados digitales.
  • Una infraestructura altamente disponible y con capacidad de crecimiento para satisfacer las necesidades de las mas grandes empresas.
Conceptos Básicos del Directorio Activo
Para una explicación profunda, lea este artículo.  Los conceptos básicos son importantes para el aprendizaje del tema en general.
 
ComponenteDescripción
Unidades OrganizativasLas OU (siglas en Inglés) son como carpetas.  Se usan para organizar objetos en el directorio de manera consistente de acuerdo al modelo de gestión adoptado por la empresa.
DominiosLos dominios son contenedores que comparten una base de datos y políticas de seguridad en común.  Piense en ellos como una unidad de administración.  Cada dominio puede alojar millones de objetos.
Arboles de DominiosSon estructuras jerárquicas.  Tienen nombres contiguos, como en el esquema DNS.  Por ejemplo.  sub1.contoso.com y sub2.contoso.com son subdominios del arbol de dominio contoso.com
BosquesUn bosque es una instancia completa del AD.  Puede contener múltiples dominios y comparte la misma estructura global, esquema de la base de datos y configuración.  Los bosques son fronteras de seguridad.
Sitios y ServiciosLos sitios son colecciones de redes conectadas configuradas bajo conexiones de alta velocidad.  Comúnmente una WAN separa los sitios.
Los servicios se asocian a sitios, de manera que los clientes del directorio puedan conectarse a los servidores óptimos.




Resolución de Nombres
El Directorio Activo depende del servicio DNS para proporcionar resolución de nombre de sistemas a dirección IP.  Y el directorio posee la capacidad de almacenar la base de datos DNS dentro de la misma, esto hace que esta base de datos sea replicada y altamente disponible.  Sin embargo, es posible usar servidores como BIND para alojar las zonas del directorio activo, lo único que se requiere es la capacidad de usar "SRV records" para localizar los servidores del directorio.

Domain Controllers
Las Controladoras de Dominio (DC, siglas en Inglés) almacenan una copia de la base de datos del Directorio Activo.  Las DC retornan los resultados de búsquedas LDAP, procesan requerimientos de autenticación (Kerberos), presentan objetos de configuración (directiva de grupo) a los clientes del directorio.  Las comunicaciones entre las DC y los clientes son cifradas.  Hay varios tipos de DCs:
Çatálogos Globales - Contienen un subconjunto de los atributos de todos los objetos del bosque.
RODCs - Controladoras de dominio que son de solo escritura.
Maestras de Operaciones (FSMO en Inglés) - estas son DCs que tienen roles especiales.  Para más información vea este articulo.

Puntos de Conexión
De acuerdo a Microsoft Technet:   "Un punto de conexión representa una ó más instancias de un servicio que está disponible en la red" Centrify usa puntos de conexión de servicio para establecer múltiples instancias de identidades para objetos en el AD.
 
Por ahora estos conceptos son suficientes.  Las secciones denominadas "Conceptos Básicos" cubrirán más temas de esta índole.