Este documento describe cómo configurar un router Cisco para la autenticación con TACACS+ que se ejecuta en UNIX. TACACS+ no ofrece tantas funciones como la versión comercializada de Cisco Secure ACS for Windows o Cisco Secure ACS UNIX.
El software TACACS+ proporcionado anteriormente por Cisco Systems se ha descontinuado y ya no es compatible con Cisco Systems.
Hoy en día, puedes encontrar muchas versiones disponibles de TACACS+ freeware cuando buscas "TACACS+ freeware" en tu motor de búsqueda favorito de Internet. Cisco no recomienda específicamente ninguna implementación de software gratuito TACACS+ en particular.
Cisco Secure Access Control Server (ACS) puede adquirirse a través de los canales de distribución y ventas habituales de Cisco en todo el mundo. Cisco Secure ACS para Windows incluye todos los componentes necesarios para una instalación independiente en una estación de trabajo Microsoft Windows. Cisco Secure ACS Solution Engine se suministra con una licencia de software Cisco Secure ACS preinstalada. Visite la página de inicio de pedidos de Cisco (sólo para clientes registrados) para realizar un pedido.
Nota: Necesita una cuenta de CCO con un contrato de servicio asociado para obtener la versión de prueba de 90 días de Cisco Secure ACS para Windows.
La configuración del router en este documento se desarrolló en un router que ejecuta Cisco IOS® Software Release 11.3.3. Cisco IOS Software Release 12.0.5.T y posteriores utilizan group tacacs+ en lugar de tacacs+, por lo que las sentencias tales como aaa authentication login default tacacs+ enable aparecen como aaa authentication login default group tacacs+ enable.
Consulte la documentación del software Cisco IOS para obtener información más completa sobre los comandos del router.
No hay requisitos específicos para este documento.
La información de este documento se basa en Cisco IOS Software Release 11.3.3 y Cisco IOS Software Release 12.0.5.T y posteriores.
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). If your network is live, make sure that you understand the potential impact of any command.
Complete estos pasos:
Asegúrese de haber compilado el código TACACS+ (TAC+) en el servidor UNIX.
Las configuraciones de servidor aquí asumen que usted utiliza el código de servidor de Cisco TAC+. Las configuraciones del router deben funcionar independientemente de si el código del servidor es código del servidor de Cisco. TAC+ debe ejecutarse como raíz; su a root si es necesario.
Copie el archivo test_file al final de este documento, colóquelo en el servidor TAC+ y denomínelo test_file.
Asegúrese de que el daemon tac_plus_ejecutable comience con test_file. En este comando, la opción -P verifica los errores de compilación pero no inicia el demonio:
tac_plus_executable -P -C test_file
Es posible que vea el contenido de test_file desplazándose hacia abajo por la ventana, pero no debería ver mensajes como no se encuentra el archivo, se esperaba cleartext—found cleartext o inesperado }. Si hay errores, compruebe las rutas de acceso a test_file, vuelva a comprobar lo escrito y vuelva a comprobar antes de continuar.
Comience a configurar TAC+ en el router.
Ingrese enable mode y escriba configure terminal antes del conjunto de comandos. Esta sintaxis de comando garantiza que no se le bloquee inicialmente el router, siempre que tac_plus_ejecutable no se esté ejecutando:
!--- Turn on TAC+. aaa new-model enable password whatever !--- These are lists of authentication methods. !--- "linmethod", "vtymethod", "conmethod", and !--- so on are names of lists, and the methods !--- listed on the same lines are the methods !--- in the order to be tried. As used here, if !--- authentication fails due to the !--- tac_plus_executable not being started, the !--- enable password is accepted because !--- it is in each list. ! aaa authentication login linmethod tacacs+ enable aaa authentication login vtymethod tacacs+ enable aaa authentication login conmethod tacacs+ enable ! !--- Point the router to the server, where #.#.#.# !--- is the server IP address. ! tacacs-server host #.#.#.# line con 0 password whatever !--- No time-out to prevent being locked out !--- during debugging. exec-timeout 0 0 login authentication conmethod line 1 8 login authentication linmethod modem InOut transport input all rxspeed 38400 txspeed 38400 flowcontrol hardware line vty 0 4 password whatever !--- No time-out to prevent being locked out !--- during debugging. exec-timeout 0 0 login authentication vtymethod
Pruebe para asegurarse de que aún puede acceder al router con Telnet y a través del puerto de la consola antes de continuar. Debido a que tac_plus_ejecutable no se está ejecutando, se debe aceptar la contraseña enable.
Nota: Mantenga la sesión del puerto de la consola activa y permanezca en el modo de activación. Esta sesión no debe agotar el tiempo de espera. El acceso al router está limitado en este momento y debe poder realizar cambios en la configuración sin bloquearse.
Ejecute estos comandos para ver la interacción de servidor a router en el router:
terminal monitor debug aaa authentication
Como raíz, inicie TAC+ en el servidor:
tac_plus_executable -C test_file -d 16
Asegúrese de que TAC+ se haya iniciado:
ps -aux | grep tac_plus_executable
or
ps -ef | grep tac_plus_executable
Si TAC+ no se inicia, generalmente es un problema con la sintaxis en el archivo test_file. Vuelva al paso 1 para corregirlo.
Escriba tail -f /var/tmp/tac_plus.log para ver la interacción entre el router y el servidor en el servidor.
Nota: La opción -d 16 del paso 5 envía la salida de todas las transacciones a /var/tmp/tac_plus.log.
Los usuarios de Telnet (VTY) ahora deben autenticarse a través de TAC+.
Con la depuración en curso en el router y el servidor (pasos 4 y 7), conecte Telnet al router desde otra parte de la red.
El router genera una solicitud de nombre de usuario y contraseña, a la que usted responde:
'authenuser' (username from test_file) 'admin' (password from test_file)
El usuario authenuser está en el grupo admin, que tiene la contraseña admin.
Observe el servidor y el router, donde puede ver la interacción TAC+: qué se envía, dónde, respuestas, solicitudes, etc. Corrija los problemas antes de continuar.
Si también desea que sus usuarios se autentiquen a través de TAC+ para entrar en el modo de habilitación, asegúrese de que su sesión de puerto de consola aún esté activa y agregue este comando al router:
!--- For enable mode, list 'default' looks to TAC+ !--- then enable password if TAC+ does not run. aaa authentication enable default tacacs+ enable
Los usuarios ahora tienen que habilitar a través de TAC+.
Con la depuración en curso en el router y el servidor (pasos 4 y 7), conecte Telnet al router desde otra parte de la red. El router genera una solicitud de nombre de usuario y contraseña, a la que usted responde:
'authenuser' (username from test_file) 'admin' (password from test_file)
Cuando entra en modo de activación, el router solicita una contraseña, a la que responde:
'cisco' ($enable$ password from test_file)
Observe el servidor y el router donde debería ver la interacción TAC+: qué se envía, dónde, respuestas, solicitudes, etc. Corrija los problemas antes de continuar.
Desactive el proceso TAC+ en el servidor mientras está conectado al puerto de la consola para asegurarse de que sus usuarios puedan acceder al router si TAC+ está inactivo:
ps -aux | grep tac_plus_executable
or
ps -ef | grep tac_plus_executable) kill -9 pid_of_tac_plus_executable
Repita el proceso Telnet y habilite el paso anterior. El router entonces se da cuenta de que el proceso TAC+ no responde y permite a los usuarios iniciar sesión y habilitar con las contraseñas predeterminadas.
Verifique la autenticación de los usuarios del puerto de la consola a través de TAC+. Para ello, vuelva a activar el servidor TAC+ (pasos 5 y 6) y establezca una sesión Telnet en el router (que debería autenticarse a través de TAC+).
Permanezca conectado a través de Telnet en el router en el modo de activación hasta que esté seguro de que puede iniciar sesión en el router a través del puerto de la consola.
Cierre la sesión de la conexión original con el router a través del puerto de la consola y, a continuación, vuelva a conectarse al puerto de la consola. La autenticación del puerto de consola para iniciar sesión y habilitar el uso de ID de usuario y contraseñas (mostrado en el paso 10) ahora debe realizarse a través de TAC+.
Mientras permanece conectado a través de una sesión Telnet o del puerto de consola y con la depuración en curso en el router y el servidor (pasos 4 y 7), establezca una conexión de módem a la línea 1.
Los usuarios de la línea ahora tienen que iniciar sesión y habilitarse a través de TAC+.
El router genera una solicitud de nombre de usuario y contraseña, a la que usted responde:
'authenuser' (username from test_file) 'admin' (password from test_file)
Cuando entra en el modo de activación, el router solicita una contraseña.
Respuesta:
'cisco' ($enable$ password from test_file)
Observe el servidor y el router donde ve la interacción TAC+: qué se envía, dónde, respuestas, solicitudes, etc. Corrija los problemas antes de continuar.
Los usuarios ahora tienen que habilitar a través de TAC+.
La adición de autorización es opcional.
De forma predeterminada, hay tres niveles de comando en el router:
nivel de privilegio 0 que incluye disable, enable, exit, help y logout
nivel de privilegio 1 - nivel normal en un Telnet - prompt dice router>
nivel de privilegio 15 - habilitar nivel - prompt dice router#
Dado que los comandos disponibles dependen del conjunto de funciones de IOS, la versión de Cisco IOS, el modelo de router, etc., no existe una lista completa de todos los comandos en los niveles 1 y 15. Por ejemplo, show ipx route no está presente en un conjunto de funciones solo de IP, show ip nat trans no está en Cisco IOS Software Release 10.2.x porque NAT no se introdujo en ese momento, y show environment no está presente en los modelos de router sin fuente de alimentación y monitoreo de temperatura. Los comandos disponibles en un router determinado en un nivel determinado se pueden encontrar cuando ingresa un ? en el prompt en el router cuando se encuentra en ese nivel de privilegio.
La autorización del puerto de la consola no se agregó como una función hasta que se implementó el ID de bug Cisco CSCdi82030 (sólo para clientes registrados). La autorización del puerto de la consola está desactivada de forma predeterminada para disminuir la probabilidad de que se bloquee accidentalmente el router. Si un usuario tiene acceso físico al router a través de la consola, la autorización del puerto de la consola no es extremadamente efectiva. Sin embargo, la autorización del puerto de la consola se puede activar bajo la línea con 0 en una imagen en la que se implementó el Id. de error de Cisco CSCdi82030 (sólo clientes registrados) con el comando:
authorization exec default|WORD
El router se puede configurar para autorizar comandos a través de TAC+ en todos o algunos niveles.
Esta configuración del router permite que todos los usuarios tengan configurada la autorización por comando en el servidor. Aquí autorizamos todos los comandos a través de TAC+, pero si el servidor está inactivo, no es necesaria ninguna autorización.
aaa authorization commands 1 default tacacs+ none aaa authorization commands 15 default tacacs+ none
Mientras se ejecuta el servidor TAC+, conecte Telnet al router con el ID de usuario authenuser.
Debido a que authenuser tiene el servicio predeterminado = permit en test_file, este usuario debería poder realizar todas las funciones.
Mientras esté en el router, ingrese al modo enable y active la depuración de autorización:
terminal monitor debug aaa authorization
Establezca Telnet en el router con el operador userid authuser y password.
Este usuario no puede ejecutar los dos comandos show traceroute y logout (vea test_file).
Observe el servidor y el router donde debería ver la interacción TAC+ (qué se envía, dónde, respuestas, solicitudes, etc.). Corrija los problemas antes de continuar.
Si desea configurar un usuario para un comando automático, elimine el transitorio de usuario comentado en el archivo test_file y coloque una dirección IP de destino válida en lugar de #.#.#.#.#.
Detenga e inicie el servidor TAC+.
En el router:
aaa authorization exec default tacacs+
Telnet al router con userid transient y password transient. El telnet #.#.#.# se ejecuta y el usuario transitorio se envía a la otra ubicación.
La adición de cuentas es opcional.
La referencia al archivo de contabilidad se encuentra en test_file - archivo de contabilidad = /var/log/tac.log. Sin embargo, la contabilización no tiene lugar a menos que esté configurada en el router (siempre que el router ejecute una versión de Cisco IOS Software posterior a la 11.0).
Habilite la contabilización en el router:
aaa accounting exec default start-stop tacacs+ aaa accounting connection default start-stop tacacs+ aaa accounting network default start-stop tacacs+ aaa accounting system default start-stop tacacs+
Nota: La contabilización AAA no realiza la contabilización por comando en algunas versiones. Una solución alternativa es utilizar la autorización por comando y registrar la aparición en el archivo de contabilidad. (Consulte Cisco bug ID CSCdi44140.) Si utiliza una imagen en la que se utiliza esta corrección [Cisco IOS Software Releases 11.2(1.3)F, 11.2(1.2), 11.1(6.3), 11.1(6.3)AA01, 11.1(6.3)CA a fecha de 24 de septiembre de 1997], también puede habilitar la contabilidad de comandos.
Mientras TAC+ se ejecuta en el servidor, ingrese este comando en el servidor para ver las entradas que van al archivo de contabilización:
tail -f /var/log/tac.log
A continuación, inicie y cierre sesión en el router, realice una conexión Telnet fuera del router, etc. Si es necesario, en el router introduzca:
terminal monitor debug aaa accounting
- - - - - - - (cut here) - - - - - - - # Set up accounting file if enabling accounting on NAS accounting file = /var/log/tac.log # Enable password setup for everyone: user = $enable$ { login = cleartext "cisco" } # Group listings must be first: group = admin { # Users in group 'admin' have cleartext password login = cleartext "admin" expires = "Dec 31 1999" } group = operators { # Users in group 'operators' have cleartext password login = cleartext "operator" expires = "Dec 31 1999" } group = transients { # Users in group 'transient' have cleartext password login = cleartext "transient" expires = "Dec 31 1999" } # This user is a member of group 'admin' & uses that group's password to log in. # The $enable$ password is used to enter enable mode. The user can perform all commands. user = authenuser { default service = permit member = admin } # This user is limitted in allowed commands when aaa authorization is enabled: user = telnet { login = cleartext "telnet" cmd = telnet { permit .* } cmd = logout { permit .* } } # user = transient { # member = transients # service = exec { # When transient logs on to the NAS, he's immediately # zipped to another site # autocmd = "telnet #.#.#.#" # } # } # This user is a member of group 'operators' # & uses that group's password to log in user = authenuser { member = operators # Since this user does not have 'default service = permit' when command # authorization through TACACS+ is on at the router, this user's commands # are limited to: cmd = show { permit ver permit ip } cmd = traceroute { permit .* } cmd = logout { permit .* } } - - - - (end cut here) - - - -
Nota: Este mensaje de error se genera si su servidor TACACS no es accesible: %AAAA-3-DROPACCTSNDFAIL: registro de contabilidad descartado, error al enviar al servidor: inicio del sistema. Verifique que el servidor TACACS+ esté operativo.
Revisión | Fecha de publicación | Comentarios |
---|---|---|
1.0 |
10-Dec-2001 |
Versión inicial |