Introdução
Este documento descreve o processo de configuração para exibir a configuração de execução completa para usuários com baixos níveis de privilégio.
Pré-requisitos
Requisitos
É necessária uma compreensão básica dos níveis de privilégio da Cisco para entender este documento. As Informações de Apoio são suficientes para explicar a compreensão dos níveis de privilégio necessários.
Componentes Utilizados
Os componentes usados para os exemplos de configuração neste documento eram um ASR1006, mas qualquer dispositivo Cisco IOS® ou Cisco IOS XE funciona de maneira semelhante.
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Informações de Apoio
Este documento descreve as etapas de configuração de como exibir a configuração de execução completa para usuários conectados ao roteador com níveis de privilégio baixo. Para compreender o próximo problema e a solução alternativa, é necessário entender os níveis de privilégio. Os níveis de privilégio disponíveis variam de 0 a 15 e permitem que o administrador personalize quais comandos estão disponíveis em qual nível de privilégio. Por padrão, os três níveis de privilégio em um roteador são:
- Nível 0 - Inclui somente comandos básicos (disable, enable, exit, help e logout)
- Nível 1 - Inclui todos os comandos disponíveis no modo de comando EXEC do Usuário
- Nível 15 - Inclui todos os comandos disponíveis no modo de comando EXEC privilegiado
Os níveis restantes entre esses níveis mínimo e máximo são indefinidos até que o administrador atribua comandos e/ou usuários a eles. Portanto, o administrador pode atribuir aos usuários diferentes níveis de privilégio entre esses níveis mínimo e máximo para separar a que diferentes usuários têm acesso. O administrador pode alocar comandos individuais (e várias outras opções) para um nível de privilégio individual para disponibilizá-lo para qualquer usuário nesse nível. Por exemplo:
Router(config)# username user1 privilege 7 password P@ssw0rD1
Router(config)# privilege exec level 7 show access-lists
Com essa configuração, quando o usuário1 estiver conectado ao roteador, ele poderá executar o show access-lists
e/ou qualquer outra coisa ativada nesse nível de privilégio. No entanto, o mesmo não pode ser dito para show running-config
, como será discutido mais adiante na descrição do problema.
Problema de configuração
Ao configurar diferentes níveis de acesso ao roteador para diferentes usuários, é um aplicativo comum para um administrador de rede tentar atribuir a determinados usuários apenas o acesso a show
e não fornecem acesso a nenhum configuration
comandos. Essa é uma tarefa simples para a maioria show
, pois você pode conceder acesso por meio de uma configuração simples, conforme descrito a seguir:
Router(config)# username test_user privilege 10 password testP@ssw0rD
Router(config)# privilege exec level 10 show
Router(config)# privilege exec level 10 show running-config
Com esta configuração de exemplo, a segunda linha pode permitir que o test_user
para ter acesso a uma infinidade de comandos show related, que normalmente não estão disponíveis nesse nível de privilégio. No entanto, o show running-config
é tratado de forma diferente da maioria dos comandos show. Mesmo com a terceira linha de código de exemplo, apenas um código omitido/abreviado show running-config
é exibido para o usuário apesar do comando ser especificado no nível de privilégio correto.
User Access Verification
Username: test_user
Password:
Router#
Router#show privilege
Current privilege level is 10
Router#
Router#show running-config
Building configuration...
Current configuration : 121 bytes
!
! Last configuration change at 21:10:08 UTC Mon Aug 28 2017
!
boot-start-marker
boot-end-marker
!
!
!
end
Router#
Como você pode ver, essa saída não mostra nenhuma configuração e não seria útil para um usuário que está tentando coletar informações sobre a configuração do roteador. Isso ocorre porque o show running-config
exibe todos os comandos que o usuário pode modificar em seu nível de privilégio atual. Isso é projetado como uma configuração de segurança para impedir que o usuário tenha acesso a comandos que foram configurados anteriormente de seu nível de privilégio atual. Esse é um problema ao tentar criar um usuário com acesso aos comandos show, como show running-config
é um comando padrão que os engenheiros devem coletar inicialmente ao solucionar problemas.
Solução e verificação de configuração
Como solução para esse dilema, há outra versão do tradicional show run
que ignora essa limitação do comando.
Router(config)# show running-config view full
Router(config)# privilege exec level 10 show running-config view full
O aditamento de view full
para o comando (e, por sua vez, o nível de privilégio do comando para permitir que o usuário acesse o comando), agora permite que o usuário visualize o show running-config
sem nenhum comando omitido.
Username: test_user
Password:
Router#
Router#show privilege
Current privilege level is 10
Router#
Router#show running-config view full
Building configuration...
Current configuration : 2664 bytes
!
! Last configuration change at 21:25:45 UTC Mon Aug 28 2017
!
version 15.4
service timestamps debug datetime msec
service timestamps log datetime msec
no platform punt-keepalive disable-kernel-core
!
hostname Router
!
boot-start-marker
boot system flash bootflash:packages.conf
boot system flash bootflash:asr1000rp1-adventerprisek9.03.13.06a.S.154-3.S6a-ext.bin
boot-end-marker
!
vrf definition Mgmt-intf
!
address-family ipv4
exit-address-family
!
address-family ipv6
exit-address-family
!
enable password <omitted>
!
no aaa new-model
!
no ip domain lookup
!
subscriber templating
!
multilink bundle-name authenticated
!
spanning-tree extend system-id
!
username test_user privilege 10 password 0 testP@ssw0rD
!
redundancy
mode sso
!
cdp run
!
interface GigabitEthernet0/2/0
no ip address
shutdown
negotiation auto
!
interface GigabitEthernet0/2/1
no ip address
shutdown
negotiation auto
!
interface GigabitEthernet0
vrf forwarding Mgmt-intf
ip address <omitted>
negotiation auto
cdp enable
!
ip forward-protocol nd
!
control-plane
!
!
privilege exec level 10 show running-config view full
alias exec show-running-config show running-config view full
!
line con 0
stopbits 1
line aux 0
exec-timeout 0 1
no exec
transport output none
stopbits 1
line vty 0 4
login local
!
end
Router#
No entanto, isso levanta a questão: ao fornecer ao usuário acesso a essa versão do comando, isso não aumenta o risco de segurança inicial que estava tentando ser resolvido projetando uma versão omitida?
Como solução alternativa para a solução e para garantir a consistência em um projeto de rede seguro, você pode criar um alias para o usuário que executa a versão completa do show running-config
sem fornecer acesso/conhecimento ao usuário, como mostrado aqui:
Router(config)# alias exec show-running-config show running-config view full
Neste exemplo, o comando show running-config
é o nome do alias e, quando o usuário estiver conectado ao roteador, ele poderá inserir esse nome do alias em vez do comando e receber a saída esperada sem conhecer o comando real que está sendo executado.
Observação: da versão 16.X, dependendo da plataforma, também é necessário adicionar permissões aos arquivos usando o privilégio (config)#file <level>.
Conclusão
Concluindo, este é apenas um exemplo de como ter mais controle ao criar administrativamente acesso de privilégio de usuário em diferentes níveis. Há uma infinidade de opções para criar vários níveis de privilégio e acesso a diferentes comandos, e este é um exemplo de como garantir que um usuário show only ainda tenha acesso à configuração de execução completa quando não tiver acesso a nenhum comando de configuração.
Informações Relacionadas