Preciso garantir que um determinado usuário em um roteador IOS possa digitar apenas comandos específicos. Consegui fazer isso com níveis de privilégio, mas sempre que o usuário digita "enable" ele volta ao nível 15 priv e está prestes a digitar todos os comandos. Quero ter certeza de que, mesmo quando ele digitar "enable", ele ainda poderá digitar apenas os comandos específicos permitidos. Também tentei com o CLI baseado em função, mas tive o mesmo problema. Não quero usar nenhum servidor de autenticação externo.
Obrigado!
Respostas:
Você já conhece a maioria das respostas para sua própria pergunta - você precisa configurar os comandos que o usuário pode executar em um nível de privilégio específico.
enable
sem um argumento de nível de privilégio, o padrão é o nível de privilégio 15, que tem permissões para executar todos os comandos. As duas coisas que você precisa fazer são:Altere a senha de ativação padrão para que o usuário não tenha mais acesso a ela e, portanto, não possa obter o nível de privilégio 15.
Defina o nível de privilégio padrão do usuário no login para o mesmo nível de privilégio em que você alterou os comandos desejados nos quais o usuário pode executar:
Router(config)#username joe privilege <x> password foobar
onde X é o nível de privilégio para o seu conjunto de comandos desejado.
EDIT: Gostaria de salientar que isso não realmente fornecer verdadeira autorização de comando baseada no usuário, ele só fornece base nível de privilégio a autorização, porque os próprios comandos só são obrigados a um nível de privilégio de cada vez, por isso é efetivamente uma mudança de todo o router . Destina-se a trabalhar de maneira hierárquica; cada nível de privilégio pode executar os comandos nesse nível e todos os níveis abaixo dele. Se você deseja uma verdadeira autorização baseada no usuário, precisa de algum tipo de servidor AAA (veja minha nota abaixo).
Tecnicamente, você também pode alterar o nível de privilégio do
enable
comando para ser um maior que o nível de privilégio do usuário, para que ele nem tenha a opção de executá-lo:Router(config)#privilege exec level <x> enable
Obviamente, isso pressupõe que você não deseja que o usuário possa executar nenhum comando de configuração.
Outra opção é garantir que, quando o usuário efetue login e digite,
enable
eles precisem especificar seu nível de privilégio em vez de nenhum nível de privilégio, o padrão é 15.Router>enable <x>
Obviamente, você pode especificar senhas de habilitação para todos os 16 níveis de privilégio, se desejar.
Meu ponto final é que, sem um servidor AAA externo, tudo isso é uma enorme dor de cabeça. Existem várias implementações TACACS + de código aberto disponíveis que custam apenas a configuração inicial, mas tornam essas coisas um tanto triviais e centralizadas; portanto, se você tiver vários roteadores, não precisará repetir o mesmo comando privilégio jumprope em todos os dispositivos que você gerencia. É por isso que os servidores AAA existem em primeiro lugar, portanto, sua exigência de que você não deseja usar um não faz muito sentido.
fonte
A restrição dos comandos pode ser feita no Cisco ACS se você configurar o dispositivo para usar o TACACS for AAA.
fonte