Este documento proporciona un ejemplo de configuración, así como algunas soluciones a problemas comunes. En este documento también se proporcionan técnicas que le ayudarán a resolver cualquier problema. Este documento no aborda el soporte de Telnet con kerberized.
La mayor parte de este material en este artículo proviene de la documentación disponible libremente que viene con Kerberos y de varias preguntas frecuentes (FAQ) disponibles en el paquete. Las configuraciones procedían de un router funcional y del servidor Kerberos KDC.
Este documento asume que ha compilado e instalado correctamente una versión actual de la versión 5 del paquete Kerberos desde MIT. Consulte las referencias al final de este artículo para obtener información sobre cómo obtener, compilar e instalar Kerberos V5.
Tenga en cuenta también que Cisco IOS® Software Release 11.2 o posterior es necesario para el soporte Kerberos V5. Esto proporciona soporte completo para la autenticación del cliente Kerberos V, que incluye el reenvío de credenciales. Los sistemas que tienen infraestructuras Kerberos V pueden utilizar sus centros de distribución de claves (KDC) para autenticar a los usuarios finales para el acceso a la red o al router. Esta es una implementación de cliente y no una implementación de Kerberos KDC.
Kerberos se considera un servicio de seguridad heredado y es más beneficioso en redes que ya utilizan Kerberos.
Refiérase a las notas de la versión 11.2 del software Cisco IOS para obtener información más detallada sobre qué versiones incluyen este soporte.
Para obtener soporte de Kerberos en las versiones posteriores de Cisco IOS Software, refiérase a Software Advisor (sólo clientes registrados) .
No hay requisitos específicos para este documento.
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
Versión 11.2 y posteriores del software del IOS de Cisco
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
For more information on document conventions, refer to the Cisco Technical Tips Conventions.
Kerberos es un protocolo de autenticación de red para su uso en redes físicamente inseguras. Kerberos se basa en el modelo de distribución de claves presentado por Needham y Schroeder. (Véase el número 9 en la sección Referencias de este documento. Se ha diseñado para proporcionar una autenticación sólida para las aplicaciones cliente/servidor mediante el uso de criptografía de clave secreta. Permite a las entidades que se comunican a través de redes probar su identidad entre sí, al tiempo que evita las intercepciones o los ataques de repetición. También se prevé la integridad del flujo de datos (como la detección de modificaciones) y el secreto (como la prevención de la lectura no autorizada) con la ayuda de sistemas criptográficos como DES.
Muchos de los protocolos utilizados en Internet no proporcionan ninguna seguridad. Las herramientas usadas para "detectar" contraseñas fuera de la red son de uso común por parte de los sistemas crackers. Por lo tanto, las aplicaciones que envían una contraseña a través de la red sin cifrar son vulnerables. Además, otras aplicaciones cliente/servidor confían en el programa cliente para ser "honestas" sobre la identidad del usuario que la utiliza. Otras aplicaciones dependen del cliente para restringir sus actividades a las que está autorizado a realizar, sin ninguna otra aplicación por parte del servidor.
Algunos sitios intentan utilizar firewalls para resolver sus problemas de seguridad de red. Los firewalls asumen que "los malos" están fuera, lo que a menudo es una suposición inválida. Sin embargo, la mayoría de los incidentes de delitos informáticos que causan más daños han sido llevados a cabo por personas con información privilegiada. Los firewalls también presentan una desventaja significativa, ya que restringen el modo en que los usuarios pueden utilizar Internet.
El MIT creó Kerberos como solución a estos problemas de seguridad de la red. El protocolo Kerberos utiliza criptografía segura, de modo que un cliente puede probar su identidad a un servidor (y viceversa) a través de una conexión de red insegura. Después de que un cliente y un servidor hayan utilizado Kerberos para probar su identidad, también pueden cifrar todas sus comunicaciones para garantizar la privacidad y la integridad de los datos a medida que avanzan en su negocio.
Kerberos está disponible gratuitamente desde el MIT, bajo un aviso de permiso de autor que es similar al utilizado para el funcionamiento de BSD y el sistema de Windows X11. MIT proporciona Kerberos en forma de origen. Esto se hace para que cualquiera que desee usarlo pueda buscar el código por sí mismo y asegurarse de que el código es confiable. Además, para aquellos que prefieren confiar en un producto con soporte profesional, Kerberos está disponible como producto de muchos proveedores diferentes.
El soporte de cliente Kerberos V5 se basa en el sistema de autenticación Kerberos desarrollado en MIT. En Kerberos, un cliente (generalmente un usuario o un servicio) envía una solicitud de ticket al Centro de distribución de claves (KDC). La KDC crea un ticket de concesión de entradas (TGT) para el cliente, lo cifra con la ayuda de la contraseña del cliente como clave y envía la TGT cifrada de vuelta al cliente. El cliente entonces intenta descifrar la TGT, con la ayuda de su contraseña. Si el cliente descifra correctamente la TGT (por ejemplo, si el cliente da la contraseña correcta), mantiene la TGT descifrada. Esto indica la prueba de la identidad del cliente.
La TGT, que vence en un momento determinado, permite al cliente obtener entradas adicionales, que dan permiso para servicios específicos. Las solicitudes y subvenciones de estas entradas adicionales son transparentes para el usuario.
Dado que Kerberos negocia autenticado, está cifrado opcionalmente y se comunica entre dos puntos cualesquiera en Internet, proporciona una capa de seguridad que no depende de qué lado de un firewall se encuentre uno de los clientes. Kerberos se utiliza principalmente en los protocolos de nivel de aplicación (nivel 7 del modelo ISO), como Telnet o FTP, para proporcionar seguridad de usuario a host. También se utiliza, aunque con menor frecuencia, como el sistema de autenticación implícita de la secuencia de datos (como SOCK_STREAM) o mecanismos RPC (modelo ISO de nivel 6). También se puede utilizar en un nivel inferior para la seguridad de host a host, en protocolos como IP, UDP o TCP (niveles de modelo ISO 3 y 4). Aunque esas implementaciones son poco frecuentes, si es que existen.
Prevé la autenticación mutua y la comunicación segura entre los principales en una red abierta mediante la fabricación de claves secretas para cualquier solicitante. También se proporciona un mecanismo para que estas claves secretas se propaguen de forma segura a través de la red. Kerberos no prevé la autorización ni la contabilidad. Sin embargo, las aplicaciones que deseen utilizar sus claves secretas para realizar esas funciones de forma segura.
Autenticación: asegúrese de ser quien dice ser y de saber quién es.
Cliente: entidad que puede obtener un ticket. Esta entidad suele ser un usuario o un host.
Credenciales: igual que las entradas.
Daemon: un programa, normalmente uno que se ejecuta en un host UNIX, que atiende las solicitudes de autenticación de la red.
Host: equipo al que se puede acceder a través de una red.
Instancia: la segunda parte de una entidad principal Kerberos. Proporciona información que califica al primario. La instancia puede ser nula. En el caso de un usuario, la instancia se utiliza a menudo para describir el uso esperado de las credenciales correspondientes. En el caso de un host, la instancia es el nombre de host completo.
Kerberos: En la mitología griega, el perro de tres cabezas que protege la entrada al submundo. En el mundo de los ordenadores, Kerberos es un paquete de seguridad de red desarrollado en MIT.
KDC: Centro de distribución de claves. Una máquina que emite entradas Kerberos.
Pestaña: archivo de tabla de claves que contiene una o más claves. Un host o servicio utiliza un archivo de ficha de clave de la misma manera que un usuario utiliza su contraseña.
NAS: un servidor de acceso a la red (una caja de Cisco) o cualquier otra cosa que realice solicitudes de autenticación y autorización TACACS+, o que envíe paquetes de contabilidad.
Principal: cadena que nombra una entidad específica a la que se puede asignar un conjunto de credenciales. Generalmente, tiene tres partes denominadas Primario, Instancia y REALM.
El formato típico de un principal Kerberos típico es primary/instanceREALM.
Primario: la primera parte de un principal Kerberos. En el caso de un usuario, es el nombre de usuario. En el caso de un servicio, es el nombre del servicio.
REALM: la red lógica atendida por una única base de datos Kerberos y un conjunto de Centros de Distribución de Claves. Por convención, los nombres de dominio son generalmente letras mayúsculas, para diferenciar el rango del dominio de Internet.
Servicio: cualquier programa o equipo al que se accede a través de una red. Algunos ejemplos de servicios son:
"host": un host (por ejemplo, cuando utiliza Telnet y rsh)
"ftp"—FTP
"krbtgt": autenticación; tales como el billete que concede el billete
"pop": correo electrónico
Venta: conjunto temporal de credenciales electrónicas que verifican la identidad de un cliente para un servicio determinado.
TGT: Billete que concede entradas. Un ticket Kerberos especial que permite al cliente obtener entradas Kerberos adicionales dentro del mismo rango Kerberos.
Una buena analogía para el billete que concede el boleto es un pase de esquí de tres días que es bueno en cuatro complejos turísticos diferentes. Se muestra el pase a cualquier lugar al que se decida ir (hasta que caduque) y se le entrega un billete de ascensor para ese complejo. Una vez que tengas el ticket de ascensor, podrás esquiar todo lo que quieras en el complejo. Si vas a otro complejo al día siguiente, te volverás a mostrar el pase y te traen un billete de ascensor para el nuevo complejo. La diferencia es que los programas Kerberos V5 advierten que usted tiene el pase de esquí del fin de semana y obtiene el ticket de ascensor para usted, así que no tiene que realizar las transacciones usted mismo.
En esta sección se enumeran varios elementos que debe tener en cuenta:
Asegúrese de quitar todos los espacios finales de los archivos de configuración. Los espacios de seguimiento pueden causar problemas con el servidor krb5kdc. De lo contrario, puede obtener un mensaje que diga "krb5kdc no puede iniciar la base de datos para el rango".
Asegúrese de que el reloj del router esté configurado al mismo tiempo que el host UNIX que ejecuta el servidor KDC. Para evitar que los intrusos restablezcan sus relojes del sistema para seguir usando las notificaciones vencidas, Kerberos V5 se configura para rechazar las solicitudes de entradas de cualquier host cuyo reloj no esté dentro del valor máximo especificado del KDC (como se especifica en el archivo kdc.conf). De manera similar, los hosts se configuran para rechazar las respuestas de cualquier KDC cuyo reloj no esté dentro del intervalo máximo de reloj especificado del host (como se especifica en el archivo krb5.conf). El valor predeterminado para la desviación máxima del reloj es de 300 segundos (cinco minutos).
Asegúrese de que DNS funciona correctamente. Varios aspectos de Kerberos dependen del servicio de nombres. Para que Kerberos proporcione su alto nivel de seguridad, es más sensible a los problemas de servicio de nombres que algunas otras partes de su red. Es importante que las entradas del sistema de nombres de dominio (DNS) y los hosts tengan la información correcta. Cada canónico del nombre de host debe ser el nombre de host completo (que incluya el dominio), y cada dirección IP del host debe resolver en sentido inverso el nombre canónico.
El soporte de Kerberos V5 de Cisco IOS no permite el uso de nombres de rango en minúsculas y el código Kerberos en Cisco IOS no autentica a los usuarios si el rango está en minúsculas. Esto se corrigió en la versión 11.2(7) del software del IOS de Cisco.
Consulte Cisco bug ID CSCdj10598 (sólo clientes registrados) .
La única solución alternativa es utilizar nombres REALM en mayúscula (que es convencional).
Los rangos en minúsculas funcionan para recuperar una TGT, pero no una credencial de servicio. Dado que Cisco utiliza su nueva TGT para recuperar una credencial de servicio (utilizada para evitar el ataque de suplantación de KDC) durante la autenticación de registro, la autenticación de Kerberos que utiliza rangos en minúsculas siempre falla.
Kerberos V5 para PPP PAP y CHAP puede bloquear el router. Esto se corrigió en la versión 11.2(6) del software del IOS de Cisco.
Consulte Cisco bug ID CSCdj08828 (sólo clientes registrados) .
La solución temporal para esto es forzar el inicio de sesión exec en el router a través del modo asíncrono interactivo sin autoselect durante el login y luego hacer que el usuario inicie PPP manualmente:
aaa authentication ppp default if-needed krb5 local
Kerberos V5 no realiza la autorización ni la contabilización. Necesita otro código para hacerlo.
La configuración de esta sección representa un router AS5200 completamente configurado que ejecuta Kerberos V5. El router en esta configuración utiliza el servidor Kerberos para autenticar tanto las sesiones VTY como los usuarios que marcan para hacer PPP con la autenticación PAP.
Configuración AS5200 con Kerberos V5 |
---|
version 11.2 service timestamps debug datetime msec ! hostname cisco5200 ! aaa new-model aaa authentication login cisco2 krb5 local aaa authentication ppp cisco krb5 local enable secret enable password ! username cisco password cisco ip host-routing ip domain-name cisco.edu ip name-server 10.10.1.25 ip name-server 10.10.20.3 kerberos local-realm CISCO.EDU kerberos srvtab entry host/cisco5200.cisco.edu@CISCO.EDU 0 861289666 2 1 80:>:11338>531159= ! !--- You do not actually enter the previous line. !--- Enter "kerberos srvtab remote 10.10.1.8 /ts/krb5.keytab" and the !--- the router TFTPs the key entry on its own. kerberos server CISCO.EDU 10.10.1.8 kerberos credentials forward isdn switch-type primary-5ess clock timezone GMT -6 clock summer-time CDT recurring ! controller T1 0 framing esf clock source line primary linecode b8zs pri-group timeslots 1-24 ! controller T1 1 framing esf clock source line secondary linecode b8zs pri-group timeslots 1-24 ! interface Ethernet0 ip address 10.10.110.245 255.255.255.0 no ip mroute-cache ! interface Serial0 no ip address no ip mroute-cache shutdown ! interface Serial1 no ip address no ip mroute-cache shutdown ! interface Serial0:23 ip unnumbered Ethernet0 no ip mroute-cache encapsulation ppp isdn incoming-voice modem no cdp enable ! interface Serial1:23 ip unnumbered Ethernet0 no ip mroute-cache encapsulation ppp isdn incoming-voice modem no cdp enable ! interface Group-Async1 ip unnumbered Ethernet0 no ip mroute-cache encapsulation ppp async mode interactive peer default ip address pool mypool dialer in-band dialer idle-timeout 9999 dialer-group 1 no cdp enable ppp authentication pap cisco group-range 1 48 ! ip local pool mypool 10.10.110.97 10.10.110.144 no ip classless ip route 0.0.0.0 0.0.0.0 10.10.110.254 ! dialer-list 1 protocol ip permit ! line con 0 login authentication test line 1 48 autoselect ppp login authentication cisco2 modem InOut transport input all line aux 0 modem InOut transport input all flowcontrol hardware line vty 0 10 exec-timeout 0 0 login authentication cisco2 ! end |
Asegúrese de tener los puertos adecuados configurados para inetd.
Nota: En este ejemplo se utilizan envolturas. Si desea encriptar Telnet, debe reemplazar Telnet normal por Telnet con kerberized, de modo que estos archivos tengan una apariencia diferente.
# cat /etc/services ---------------------------------------------------------------- # # Syntax: ServiceName PortNumber/ProtocolName [alias\_1,...,alias\_n] [#comments] # # ServiceName official Internet service name # PortNumber the socket port number used for the service # ProtocolName the transport protocol used for the service # alias unofficial service names # #comments text following the comment character (#) is ignored # tftp 69/udp kerberos 88/udp kdc kerberos 88/tcp kdc kxct 549/tcp klogin 543/tcp # Kerberos authenticated rlogin kshell 544/tcp cmd # and remote shell kerberos-adm 749/tcp # Kerberos 5 admin/changepw kerberos-adm 749/udp # Kerberos 5 admin/changepw kerberos-sec 750/udp kdc # Kerberos authentication--udp kerberos-sec 750/tcp kdc # Kerberos authentication--tcp krb5\_prop 754/tcp # Kerberos slave propagation eklogin 2105/tcp # Kerberos auth. & encrypted rlogin krb524 4444/tcp # Kerberos 5 to 4 ticket translator ---------------------------------------------------------------- #cat /etc/inetd.conf ident stream tcp nowait root /usr/local/etc/in.identd in.identd ftp stream tcp nowait root /usr/sbin/tcpd ftpd telnet stream tcp nowait root /usr/sbin/tcpd telnetd #shell stream tcp nowait root /usr/sbin/tcpd rshd shell stream tcp nowait root /usr/sbin/rshd rshd #login stream tcp nowait root /usr/sbin/tcpd rlogind login stream tcp nowait root /usr/sbin/rlogind rlogind exec stream tcp nowait root /usr/sbin/rexecd rexecd # Run as user "uucp" if you don't want uucpd's wtmp entries. #uucp stream tcp nowait root /usr/sbin/uucpd uucpd #finger stream tcp nowait root /usr/sbin/tcpd fingerd # tftp was /tmp and is now /ts for terminal server macros tftp dgram udp wait nobody /usr/sbin/tcpd tftpd /ts comsat dgram udp wait root /usr/sbin/comsat comsat -----------------------------------------------------------------
A continuación, debe configurar algunos archivos de configuración Kerberos que lea el servidor KDC. Para obtener más información sobre el significado de estos parámetros, refiérase a la Guía de Instalación de Kerberos o a la Guía de Administración del Sistema.
# cat /etc/krb5.conf [libdefaults] default_realm = CISCO.EDU ticket_lifetime = 600 default_tgs_enctypes = des-cbc-crc default_tkt_enctypes = des-cbc-crc [realms] CISCO.EDU = { kdc = ciscoaxa.cisco.edu:88 admin_server = ciscoaxa.cisco.edu default_domain = CISCO.EDU } [domain_realm] .cisco.edu = CISCO.EDU cisco.edu = CISCO.EDU [logging] kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmin.log default = FILE:/var/log/krb5lib.log # cat /usr/local/var/krb5kdc/kdc.conf [kdcdefaults] kdc_ports = 88,750 [realms] CISCO.EDU = { database_name = /usr/local/var/krb5kdc/principal admin_keytab = FILE:/usr/local/var/krb5kdc/kadm5.keytab acl_file = /usr/local/var/krb5kdc/kadm5.acl acl_file = /usr/local/var/krb5kdc/kadm5.dict key_stash_file = /usr/local/var/krb5kdc/.k5.CISCO.EDU kadmind_port = 749 max_life = 10h 0m 0s max_renewable_life = 7d 0h 0m 0s master_key_type = des-cbc-crc supported_enctypes = des-cbc-crc:normal des:normal des:v4 des:norealm des:onlyrealm des:afs3 }
A continuación, debe crear la base de datos que utiliza el servidor de KDC.
Ingrese el comando kdb5_util:
# kadmin/dbutil/kdb5_util Usage: kdb5_util cmd [-r realm] [-d dbname] [-k mkeytype] [-M mkeyname] [-m] [cmd options] create [-s] destroy [-f] stash [-f keyfile] dump [-old] [-ov] [-b6] [-verbose] [filename [princs...]] load [-old] [-ov] [-b6] [-verbose] [-update] filename dump_v4 [filename] load_v4 [-t] [-n] [-v] [-K] [-s stashfile] inputfile --------------------------------------------------------- # kadmin/dbutil/kdb5_util destroy -r cisco.edu kdb5_util: No such file or directory while setting active database to "/usr/local/var/krb5kdc/principal" # kadmin/dbutil/kdb5_util create -r CISCO.EDU -s Initializing database '/usr/local/var/krb5kdc/principal' for realm 'CISCO.EDU', master key name 'K/M@CISCO.EDU' You will be prompted for the database Master Password. It is important that you NOT FORGET this password. Enter KDC database master key: Re-enter KDC database master key to verify:
Esto es necesario para recuperar la contraseña srvtab del router a través de TFTP con el comando kerberos srvtab remote.
# kadmin/dbutil/kdb5_util stash -r CISCO.EDU Enter KDC database master key:
Para agregar directores y usuarios a la base de datos, utilice el comando kadmin.local:
# kadmin/cli/kadmin.local kadmin.local: listprincs kadmin/admin@CISCO.EDU kadmin/changepw@CISCO.EDU K/M@CISCO.EDU krbtgt/CISCO.EDU@CISCO.EDU kadmin/history@CISCO.EDU kadmin.local: kadmin.local: ? Available kadmin.local requests: add_principal, addprinc, ank Add principal delete_principal, delprinc Delete principal modify_principal, modprinc Modify principal change_password, cpw Change password get_principal, getprinc Get principal list_principals, listprincs, get_principals, getprincs List principals add_policy, addpol Add policy modify_policy, modpol Modify policy delete_policy, delpol Delete policy get_policy, getpol Get policy list_policies, listpols, get_policies, getpols List policies get_privs, getprivs Get privileges ktadd, xst Add entry(s) to a keytab ktremove, ktrem Remove entry(s) from a keytab list_requests, lr, ? List available requests. quit, exit, q Exit program. -----------------------------------------
Agregar un usuario:
kadmin.local: ank cisco1@CISCO.EDU Enter password for principal "cisco1@CISCO.EDU": Re-enter password for principal "cisco1@CISCO.EDU": Principal "cisco1@CISCO.EDU" created.
Obtener una lista de la base de datos actual:
kadmin.local: listprincs kadmin/admin@CISCO.EDU kadmin/changepw@CISCO.EDU cisco1@CISCO.EDU K/M@CISCO.EDU krbtgt/CISCO.EDU@CISCO.EDU kadmin/history@CISCO.EDU
Agregue la entrada para el router Cisco:
kadmin.local: ank host/cisco5200.cisco.edu@CISCO.EDU Enter password for principal "host/cisco5200.cisco.edu@CISCO.EDU": Re-enter password for principal "host/cisco5200.cisco.edu@CISCO.EDU": Principal "host/cisco5200.cisco.edu@CISCO.EDU" created.
Extraiga una clave de la tabla para el router Cisco:
kadmin.local: ktadd host/cisco5200.cisco.edu@CISCO.EDU Entry for principal host/cisco5200.cisco.edu@CISCO.EDU with kvno 2, encryption type DES-CBC-CRC added to keytab WRFILE:/etc/krb5.keytab.
Eche otro vistazo a la base de datos:
kadmin.local: listprincs kadmin/admin@CISCO.EDU kadmin/changepw@CISCO.EDU cisco1@CISCO.EDU K/M@CISCO.EDU krbtgt/CISCO.EDU@CISCO.EDU kadmin/history@CISCO.EDU host/cisco5200.cisco.edu@CISCO.EDU kadmin.local: quit
Mueva el archivo keytab a un lugar donde el router pueda llegar a él:
# cp /etc/krb5.keytab /ts/ # chmod 777 /ts/krb5.keytab
Inicie el servidor KDC:
# kdc/krb5kdc #
Verifique para asegurarse de que se ejecute realmente:
# ps -A | grep 'krb5' 6043 ?? I 0:00.01 kdc/krb5kdc 23427 ttypf S + 0:00.05 grep krb5
Obligar al router a leer su entrada de tabla de claves:
cisco5200(config)#kerberos srvtab remote 10.10.1.8 /ts/krb5.keytab Loading /ts/krb5.keytab from 10.10.1.8 (via Ethernet0): ! [OK - 229/1000 bytes]
Verifique el router para asegurarse de que todo está listo:
cisco5200#write terminal aaa new-model aaa authentication login cisco2 krb5 local aaa authentication ppp cisco krb5 local kerberos local-realm CISCO.EDU kerberos srvtab entry host/cisco5200.cisco.edu@CISCO.EDU 0 861289666 2 1 8 0:>:11338>531159= kerberos server CISCO.EDU 10.10.1.8 kerberos credentials forward
Active la depuración e intente iniciar sesión en el router:
cisco5200#terminal monitor cisco5200#debug kerberos Kerberos debugging is on cisco5200#debug aaa authen AAA Authentication debugging is on cisco5200#show clock 10:16:41.797 CDT Thu Apr 17 1997 cisco5200# Apr 17 15:16:58.965: AAA/AUTHEN: create_user user='' ruser='' port='tty51' rem_addr='12.12.109.64' authen_TYPE=ASCII service=LOGIN priv=1 Apr 17 15:16:58.969: AAA/AUTHEN/START (0): port='tty51' list='cisco2' ACTION=LOGIN service=LOGIN Apr 17 15:16:58.969: AAA/AUTHEN/START (1957396): found list Apr 17 15:16:58.973: AAA/AUTHEN/START (1667706374): METHOD=KRB5 Apr 17 15:16:58.973: AAA/AUTHEN (1667706374): status = GETUSER Apr 17 15:17:02.493: AAA/AUTHEN/CONT (1667706374): continue_login Apr 17 15:17:02.493: AAA/AUTHEN (1667706374): status = GETUSER Apr 17 15:17:02.497: AAA/AUTHEN (1667706374): METHOD=KRB5 Apr 17 15:17:02.497: AAA/AUTHEN (1667706374): status = GETPASS Apr 17 15:17:05.401: AAA/AUTHEN/CONT (1667706374): continue_login Apr 17 15:17:05.405: AAA/AUTHEN (1667706374): status = GETPASS Apr 17 15:17:05.405: AAA/AUTHEN (1667706374): METHOD=KRB5 Apr 17 15:17:05.413: Kerberos: Requesting TGT with expiration date of 861319025 Apr 17 15:17:05.417: Kerberos: Sending TGT request with no pre-authorization data. Apr 17 15:17:05.441: Kerberos: Sent TGT request to KDC Apr 17 15:17:06.405: Kerberos: Received TGT reply from KDC Apr 17 15:17:06.465: Domain: query for 245.110.10.10.in-addr.arpa to 10.10.1.25 Reply received ok Apr 17 15:17:06.569: Kerberos: Sent TGT request to KDC Apr 17 15:17:06.769: Kerberos: Received TGT reply from KDC Apr 17 15:17:06.881: Kerberos: Received valid credential with endtime of 861232625 Apr 17 15:17:06.897: AAA/AUTHEN (1667706374): status = PASS
Este es un usuario PPP que se autentica correctamente.
cisco5200#debug ppp auth Apr 17 15:47:15.285: Async6: Dialer received incoming call from <unknown> %LINK-3-UPDOWN: Interface Async6, changed state to up Apr 17 15:47:17.293: Async6: Dialer received incoming call from <unknown> Apr 17 15:47:17.909: PPP Async6: PAP receive authenticate request cisco1 Apr 17 15:47:17.913: PPP Async6: PAP authenticating peer cisco1 Apr 17 15:47:17.917: AAA/AUTHEN: create_user user='cisco1' ruser='' port='Async6' rem_addr='async/6151010' authen_TYPE=PAP service=PPP priv=1 Apr 17 15:47:17.917: AAA/AUTHEN/START (0): port='Async6' list='cisco' ACTION=LOGIN service=PPP Apr 17 15:47:17.921: AAA/AUTHEN/START (4706358): found list Apr 17 15:47:17.921: AAA/AUTHEN/START (712179591): METHOD=KRB5 Apr 17 15:47:17.929: Kerberos: Requesting TGT with expiration date of 861320837 Apr 17 15:47:17.933: Kerberos: Sending TGT request with no pre-authorization data. Apr 17 15:47:17.957: Kerberos: Sent TGT request to KDC Apr 17 15:47:18.765: Kerberos: Received TGT reply from KDC Apr 17 15:47:18.893: Kerberos: Sent TGT request to KDC Apr 17 15:47:19.097: Kerberos: Received TGT reply from KDC Apr 17 15:47:19.205: Kerberos: Received valid credential with endtime of 861234437 Apr 17 15:47:19.221: AAA/AUTHEN (712179591): status = PASS Apr 17 15:47:19.225: PPP Async6: Remote passed PAP authentication sending Auth-Ack. Apr 17 15:47:19.225: Async6: authenticated host cisco1 with no matching dialer map %LINEPROTO-5-UPDOWN: Line protocol on Interface Async6, changed state to up
Esta sección contiene varios escenarios de posibles problemas. Estas depuraciones le ayudan a ver rápidamente un problema.
cisco5200# cisco5200#configure terminal Enter configuration commands, one per line. End with CNTL/Z. cisco5200(config)#kerberos local-realm junk.COM cisco5200# Apr 17 15:19:16.089: AAA/AUTHEN: create_user user='' ruser='' port='tty51' rem_addr='12.12.109.64' authen_TYPE=ASCII service=LOGIN priv=1 Apr 17 15:19:16.093: AAA/AUTHEN/START (0): port='tty51' list='cisco2' ACTION=LOGIN service=LOGIN Apr 17 15:19:16.097: AAA/AUTHEN/START (1957396): found list Apr 17 15:19:16.129: AAA/AUTHEN/START (56280416): METHOD=KRB5 Apr 17 15:19:16.129: AAA/AUTHEN (56280416): status = GETUSER Apr 17 15:19:21.721: AAA/AUTHEN/CONT (56280416): continue_login Apr 17 15:19:21.721: AAA/AUTHEN (56280416): status = GETUSER Apr 17 15:19:21.725: AAA/AUTHEN (56280416): METHOD=KRB5 Apr 17 15:19:21.725: AAA/AUTHEN (56280416): status = GETPASS Apr 17 15:19:26.057: AAA/AUTHEN/CONT (56280416): continue_login Apr 17 15:19:26.057: AAA/AUTHEN (56280416): status = GETPASS Apr 17 15:19:26.061: AAA/AUTHEN (56280416): METHOD=KRB5 Apr 17 15:19:26.065: Kerberos: Requesting TGT with expiration date of 861319166 Apr 17 15:19:26.069: Kerberos: Sending TGT request with no pre-authorization data. Apr 17 15:19:26.089: Kerberos: Received invalid credential. ~~~~~~~~~~~~~~~~~~~ Apr 17 15:19:26.093: AAA/AUTHEN (56280416): password incorrect Apr 17 15:19:26.097: AAA/AUTHEN (56280416): status = FAIL Apr 17 15:19:28.169: AAA/AUTHEN: free user cisco1 tty51 12.12.109.64 authen_TYPE=ASCII service=LOGIN priv=1 Apr 17 15:19:28.173: AAA/AUTHEN: create_user user='' ruser='' port='tty51' rem_addr='12.12.109.64' authen_TYPE=ASCII service=LOGIN priv=1 Apr 17 15:19:28.177: AAA/AUTHEN/START (0): port='tty51' list='cisco2' ACTION=LOGIN service=LOGIN Apr 17 15:19:28.177: AAA/AUTHEN/START (1957396): found list Apr 17 15:19:28.181: AAA/AUTHEN/START (126312328): METHOD=KRB5 Apr 17 15:19:28.181: AAA/AUTHEN (126312328): status = GETUSER
Apr 10 17:22:15.370: Kerberos: Requesting TGT with expiration date of 860721735 Apr 10 17:22:15.374: Kerberos: Sending TGT request with no pre-authorization data. Apr 10 17:22:15.398: Kerberos: Sent TGT request to KDC Apr 10 17:22:16.034: Kerberos: Received TGT reply from KDC Apr 10 17:22:16.090: Domain: query for 245.110.10.10.in-addr.arpa to 255.255.255.255 Reply received empty ~~~~
pppcisco1# Apr 18 20:41:41.011: AAA/AUTHEN: create_user user='' ruser='' port='tty51' rem_addr='171.68.109.64' authen_TYPE=ASCII service=LOGIN priv=1 Apr 18 20:41:41.011: AAA/AUTHEN/START (0): port='tty51' list='cisco2' ACTION=LOGIN service=LOGIN Apr 18 20:41:41.015: AAA/AUTHEN/START (1957396): found list Apr 18 20:41:41.015: AAA/AUTHEN/START (4036314657): METHOD=KRB5 Apr 18 20:41:41.019: AAA/AUTHEN (4036314657): status = GETUSER Apr 18 20:41:43.835: AAA/AUTHEN/CONT (4036314657): continue_login Apr 18 20:41:43.839: AAA/AUTHEN (4036314657): status = GETUSER Apr 18 20:41:43.839: AAA/AUTHEN (4036314657): METHOD=KRB5 Apr 18 20:41:43.843: AAA/AUTHEN (4036314657): status = GETPASS Apr 18 20:41:48.835: AAA/AUTHEN/CONT (4036314657): continue_login Apr 18 20:41:48.839: AAA/AUTHEN (4036314657): status = GETPASS Apr 18 20:41:48.839: AAA/AUTHEN (4036314657): METHOD=KRB5 Apr 18 20:41:48.847: Kerberos: Requesting TGT with expiration date of 861424908 Apr 18 20:41:48.851: Kerberos: Sending TGT request with no pre-authorization data. Apr 18 20:41:48.875: Kerberos: Sent TGT request to KDC Apr 18 20:41:49.675: Kerberos: Received TGT reply from KDC Apr 18 20:41:49.795: Kerberos: Sent TGT request to KDC Apr 18 20:41:50.119: Kerberos: Received TGT reply from KDC Apr 18 20:41:50.155: AAA/AUTHEN (4036314657): password incorrect Apr 18 20:41:50.159: AAA/AUTHEN (4036314657): status = FAIL Apr 18 20:41:52.235: AAA/AUTHEN: free user cisco1 tty51 171.68.109.64 authen_TYPE=ASCII service=LOGIN priv=1 Apr 18 20:41:52.239: AAA/AUTHEN: create_user user='' ruser='' port='tty51' rem_addr='171.68.109.64' authen_TYPE=ASCII service=LOGIN priv=1 Apr 18 20:41:52.243: AAA/AUTHEN/START (0): port='tty51' list='cisco2' A CTION=LOGIN service=LOGIN Apr 18 20:41:52.243: AAA/AUTHEN/START (1957396): found list Apr 18 20:41:52.247: AAA/AUTHEN/START (1817975874): METHOD=KRB5 Apr 18 20:41:52.247: AAA/AUTHEN (1817975874): status = GETUSER Apr 18 20:42:08.143: AAA/AUTHEN/ABORT: (1817975874) because Carrier dropped. Apr 18 20:42:08.147: AAA/AUTHEN: free user tty51 171.68.109.64 authen_TYPE=ASCII service=LOGIN priv=1 ----------------------
Esto es lo que ve el usuario:
$telnet 10.10.110.245 Trying 10.10.110.245 ... Connected to 10.10.110.245. Escape character is '^]'. User Access Verification Username: cisco1 Password: Kerberos: Failed to retrieve temporary service credentials! Kerberos: Failed to validate TGT! % Access denied Username:
Apr 18 19:04:49.983: AAA/AUTHEN: create_user user='' ruser='' port='tty51' rem_addr='171.68.109.64' authen_TYPE=ASCII service=LOGIN priv=1 Apr 18 19:04:49.987: AAA/AUTHEN/START (0): port='tty51' list='cisco2' ACTION=LOGIN service=LOGIN Apr 18 19:04:49.987: AAA/AUTHEN/START (1957396): found list Apr 18 19:04:49.991: AAA/AUTHEN/START (3962282505): METHOD=KRB5 Apr 18 19:04:49.995: AAA/AUTHEN (3962282505): status = GETUSER Apr 18 19:04:53.475: AAA/AUTHEN/CONT (3962282505): continue_login Apr 18 19:04:53.479: AAA/AUTHEN (3962282505): status = GETUSER Apr 18 19:04:53.479: AAA/AUTHEN (3962282505): METHOD=KRB5 Apr 18 19:04:53.483: AAA/AUTHEN (3962282505): status = GETPASS Apr 18 19:04:56.283: AAA/AUTHEN/CONT (3962282505): continue_login Apr 18 19:04:56.283: AAA/AUTHEN (3962282505): status = GETPASS Apr 18 19:04:56.287: AAA/AUTHEN (3962282505): METHOD=KRB5 Apr 18 19:04:56.291: Kerberos: Requesting TGT with expiration date of 861419096 Apr 18 19:04:56.295: Kerberos: Sending TGT request with no pre-authorization data. Apr 18 19:04:56.323: Kerberos: Sent TGT request to KDC Apr 18 19:04:56.355: Kerberos: Received TGT reply from KDC Apr 18 19:04:56.363: Kerberos: Client not found in Kerberos database ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Apr 18 19:04:56.371: Kerberos: Received invalid credential. Apr 18 19:04:56.375: AAA/AUTHEN (3962282505): password incorrect Apr 18 19:04:56.379: AAA/AUTHEN (3962282505): status = FAIL Apr 18 19:04:58.679: AAA/AUTHEN: free user cisco3 tty51 171.68.109.64 authen_TYPE=ASCII service=LOGIN priv=1 Apr 18 19:04:58.687: AAA/AUTHEN: create_user user='' ruser='' port='tty51' rem_addr='171.68.109.64' authen_TYPE=ASCII service=LOGIN priv=1 Apr 18 19:04:58.687: AAA/AUTHEN/START (0): port='tty51' list='cisco2' ACTION=LOGIN service=LOGIN Apr 18 19:04:58.691: AAA/AUTHEN/START (1957396): found list Apr 18 19:04:58.743: AAA/AUTHEN/START (1209738018): METHOD=KRB5 Apr 18 19:04:58.747: AAA/AUTHEN (1209738018): status = GETUSER Apr 18 19:05:04.863: AAA/AUTHEN/ABORT: (1209738018) because Carrier dropped. Apr 18 19:05:04.863: AAA/AUTHEN: free user tty51 171.68.109.64 authen_TYPE=ASCII service=LOGIN priv=1
Apr 18 19:06:05.427: AAA/AUTHEN: create_user user='' ruser='' port='tty51' rem_addr='171.68.109.64' authen_TYPE=ASCII service=LOGIN priv=1 Apr 18 19:06:05.427: AAA/AUTHEN/START (0): port='tty51' list='cisco2' ACTION=LOGIN service=LOGIN Apr 18 19:06:05.431: AAA/AUTHEN/START (1957396): found list Apr 18 19:06:05.431: AAA/AUTHEN/START (3693437965): METHOD=KRB5 Apr 18 19:06:05.435: AAA/AUTHEN (3693437965): status = GETUSER Apr 18 19:06:07.763: AAA/AUTHEN/CONT (3693437965): continue_login Apr 18 19:06:07.763: AAA/AUTHEN (3693437965): status = GETUSER Apr 18 19:06:07.767: AAA/AUTHEN (3693437965): METHOD=KRB5 Apr 18 19:06:07.767: AAA/AUTHEN (3693437965): status = GETPASS Apr 18 19:06:14.895: AAA/AUTHEN/CONT (3693437965): continue_login Apr 18 19:06:14.899: AAA/AUTHEN (3693437965): status = GETPASS Apr 18 19:06:14.899: AAA/AUTHEN (3693437965): METHOD=KRB5 Apr 18 19:06:14.907: Kerberos: Requesting TGT with expiration date of 861419174 Apr 18 19:06:14.907: Kerberos: Sending TGT request with no pre-authorization data. Apr 18 19:06:14.935: Kerberos: Sent TGT request to KDC Apr 18 19:06:15.643: Kerberos: Received TGT reply from KDC Apr 18 19:06:15.683: Kerberos: Received invalid credential. Apr 18 19:06:15.687: AAA/AUTHEN (3693437965): password incorrect ~~~~~~~~~~~~~~~~~~ Apr 18 19:06:15.691: AAA/AUTHEN (3693437965): status = FAIL Apr 18 19:06:17.695: AAA/AUTHEN: free user cisco1 tty51 171.68.109.64 authen_TYPE=ASCII service=LOGIN priv=1 Apr 18 19:06:17.699: AAA/AUTHEN: create_user user='' ruser='' port='tty51' rem_addr='171.68.109.64' authen_TYPE=ASCII service=LOGIN priv=1 Apr 18 19:06:17.703: AAA/AUTHEN/START (0): port='tty51' list='cisco2' ACTION=LOGIN service=LOGIN Apr 18 19:06:17.703: AAA/AUTHEN/START (1957396): found list Apr 18 19:06:17.707: AAA/AUTHEN/START (1568599595): METHOD=KRB5 Apr 18 19:06:17.707: AAA/AUTHEN (1568599595): status = GETUSER Apr 18 19:06:22.751: AAA/AUTHEN/ABORT: (1568599595) because Carrier dropped. Apr 18 19:06:22.755: AAA/AUTHEN: free user tty51 171.68.109.64 authen_TYPE=ASCII service=LOGIN priv=1
El usuario ve este resultado:
Trying 10.10.110.245 ... Connected to 10.10.110.245. Escape character is '^]'. User Access Verification Username: cisco1 Password: % Access denied Username:
pppcisco1# %SYS-5-CONFIG_I: Configured from console by vty0 (171.68.109.64) Apr 18 19:08:55.799: AAA/AUTHEN: create_user user='' ruser='' port='tty51' rem_addr='171.68.109.64' authen_TYPE=ASCII service=LOGIN priv=1 Apr 18 19:08:55.803: AAA/AUTHEN/START (0): port='tty51' list='cisco2' ACTION=LOGIN service=LOGIN Apr 18 19:08:55.807: AAA/AUTHEN/START (1957396): found list Apr 18 19:08:55.807: AAA/AUTHEN/START (3369934519): METHOD=KRB5 Apr 18 19:08:55.811: AAA/AUTHEN (3369934519): status = GETUSER Apr 18 19:08:59.011: AAA/AUTHEN/CONT (3369934519): continue_login Apr 18 19:08:59.011: AAA/AUTHEN (3369934519): status = GETUSER Apr 18 19:08:59.015: AAA/AUTHEN (3369934519): METHOD=KRB5 Apr 18 19:08:59.015: AAA/AUTHEN (3369934519): status = GETPASS Apr 18 19:09:02.219: AAA/AUTHEN/CONT (3369934519): continue_login Apr 18 19:09:02.219: AAA/AUTHEN (3369934519): status = GETPASS Apr 18 19:09:02.223: AAA/AUTHEN (3369934519): METHOD=KRB5 Apr 18 19:09:02.231: Kerberos: Requesting TGT with expiration date of 861419342 Apr 18 19:09:02.231: Kerberos: Sending TGT request with no pre-authorization data. Apr 18 19:09:02.259: Kerberos: Sent TGT request to KDC Apr 18 19:09:02.311: Kerberos: Received TGT reply from KDC Apr 18 19:09:02.435: Kerberos: Sent TGT request to KDC Apr 18 19:09:02.555: Kerberos: Received TGT reply from KDC Apr 18 19:09:02.643: AAA/AUTHEN (3369934519): password incorrect Apr 18 19:09:02.643: AAA/AUTHEN (3369934519): status = FAIL Apr 18 19:09:04.779: AAA/AUTHEN: free user cisco1 tty51 171.68.109.64 authen_TYPE=ASCII service=LOGIN priv=1 Apr 18 19:09:04.783: AAA/AUTHEN: create_user user='' ruser='' port='tty51' rem_addr='171.68.109.64' authen_TYPE=ASCII service=LOGIN priv=1 Apr 18 19:09:04.787: AAA/AUTHEN/START (0): port='tty51' list='cisco2' ACTION=LOGIN service=LOGIN Apr 18 19:09:04.791: AAA/AUTHEN/START (1957396): found list Apr 18 19:09:04.843: AAA/AUTHEN/START (2592922252): METHOD=KRB5 Apr 18 19:09:04.843: AAA/AUTHEN (2592922252): status = GETUSER Apr 18 19:09:11.751: AAA/AUTHEN/ABORT: (2592922252) because Carrier dropped. Apr 18 19:09:11.755: AAA/AUTHEN: free user tty51 171.68.109.64 authen_TYPE=ASCII service=LOGIN priv=1
Esto es lo que ve el usuario:
Trying 10.10.110.245 ... Connected to 10.10.110.245. Escape character is '^]'. User Access Verification Username: cisco1 Password: Failed to retrieve SRVTAB key! Kerberos: Failed to validate TGT! % Access denied Username:
Guía del administrador del sistema Kerberos V5 (se incluye en un archivo comprimido y comprimido)
Guía de instalación Kerberos V5
Guía del usuario Kerberos V5 UNIX
Servicio de autenticación de red Kerberos (USC/ISI's GOST Group)
Jennifer G. Steiner, Clifford Neuman, Jeffrey I. Schiller. "Kerberos: Un servicio de autenticación para sistemas de red abierta ", USENIX Mar 1988
S P. Miller, B. C. Neuman, J. Yo. Schiller y J. H. Saltzer, "Kerberos Authentication and Authorization System", 21/12/87
R. M. Needham y M. D. Schroeder, "Using Encryption for Authentication in Large Networks of Computers", Comunicaciones de ACM, Vol. 21(12), pp. 993-999 (diciembre de 1978)
V. L. Voydock y S. T. Kent, "Security Mecms in High-Level Network Protocols", Computing Surveys, vol. 15(2), ACM (junio de 1983)
Li Gong, "A Security Risk of Depender on Synchronized Clocks", Operating Systems Review, Vol 26, #1, pp 49-53
C. Neuman y J. Kohl, "The Kerberos Network Authentication Service (V5)", RFC 1510, septiembre de 1993
B Clifford Neuman y Theodore Ts'o, "Kerberos: Un servicio de autenticación para redes informáticas", IEEE Communications, 32(9), septiembre de 1994
Nota: Muchos de estos documentos, que incluyen el de Neuman, Schiller y Steiner (#9) también están disponibles a través de FTP desde MIT Athena System — Kerberos Documentation . Para obtener copias de RFC, consulte Obtención de RFCs y Documentos de Estándares.