Necesito asegurarme de que cierto usuario en un enrutador IOS solo pueda escribir comandos específicos. Pude hacer esto con niveles de privilegio, pero cada vez que el usuario escribía "habilitar", volvía al nivel 15 y estaba a punto de escribir todos los comandos. Quiero asegurarme de que, incluso cuando ingrese "enable", solo podrá escribir los comandos específicos que he permitido. También probé con cli basado en roles, pero me encontré con el mismo problema. No quiero usar ningún servidor de autenticación externo.
¡Gracias!
Respuestas:
Ya conoce la mayoría de las respuestas a su propia pregunta: debe configurar los comandos que el usuario puede ejecutar en un nivel de privilegio específico.
enable
sin un argumento de nivel de privilegio, el nivel de privilegio predeterminado es 15, que tiene permisos para ejecutar todos los comandos. Las dos cosas que debe hacer son:Cambie la contraseña de habilitación predeterminada para que el usuario ya no tenga acceso a ella y, por lo tanto, no pueda acceder al nivel de privilegio 15.
Establezca el nivel de privilegio predeterminado del usuario al iniciar sesión en el mismo nivel de privilegio en el que ha cambiado los comandos deseados que el usuario puede ejecutar en:
Router(config)#username joe privilege <x> password foobar
donde X es el nivel de privilegio para su conjunto de comandos deseado.
EDITAR: Debo señalar que esto en realidad no proporciona una verdadera autorización de comando basada en el usuario, solo proporciona una autorización basada en el nivel de privilegio , porque los comandos en sí solo están vinculados a un nivel de privilegio a la vez, por lo que efectivamente es un cambio en todo el enrutador . Su intención es trabajar de manera jerárquica; cada nivel de privilegio puede ejecutar los comandos en ese nivel, así como todos los niveles por debajo de él. Si desea una verdadera autorización basada en el usuario, necesita un servidor AAA de algún tipo (consulte mi nota a continuación).
Técnicamente, también podría cambiar el nivel de privilegio del
enable
comando para que sea uno más alto que el nivel de privilegio del usuario para que ni siquiera tengan la opción de ejecutarlo:Router(config)#privilege exec level <x> enable
Por supuesto, esto supone que no desea que el usuario pueda ejecutar ningún comando de configuración.
Otra opción es asegurarse de que cuando el usuario inicie sesión y escriba
enable
, necesite especificar su nivel de privilegio en lugar de ningún nivel de privilegio, que por defecto es 15.Router>enable <x>
Obviamente, puede especificar habilitar las contraseñas para los 16 niveles de privilegios si así lo desea.
Mi punto final es que sin un servidor AAA externo, todo esto es un dolor enorme en el culo. Hay una multitud de implementaciones de código abierto TACACS + disponibles que solo tienen un costo de configuración inicial, pero hacen que hacer cosas como esta sea algo trivial, y está centralizado, por lo que si tiene múltiples enrutadores no tiene que seguir repitiendo el mismo comando Jumprope privilegiado en cada dispositivo que gestiones. Esta es la razón por la cual los servidores AAA existen en primer lugar, por lo que su requisito de que no quiera usar uno no tiene mucho sentido.
fuente
Puede restringir los comandos en Cisco ACS si configura el dispositivo para usar TACACS para AAA.
fuente