Niveles de acceso
La interfaz de línea de comando de Cisco IOS utiliza una lógica de niveles jerárquicos: modo EXEC usuario y modo EXEC privilegiado. Esta división de modos permite establecer 2 niveles básicos de permisos de acceso: acceso de nivel usuario y acceso de nivel privilegiado.
El acceso a modo privilegiado puede ser bloqueado utilizando una clave denominada "clave de modo enable" que puede ser encriptada o no:
Router(config)#enable password [clave]
Router(config)#enable secret [clave]
Ambas claves son requeridas para acceder al modo privilegiado. Sin embargo, la enable password se guarda en formato de texto plano en el archivo de configuración, mientras la enable secret se guarda encriptada utilizando MD5.
Por su parte, el acceso a modo usuario se asegura utilizando claves de acceso en las diferentes "líneas": consola, auxiliar o terminal virtual.
En estas líneas de acceso hay diferentes formas de configurar claves de acceso.
Clave simple de acceso al modo usuario
En cada uno de las líneas de acceso (consola, auxiliar, terminal virtual), se puede asegurar el acceso utilizando una clave simple.
Router(config)#line vty 0 4
Router(config-line)#password [clave]
Router(config-line)#login
El primer comando define una clave, y el comando login indica al dispositivo que debe mostrar el prompt requiriendo el ingreso de la clave cuando se intenta el acceso por terminal virutal (telnet).
La clave se guarda en el archivo de configuración en formato de texto plano.
Acceso utilizando usuario y clave
El acceso puede asegurarse también utilizando usuario y clave:
Router(config)#username [user] secret 0 [clave]
Router(config)#line vty 0 4
Router(config-line)#login local
Genera un usuario y una clave que se guarda encriptada utilizando MD5 en el archivo de configuración. Ese usuario y clave se aplican a la línea de acceso utilizando el comando login local.
Asignación de niveles de privilegio por usuario
Cisco IOS permite configurar 16 niveles de usuario diferente (0 a 15).
- Usuario nivel 0 - Sólo accede a modo usuario.
- Usuario nivel 1 a 14 - Se pueden asignar diferentes comandos para cada nivel.
- Usuario nivel 15 - Acceso a modo privilegiado completo.
Para configurar un usuario con permiso de utilización de un conjunto limitado de comandos de nivel privilegiado, siga este procedimiento:
Router(config)#privilege exec level [nivel] [comando]
Router(config)#username [user] privilege [nivel] secret 0 [clave]
Router(config)#line vty 0 4
Router(config-line)#login local
También es posible generar niveles de privilegios diferentes y asociarlos directamente a una clave de acceso simple a modo privilegiado:
Router(config)#privilege exec level [nivel] [comando]
Router(config)#enable secret level [nivel] [clave]
Asignación de accesos basados en roles
Cisco IOS también permite definir plantillas o roles con conjuntos de comandos, cada uno asegurado con su clave de acceso.
Este feature de configuración requiere la habilitación previa de AAA (Authentication, Authorization, Accounting).
Router#enable view
Router#configure terminal
Router(config)#aaa new-model
Router(config)#parser view [nombre]
Router(config-view)#secret 0 [clave]
Router(config-view)#command exec include [comando]
Router(config-view)#command configure include [comando]
Una vez configurado el perfil deseado, el acceso a modo privilegiado es utilizando el siguiente procedimiento:
Router#enable view [nombre]
Password: [clave]
Router(config)#_
Al solicitar la ayuda contextual de IOS (?), el usuario solo visualizará los comandos habilitados para el perfil que utilizó para el login.
Comandos relacionados
- Para encriptar las claves que se guardan en texto plano en el archivo de configuración:
Router(config)#service password-encryption
- Para establecer una longitud mínima en las claves:
Router(config)#security password min-length [long]
- Para establecer un límite de tiempo de inactividad al final de la cual se cerrará la seción:
Router(config-line)#exec-timeout [min] [seg]
- Utilice claves robustas de al menos 10 caracteres alfanuméticos.
- Es aconsejable incluir mayúsculas / minúsculas y símbolos.
- Las claves no deben ser palabras de diccionario.
- Para asegurar el acceso a modo privilegiado utilice siempre la enable secret.
- Active el servicio de encriptación de claves para asegurarse que no queden claves en texto plano visibles en el archivo de configuración.
- Cambie las claves periódicamente.
- Incluya un mensaje de acceso (banner) advirtiendo que se monitoreará y perseguirá el acceso no autorizado.
¿Tenés algún tip para aportar en este tema....?
Perfecto!!!! agregá un comentario con el detalle.
Muchas gracias.
muy buena tu guia hay cosas que no sabia
ResponderBorrargracias por eso
muy buena la guia. Son muy claro con tus comentarios y ejemplos.
ResponderBorrargracias por todo.
Hugo Zdanovich
Muchas gracias :) lo que pusiste e slo que estaba buscando incluso con adicional!!!
ResponderBorrarPues nada mas agregar que los niveles de privilegios se utilizan para distintos fines, como hace mencion nuestro amigo Oscar Gerometta, por ejemplo otra opcion que hace uso de privilegios de nivel 15 es: SDM de cisco, ya que para poder habilitarlo es necesario crear un user de nivel 15.
ResponderBorrarpor cierto gracias por tu aporte Oscar.
gracias muy buen material y muy entendible
ResponderBorrarestimado una consulta cuando se configura con line vty 0 4 entiendo que cero se refiere a nivel usuario pero el 4?' haber si puedes detallar, con respecto a las demas configuracion de acceso me queda clarisimo
ResponderBorrarLuis
ResponderBorrarCreo que estás confundiendo el nivel de privilegios cuando se crean usuarios, con los líneas de terminal virtual.
line vty 0 4 es el comando que permite ingresar a la configuración de las líneas de terminal virtual, y los números identifican las diferentes líneas. En este caso, se configuran las líneas 0 a 4, es decir un total de 5 líneas.
No refiere a niveles de privilegio de acceso, sino a líneas de acceso.
que significa EXEC y q se refiere cuando se habla de linea "line",.... line console, vty....
ResponderBorrarEl término EXEC refiere a uno de los 3 modos básicos de CLI de IOS: Modo ROMMON, Modo Setup y Modo EXEC.
ResponderBorrarRespecto a las líneas, son los canales de acceso para operar a través de CLI: consola (line console), auxiliar (line aux) o puertos virtuales (line vty).
Muchas Gracias por el aporte. Consulta, genere un usuario al cual le permito realizar un show running-config. Pero el usuario cuando lo ejecuta, no muestra mas que 3 o 4 linea y no muestra la configuración. Es decir, el comando se ejecuta pero no muestra la info. ¿hay que habilitar algo mas? ¿tiene que tener más permisos para realizar un show run? Gracias, Facundo
ResponderBorrarFacundo.
ResponderBorrarDebiera mostrarte la configuración completa, posiblemente allí tengas algún otro tema que lo esté limitando.
Hola, como le va. Una consulta, ¿Es posible establecer un limite de tiempo de duravilidad de un Login local? LO que pretendo hacer es que un tal user Pedro pass CISCO solo sean validos por cierto tiempo. En Lineas SSH
ResponderBorrarMuchas Gracias
Pedro.
ResponderBorrarHasta donde conozco la implementación, no es posible establecer esa limitación con un username y clave locales (login local).
Esto es posible hacerlo cuando utilizas el modelo AAA, con un servidor de autenticación TACACS o RADIUS.
Para que puedas ver la configuración completa de SSH: http://www.cisco.com/en/US/tech/tk583/tk617/technologies_tech_note09186a00800949e2.shtml
Saludos Oscar, amigo le cuento que su blog es el mejor que he visitado con respecto a informaicon de CISCO. Viendo este tema me surge una pregunta, como administro el pass de los user que tiene acceso por https?, a mi me sucede lo siguiente, uno de los switch que estoy administrando tiene user admin y pass xxxxx, pero resulta que el pass xxxxx no es el mismo si entro por web o si entro por ssh. sin embargo cuando listo los user en el archivo de conf solo figura un solo user admin.
ResponderBorrarDe antemano muchisimas gracias.
Estimado
ResponderBorrarSupongo que si están utilizando ssh también deben estar aplicando AAA.
Si es así, en ese caso no sólo hay que verificar los usuarios confirmados en el mismo equipo, sino ver qué formato de autenticación se está utilizando en cada caso, ya que es posible que el acceso http esté utilizando una base de datos de usuario diferente del acceso ssh para autenticar usuarios.
http://www.cisco.com/en/US/docs/ios/12_2/security/configuration/guide/scfathen.html
A mi me da un error al configurar el login local, es una IOS security te copio el comando, por si me puedes ayudar.
ResponderBorrarR1(config)#line vty 0 4
R1(config-line)#login local
^
% Invalid input detected at '^' marker.
Muky
ResponderBorrarComo se ha perdido la alineación de los caracteres, no se llega a percibir en qué punto te da el error en el comando.
Pero ese es un comando válido:
http://www.cisco.com/en/US/products/sw/iosswrel/ps1818/products_configuration_example09186a0080204528.shtml#config-local
¿Qué versión de IOS, en qué dispositivo estás utilizando?
enable
ResponderBorrarconf ter
host S1
no ip domain-lookup
enab secre class
line con 0
pass cisco
login
line vty 0 15
login
end
... bueno despues de configurar en el S1 ya no puedo configurar pq me sale bad secrets, pese a que le pongo cisco y no me deja configurar mas pq a cada rato me pide el password
Con la descripción que hacés no queda claro qué estás haciendo y en qué dispositivo.
BorrarPero supongo que lo que copiás aquí es un script que copiás y pegás en la línea de comando del router o switch.
Si es así... eso no es configurar, es copiar una serie de comandos :)
Bueno, bromas aparte, el mensaje de error que estás recibiendo, supongo que en realidad corresponde al comando enable y lo que está indicando es que el dispositivo ya tiene una clave de modo enable configurada, que no estás ingresando.
Hola Oscar, gracias por compartir tus conocimientos en este blog. Te expongo una pequeña duda: ¿qué diferencia práctica hay entre estas dos formas de asegurar las líneas vty?
ResponderBorrarForma 1)
R1(config)#username ccna password ciscoccna
R1(config-lin)#line vty 0 4
R1(config-lin)#login local
Forma 2)
R1(config)#username ccna password ciscoccna
R1(config)#aaa new-model
R1(config)#aaa authentication login LOCAL_AUTH local
R1(config-lin)#line vty 0 4
R1(config-lin)#login authentication LOCAL_AUTH
Sé que en el segundo caso ha habilitado AAA pero en ambos casos lo que se consigue es que sólo se permita la conexión a usuarios definidos localmente en el router ¿no?
Saludos y gracias
Es cierto, ambas configuraciones sólo permiten la conexión a usuarios definidos localmente.
BorrarLa diferencia radica en que al habilitar AAA, primero, puedo adicionalmente realizar autorización y registro de la actividad de los usuarios, cosa que no puedo hacer en la Forma 1.
La segunda, es que al usar AAA modificando la lista de métodos LOCAL_AUTH puedo incorporar rápidamente servidores TACACS+ o RADIUS para centralizar la base de datos de autenticación.
Muchísimas gracias Oscar. Responder más rápido y claro es imposible ;-)
Borrarmuy completa la información. pero como podría eliminar un usuario con privilegio 15
ResponderBorrarque ya este creado en el router o como lo deshabilito.
Negando la línea de configuración que define el usuario y su clave.
Borrarhola Oscar, se puede establecer un user pero que este en el radius y no en el router. y despues como le doy provolege para ese useario'
ResponderBorrarsaludos
excelente los aportes
Si ,es posible.
BorrarPara eso es necesario implementar AAA, lo que te permite hacer autenticación, autorización y registro de actividad utilizando tanto RADIUS como TACACS+.
Los privilegios, en el caso de RADIUS se hacen necesariamente en el mismo servidor que autentica.
Es un modelo de seguridad en el acceso diferente y más avanzado que el que presento en este post.
donde puedo conseguir información sobre el tema referente a privilegios en el radius, consulta:
ResponderBorraren el router configura solo un nivel de privilege ejemplo 5 y al logearse por el radius el propio servidor agrega los privilege?
saludos.
exelente blog
hola Oscar,
ResponderBorraryo realice la pregunta con fecha 19/7/2013 hora 9:48 p.m
es para seguir el tema de privilege pero con login de radius.
consulta: donde consigo un modelo de configuracion el cual el user que se loguea por raidus yo le asigno los nivel de privilege pero sin configurar el user en el router.
me explique bien??
saludos y te felicito por el libro lo compre (el de preparacion de ccna).
saludos
Hola soy nuevo en el simulador de packet tracer, tengo una duda con respecto a ponerle contraseña para tener acceso privilegiado (BASICAMENTE ES UNA CONFIGURACION BASICA DEL ROUTER RA)
ResponderBorrarRA(config)#no ip domain-lookup
RA(config)#enable secret cisco
RA(config)#line console 0
RA(config-line)#password 12345
RA(config-line)#login
RA(config-line)#loggin synchronous
RA(config-line)#exit
RA(config)#line vty 0 15
RA(config-line)#password 54321
RA(config-line)#login
RA(config-line)#exit
el problema es que cuando entro de nuevo atraves de CLI,
habilito para poder entrar como privilegiado:
SanSalvador>enable
Password: 12345
Password: 12345
Password: 12345
% Bad secrets
SanSalvador>
pero nunca puedo entrar, que es lo que me sugieren hacer o que estoy haciendo mal, se los agradeceria mucho
Oscar
BorrarSe trata de un error conceptual habitual cuando nos iniciamos.
La enable secret es la clave que habilita el paso de modo usuario a modo privilegiado. Es decir, es la clave que debes utilizar luego de ingresar el comando "enable".
Tu enable secret, de acuerdo a la configuración que muestras, es "cisco" no "12345".
Consejo para principiantes: lo importante no es ingresar comandos, sino saber qué hace cada comando exactamente. No ejecutes un comando sin saber exactamente qué hace. Esto te resolverá muchos problemas a futuro.
muchas Gracias, Oscar me sacaste de un buen problema, es que mi profesor no me explico bien esa parte, pero ahora ya lo se gracias otra vez!!!
BorrarHola, una consulta sobre logiarse con un usuario de nivel 2 al cual se le asignaron cierta lista de comandos. La duda al estar logiado, como puedo saber que comandos puedo utilizar que comandos tengo disponible mas que nada. Saludos.
ResponderBorrarDepende de cómo ha sido configurado el usuario.
BorrarSi simplemente han utilizado la asignación de niveles vinculados a un usuario tradicional, no hay modo de que el usuario visualice los comandos que tiene autorizados; el Administrador es el que debiera documentar esa información.
En cambio, si se ha aplicado la asignación de roles, en ese caso el usuario utilizando la ayuda de IOS (?) solamente verá los comandos que tiene permitidos.
Muy buenos aportes... Felicidades
ResponderBorrarBuenas Tardes Oscar. esta excelente tu blog Saludos desde Venezuela.
ResponderBorrarmi pregunta es la siguiente.
como hago para crear un usuario, con una lista de comandos predefinidos. y que este usuario no pueda usar otros a los cuales no este autorizado he aplicado una configuracion que vi aqui.
Router#enable view
Router#configure terminal
Router(config)#aaa new-model
Router(config)#parser view [nombre]
Router(config-view)#secret 0 [clave]
Router(config-view)#command exec include [comando]
Router(config-view)#command configure include [comando]
pero cuando intento darle acceso al usuario al comando "Configure Terminal" una vez iniciado sesion desde el Enable view User.... me acepta el comando pero una vez que lo acepta no puedo entrar a ninguna interfaz del router por ej.
Misael
BorrarEso es porque solo has incluido los comandos que incluyen el comando configure.
En este tipo de configuración debes definir cuáles son los comando de configuración que quieres asignar al usuario.
Puedes utilizar esta guía de configuración de Cisco: http://www.cisco.com/en/US/docs/ios/12_3t/12_3t7/feature/guide/gtclivws.html
hola Oscar!
ResponderBorrarte hago una consulta...volvi a configuracion de fabrica a mi AP cisco Aironet 521g y con el usuario Cisco no puedo escribir en la configuracion...como hago para cambiar el usuario administrador? o los permisos para que pueda escribir? gracias y saludos!
Facundo.
BorrarLa respuesta más simple, quizás, es que utilices el procedimiento de recuperación de claves para definir tu propio usuario y clave:
https://supportforums.cisco.com/thread/2037151
hola que tal Oscar muy interesante tu post y te molesto tengo una duda que he buscado en manuales y aun no encuentro resolver, como puedo ver los errores del sw en linea virtual los mismos que veo conectados a consola ?
ResponderBorrargracias y excelente aporte un saludo!
misael.
Misael
BorrarPara que los mensajes de estado se vean en los puertos virtuales (sesiones de Telnet o SSH) debes utilizar el comando "terminal monitor". Con prudencia ya que si la velocidad del acceso por terminal virtual es bajo, puede ocurrir por momentos que se sature la conexión.
Estimado Oscar y hay alguna manera de saber cual es el password no encryptado cuando se configura un router cisco con MD5 ( en el enable secret)
ResponderBorrarSaludos
Supongo que te refieres a la enable secret, que está encriptada con MD5. Se trata de un algoritmo de hashing, por lo que no es reversible.
BorrarEn cambio lo que he visto, si copio usuario y contraseña tal cual como aparece en el archivo de configuración, por ejemplo la siguiente linea:
Borrarusername RODRIGO privilege 15 password 7 0355692847220474085F4A5542405F5D53
si la introduzco en un router en blanco, me respeta la contraseña no encriptada. Es esto normal?
Si.
BorrarEl "7" que está entre "password" y la cadena alfanumérica, le indica al sistema operativo que estás ingresando una clave ya encriptada con MD5.
Tengo un inconveniente con el comando security password min-length [long], el problema es que solo quiero que tome efecto la clave del modo EXEC y con este comando me afecta todas las claves, como podria usarlo para el modo EXEC solamente ???
ResponderBorrarsaludos,
Junior
BorrarEl comando que estás utilizando define una política general de claves en el dispositivo definiendo una longitud mínima de clave. Consecuentemente, afecta a todas las claves que se configuren en el dispositivo.
Si lo que quieres es tener claves enable más extensas, solamente tienes que configurar claves más extensas en ese caso. El comando afecta la longitud mínima, no la máxima.
Gracias Sr Oscar por su pronta respuesta, Pero existe algun otro comando que pueda usar para lo que quiero
BorrarQue yo conozca no.
BorrarPero me resulta difícil comprender el objetivo de tu requerimiento.
El objetivo de este comando es forzar el cumplimiento de una política de seguridad cuando múltiples operadores intervienen generando claves. Esto ocurre en la práctica cuando hay que dar de alta usuarios en los equipos.
Pero si lo que buscás es una clave de modo enable más segura, las claves de modo enable no son generadas por cualquier operador, sino por quienes tienen todos los privilegios de administración, y en ese caso no parece necesario forzar una política de este tipo pues quien tiene acceso al modo enable, también tiene acceso a modificar la política.
Tienes Razon Sr. Oscar muchas gracias, toy haciendo una practica y me aparece este requimiento al parecer esta mal por que me especifica que sea solo para el modo EXEC.
Borrarestimado Oscar, una consulta: estoy utilizando en GNS3 un router 2691 con una version de ios 12.4, al momento de habilitar AAA con el comando aaa new-model ya no me permite definir el Login Local en las lineas VTY, esto es Normal???
ResponderBorrarEs que precisamente eso significa aaa new-model: aplicar el framework de autenticación, autorización y accounting.
BorrarPor ese motivo, a partir de habilitar AAA deberás definir listas de servidores, listas de métodos de autenticación, y luego aplicar esas listas al punto en que deseas implementar autenticación, por ejemplo en las líneas de terminal virtual.
Si quieres utilizar una base de credenciales de usuario definidas localmente, deberás incorporar ese método de autenticación en una lista de autenticación y luego aplicarla a las líneas de terminal virtual.
muchas gracias estimado
ResponderBorrarexcelente explicacion, gracias estimado Oscar.
ResponderBorrarHola Óscar
ResponderBorrartengo un Switch 4507 y tenía esta configuración para sus accesos:
line con 0
stopbits 1
line vty 0 4
password cisco1234
login
lo quería estandarizar como todos los demás switches de este cliente y copié las últimas líneas de dos switches:
line con 0
login local
stopbits 1
line aux 0
stopbits 1
line vty 0 4
login local
length 0
line vty 5 15
login local
line con 0
password Mipassword2015
logging synchronous
line vty 0 4
login local
line vty 5 15
login
le di Wr... y cerré la conexión por VPN. vuelvo a entrar ya ahora me pide usuario (antes solo el password cisco1234, enable y el mismo password).
no configuré ningún usuario y ahora no puedo entrar al switch porque no sé qué usuario poner!!!
qué ´puedo hacer para entrar y configurar lo que tenía antes???? o ´ponerle un usuario???
Gracias por tu apoyo!!
Carlos
BorrarAl incluir en la configuración el comando "login local" indicaste que ya no desea utilizar la clave configurada explícitamente en la lína de acceso sino un usuario y clave configurados en una base de datos local.
Por ese motivo, al volver a intentar ingresar al dispositivo te requiere usuario y clave. Como no configuraste usuario y no hay un usuario por defecto, ahora no tienes acceso. Deberías hacer un password recovery para ingresar y poder modificar la configuración.
Genial
ResponderBorrarClaro y corto
gracias.... me sirvió bastante.
buenas Oscar, en el comando
ResponderBorrarRouter(config)#username [user] privilege [nivel] secret 0 [clave]
el "0" despues del secret sería que la clave se ingresa en texto plano?
las otras opciones serían 5 y 7? cual es la diferencia entre poner 7 o 5?
Saludos.
Carlos
BorrarEl dígito decimal al que te referís identifica el nivel de cifrado utilizado para la contraseña que se está ingresando (eso es diferente de cifrar la contraseña, ese es el efecto del keyword "secret").
0 indica que la contraseña se ingresa en texto plano como referís, 7 es un nivel de cifrado débil y reversible, 5 indica que se trata de una clave cifrada previamente con MD5.
Señor Oscar buenas tardes y para eliminar un usuario con privilegios que comando debo usar.
BorrarPara eliminar un usuario simplemente niegas el comando:
BorrarRouter(config)#no username [user] privilege [nivel] secret 0 [clave]
Hola tengo una duda, me interesa evitar que un puerto de mi catalyst 4506 no pueda ingresar a la configuración del mismo, es esl posible? Y de ser así me podrían ayudar con algun texto de consulta o compartir su sabiduría, gracias
ResponderBorrarSupongo a que te referís a que desde un puerto de acceso del switch no se debe acceder a la gestión del mismo (entre otras cosas, a la configuración).
BorrarPara acceder a la gestión del switch es necesario tener acceso a la VLAN de gestión del switch. Por lo tanto, en primer lugar, los puertos de acceso no deben estar en la VLAN de gestión.
Hecho esto, podría ser que se exista ruta hacia la VLAN de gestión y entonces se acceda por capa 3. En este caso, para controlar ese acceso podés implementar una VLAN ACL.