Autenticación Kerberos para estaciones de trabajo que no están en el dominio

8

Tengo una comprensión básica de cómo funciona Kerberos en un entorno de Active Directory y los métodos que utiliza para autenticar usuarios y estaciones de trabajo en la red, pero mi pregunta es ... ya que Kerberos se basa en la emisión de un token de seguridad que el usuario final utiliza para acceder recursos de red, ¿cómo pueden los sistemas (computadoras portátiles) en el dominio no tener acceso a los mismos recursos de red utilizando solo el nombre de usuario y la contraseña de un usuario del directorio activo?

Supongo que tendría más sentido si solo usando las credenciales de usuario, Kerberos genera un token de seguridad y lo emite al sistema, pero parece que debería haber más seguridad allí para evitar que un sistema sin dominio acceda a los recursos de la red.

Si alguien pudiera iluminarme, ¡lo agradecería!

Eric
fuente
Pregunta estúpida ... con el uso de Kerberos en un entorno de Active Directory ... ¿hay alguna necesidad de tener NTLM habilitado? No es que esté completamente seguro de que se puede deshabilitar, pero me di cuenta de que en la página wiki joeqwerty vinculada a Microsoft dice que Microsoft no recomienda su uso.
Eric
Si busca un servidor que no tenga su nombre (por ejemplo, \\ 10.12.181.29), recurrirá a NTLM; porque kerberos depende de los nombres de los servidores que coinciden con su certificado.
Ian Boyd

Respuestas:

5

¿De qué manera los sistemas (computadoras portátiles) que no están en el dominio pueden acceder a los mismos recursos de red utilizando solo el nombre de usuario y la contraseña de un usuario del directorio activo?

Depende de qué "recursos de red" estén involucrados. En una computadora Windows unida a un dominio en el que haya iniciado sesión, hay al menos dos identidades Kerberos de cliente en juego:

  • usted, usuario @ DOMINIO
  • la computadora, la estación de trabajo $ @ DOMAIN

También hay host / workstation @ DOMAIN, pero generalmente es la identificación de un servicio que se ejecuta en el host, al que se accede desde otro lugar. Si un proceso privilegiado en el host quiere hacer algo, por ejemplo, agregar su nombre a DNS utilizando DNS dinámico autenticado por Kerberos, utilizará su identidad para hacerlo, estación de trabajo $ @ DOMAIN. Sin embargo, si en su sesión de inicio de sesión accede a algún recurso usted mismo, digamos un recurso compartido de red CIFS o una URL HTTP autenticada, entonces la identidad del cliente es su nombre principal, usuario @ DOMINIO (credenciales para las que se adquieren automáticamente mediante el contraseña que ingresó para iniciar sesión). De su pregunta, parece pensar que hay alguna combinación involucrada; no lo son, están separados.

Es por eso que no hay problema al usar Kerberos para acceder a recursos basados ​​en Windows desde otras plataformas. También puede escribir "kinit user" en un cuadro de Linux, ingresar su contraseña para obtener una credencial Kerberos (TGT) de un controlador de dominio y luego usar Firefox para acceder a una página web autenticada por Kerberos en IIS. Los protocolos para todo esto son estándar, y no necesita nada excepto su credencial de usuario.

Una respuesta anterior afirmó que se requiere NTLM en este caso; eso es falso (aunque ciertamente puede usarse). Sin embargo, cuando accede a algún recurso desde una computadora que no es de dominio y se le solicita su nombre de usuario y contraseña, no necesariamente sabe qué método de autenticación se está utilizando realmente. Podría usar Kerberos. También podría recurrir a un mecanismo basado en contraseña mediante el cual envía su nombre de usuario y contraseña al servidor para su verificación, y luego guarda en caché su contraseña para que no tenga que volver a ingresarla. Muchos protocolos permiten ambos mediante esquemas de abstracción como SASL. Tendrías que mirar en el cable para ver qué está pasando.

Richard E. Silverman
fuente
Si se utilizó Kerberos, entonces puede ver el ticket de servicio en caché con el comando "klist". Si tiene acceso sin que esto provoque el almacenamiento en caché de un ticket de servicio, es probable que haya utilizado NTLM. Para confirmar realmente que usó Kerberos, probablemente tenga que deshabilitar NTLM (en caso de que Windows aún pueda retroceder de Kerberos a NTLM después de haber obtenido un ticket de servicio).
Markus Kuhn
1

Las instrucciones a continuación son sobre cómo autenticarse en un servidor Samba usando Kerberos desde un cliente Windows 7/10 (tal vez otros). No he probado para otra versión de cliente y servidor:

En el cliente de Windows, "Ejecutar como administrador" cmd.exe. Luego ingrese este comando para proporcionar a Windows el conocimiento del controlador de dominio Kerberos (KDC) para kerberos REALM.COM.

Si el KDC está en DNS:

ksetup /addkdc REALM.COM

De otra manera:

ksetup /addkdc REALM.COM kdc01.realm.com

(Ingrese más KDC para el reino REALM.COM si existen. Además, puede agregar otros reinos en cualquier estilo).

Luego use Explorer para acceder a la red compartida de interés. (Por ejemplo, \\samba.realm.com\shareen la barra de direcciones). Se abrirá una solicitud de contraseña si el recurso compartido está protegido.

Deberá especificar el reino en el nombre de usuario. Esto se puede hacer como [email protected]o REALM.COM\user.

Luego ingrese la contraseña.

lickdragon
fuente
0

Conozco al menos un sistema que puede usar kerberos que funciona desde estaciones de trabajo que no son de dominio. El nombre de esta aplicación es "Portal SAP NETWEAVER". Realicé algunos análisis de red en la estación de trabajo y la comunicación, cuando inicio sesión en la aplicación web que se encuentra entre la estación de trabajo y los controladores de dominio. Antes de eso, se realiza una consulta dns para los registros srv _krb del dominio que pasé al campo de nombre de usuario (debe ser el formato de dominio FQDN, por ejemplo, mydomain.local \ myusername). Después de eso, se producen algunas tramas kerberos.

KatTer
fuente