Editar: Reformateado esto como Q&A. Si alguien puede cambiar esto de Community Wiki a una pregunta típica, probablemente también sea más apropiado.
¿Cómo puedo autenticar OpenBSD contra Active Directory?
Editar: Reformateado esto como Q&A. Si alguien puede cambiar esto de Community Wiki a una pregunta típica, probablemente también sea más apropiado.
¿Cómo puedo autenticar OpenBSD contra Active Directory?
Respuestas:
Prefacio
La autenticación contra Active Directory con Kerberos es bastante simple en sistemas que usan PAM, pero OpenBSD no lo hace y lo hace más difícil. Desde un tcpdump, parece que los sistemas PAM solo están realizando una autenticación previa, mientras que el sistema bsd_auth de OpenBSD está utilizando todo el proceso de autenticación Kerberos.
De todos modos, esto me llevó un tiempo comprender, así que espero que algunas instrucciones concisas te ahorren tiempo.
Algunas notas rápidas antes de comenzar:
Instrucciones
Estos pasos suponen que está intentando autenticar myuser@myhost.fqdn en el dominio EXAMPLE.COM. El controlador de dominio es pdc.EXAMPLE.COM.
Cree una cuenta de usuario de Active Directory llamada myhost (eso no es un error tipográfico, estas instrucciones no funcionarán con una cuenta de computadora). Desactive la caducidad de la contraseña y no permita que el usuario cambie su propia contraseña. Establezca la contraseña a lo que quiera: se cambiará pronto.
Probablemente sea una buena idea crear la cuenta de usuario bajo una nueva unidad organizativa, eliminarla del grupo de usuarios del dominio y agregarla a un grupo dedicado. Todo esto es cuestión de gustos y de su diseño de seguridad.
En pdc.EXAMPLE.COM, descargue e instale las herramientas de soporte de Windows Server (específicamente, necesitará ktpass.exe)
En pdc.EXAMPLE.COM, ejecute:
ktpass -out c: \ temp \ myhost.keytab -princ host/myhost.fqdn@EXAMPLE.COM -mapuser myhost -pType KRB5
_
NT_PRINCIPAL + rndpass
Esto actualiza la contraseña del usuario myhost a algo aleatorio (+ rndpass), asigna el principal de Kerberos "host/myhost.fqdn@EXAMPLE.COM" al usuario "myhost" en Active Directory, y luego descarga la información de la clave principal y privada en el -out archivo de tabla de claves.
Copie de forma segura c: \ temp \ myhost.keytab a myhost y elimine el archivo de pdc.EXAMPLE.COM
En myhost, agregue la pestaña de teclas AD a su pestaña principal:
ktutil copy /path/to/myhost.keytab /etc/kerberosV/krb5.keytab
Configure /etc/krb5.conf. A continuación se muestra el mínimo que necesita. Hay muchas opciones disponibles, eche un vistazo a la página de manual para obtener más detalles. Esto solo establece el sesgo de reloj máximo aceptable en 5 minutos, hace que EXAMPLE.COM sea el reino predeterminado y le dice a Kerberos cómo traducir entre los dominios DNS y Kerberos.
[libdefaults]
clockskew = 300
default_realm = EJEMPLO.COM[reinos]
EXAMPLE.COM = {
default_domain = EXAMPLE.COM
}[dominio_dominio]
.EXAMPLE.COM = EJEMPLO.COM
Verifique que puede obtener un boleto:
# kinit Administrator@EXAMPLE.COM
Administrator@EXAMPLE.COM's Password:
# klist
Credentials cache: FILE:/tmp/krb5cc_0
Principal: Administrator@EXAMPLE.COM
Issued Expires Principal
Jun 4 21:41:05 Jun 5 07:40:28 krbtgt/EXAMPLE.COM@EXAMPLE.COM
Modifique /etc/login.conf para usar la autenticación Kerberos. Su configuración exacta de login.conf variará dependiendo de cómo use su sistema, pero para pasar de una instalación sencilla a usar Kerberos, simplemente edite y comente esta línea en la clase de inicio de sesión predeterminada:
:tc=auth-defaults:\
Y agregue arriba:
:auth=krb5-or-pwd:\
Esto comprueba Kerberos primero a menos que el usuario sea root. Si Kerberos falla, usará contraseñas locales.
Agregue los usuarios que desea autenticar en este host. Deje las contraseñas en blanco a menos que desee que puedan usar Active Directory y las contraseñas locales (no recomendado).
Puede poner en blanco las contraseñas de los usuarios existentes "chpass <user>
" y reemplazar el valor de "Contraseña cifrada:" con un asterisco (*)
Prueba de SSH y Sudo. Ambos deberían funcionar perfectamente con sus credenciales de Active Directory.
Eso es todo al respecto.
Campo de golf
Un par de sitios útiles:
login_krb5-or-pwd
para /usr/libexec/auth
también los archivos de configuración y la tabla de claves ahora están dentro /etc/heimdal
y no /etc/kerberosV
como en versiones anteriores de OpenBSD.
Una actualización de las instrucciones anteriores, ya que algunas cosas han cambiado desde entonces.
En OpenBSD 5.6, se tomó la decisión de eliminar a Heimdal de la distribución base debido a las preocupaciones sobre la calidad del código y a que nadie estuviera dispuesto a pasar el tiempo para auditarlo. En 5.7 se puso a disposición como un paquete (para 5.6 necesitará compilar desde la fuente o descubrir cómo volver a habilitarlo en la fuente). Entonces, antes de seguir las instrucciones anteriores, se deberán completar los siguientes pasos adicionales:
-3. Instale los paquetes heimdal
y login_krb5
desde su espejo favorito.
-2. Copiar /usr/local/libexec/auth/login_krb5*
a /usr/libexec/auth
.
-1. Si tiene la intención de utilizar mucho las herramientas heimdal, agréguelo /usr/local/heimdal/bin
a la ruta del sistema. De lo contrario, asegúrese de hacer referencia a las herramientas con su ruta completa al usarlas.
Además, los archivos krb5.conf
y krb5.keytab
entran /etc/heimdal
ahora.