26 Jun
Postado por: Pedro Pereira em: Cisco
Gostaria da ajuda de um especialista? Entre em contato e peça um orçamento.
O Cisco IOS (Internetwork Operating System), o sistema operacional utilizado na maioria dos dispositivos da Cisco, tem uma funcionalidade muito interessante: views (na literatura da Cisco – publicada pela Cisco Press – é provável que você encontre isso sendo chamado de “Role-Based Command-Line Interface Access”. Aqui vou chamar de views por ser mais fácil). As views podem ser vistas como uma jail em sistemas Unix-like por permitirem acesso apenas a comandos pré-definidos pelo administrador do equipamento. Por exemplo, você pode fazer com que a view X tenha acesso a todos os comandos “show” porém a view Y só tenha acesso ao comando “ping”.
A flexibilidade desta funcionalidade é tanta que você pode, por exemplo, definir que uma view pode acessar o “show version” mas não pode acessar o “show ip interfaces”. Assim, você pode conceder apenas o acesso necessário para que um determinado usuário execute o seu trabalho sem correr o risco de “destruir” o roteador ou fazer coisas que ele não poderia.
Esta funcionalidade do IOS está disponível à partir da versão 12.3(7)T do IOS. A única versão anterior à esta que também possui tal funcionalidade é a 12.2(33)SRB. Portanto, verifique a versão do IOS no seu dispositivo antes de começar a configurar.
A criação das views é uma operação extremamente simples. O que realmente dá trabalho é definir o que cada usuário pode fazer no sistema. Neste post vou te ensinar a criar as views e a fazer configurações básicas, permitindo ou negando acessos a determinados comandos.
Como dito anteriormente, criar uma view é a parte fácil. Primeiro você precisa habilitar o AAA (triple-A, Authentication Authorization Accounting) no IOS.
Então, vamos ao primeiro passo basta um comando no modo de configuração global:
Osiris(config)# aaa new-model
NOTA: ANTES de começar esta configuração, tenha certeza que você já definiu uma senha para o modo Enable com o comando “enable secret <senha>”. Se você não fizer isso antes de configurar o AAA, não conseguirá mais logar no seu roteador. Eu avisei! :)
Pronto! AAA habilitado, podemos continuar. Agora, nós precisamos habilitar views no sistema. Para isso, você deve voltar ao modo Exec usuário:
Osiris(config)#^z
Osiris# disable
Osiris> enable view
Password:
*Jun 26 08:29:05.683: %PARSER-6-VIEW_SWITCH: successfully set to view ‘root’.
Basta digitar a senha definida anteriormente para o modo enable e as views serão habilitadas. Caso a senha digitada seja a correta, o IOS vai informar que você entrou na view “root”. A view root é basicamente uma view que não tem qualquer limitação. Em um roteador com views configuradas, a view “root” age como se não houvessem views, ou seja, o usuário pode fazer qualquer coisa. Mais à frente falaremos mais sobre a view root.
Agora que nós já dissemos para o IOS que à partir de agora nós vamos usar views, precisamos criá-las! Logo após o último comando acima, faça o seguinte:
Osiris# configure terminal
Osiris(config)# parser view <nome da nova view>
*Jun 26 08:33:06.259: %PARSER-6-VIEW_CREATED: view ‘<nome da view que você digitou no comando anterior>’ successfully created.
Osiris(config-view)#
Pronto, a view está criada e agora o IOS quer que nós a configuremos antes de usar. A primeira coisa que eu recomendo que você faça é proteger a view com uma senha:
Osiris(config-view)# secret 0 <senha>
Agora sempre que você quiser acessar esta view, basta digitar esta senha que você acabou de definir. Recomendo que use uma senha forte e que seja diferente das senhas das outras views.
Agora, ainda neste modo de configuração, podemos começar a definir quais comandos esta view irá permitir que o usuário execute. Um detalhe importante: no comando acima usei o “0″ para indicar que o que segue é uma senha digitada em texto puro. Se você quiser, pode colocar um hash MD5 para usar como senha. Basta alterar o “0″ para “5″:
Osiris(config-view)# secret 5 <hash da senha que você quer usar>
Vale lembrar uma coisa: você pode criar no máximo 15 views por dispositivo. A única view que não entra nesta conta é a superview. Esta é uma view que é formada por outras views. Por exemplo, você pode adicionar as views A e B a uma superview X e X poderá executar tudo o que A ou B podem. Mais informações sobre isso em outro tópico.
Esta parte é a mais complicada. Como você tem um número limitado de views em um sistema, você tem que pensar muito bem no que cada uma terá permissão para fazer para garantir que não faltem views para terminar a configuração! Em ambientes simples, isto não chega a ser um problema. Mas conforme a sua rede vai crescendo, é possível que isso se torne um problema mais sério. Portanto, faça um plano ANTES de começar e quando considerar que cobriu todos os aspectos que a sua rede precisa, volte aqui e veja como permitir os comandos. Eu espero! :)
Nota: para se referir a comandos do modo Exec, você deve utilizar a keyword “exec”; para se referir a comandos do modo de configuração global, você deve utilizar a keyword configure. Isso vai ficar mais claro com os exemplos a seguir, mas sempre tenha isso em mente para evitar problemas :)
Primeiro, vamos definir quais comandos poderão ser executados no modo Exec:
Note que a minha intenção é permitir que quem estiver logado nesta view possa acessar o modo de configuração global. Portanto, devemos também definir quais comandos de configuração poderão ser executados:
Pronto. Agora que já sabemos o que fazer, mãos à obra!
Primeiro vamos permitir os comandos do modo exec:
Osiris(config-view)# commands exec include show version
Osiris(config-view)# commands exec include show ip route
Osiris(config-view)# commands exec include ping
Osiris(config-view)# commands exec include configure
Ok, agora aos comandos do modo de configuração:
Osiris(config-view)# commands configure include hostname
Osiris(config-view)# commands configure include interface
Osiris(config-view)# commands configure include access-list
Pronto! Views criadas e configuradas, prontas para usar! Agora você já pode usar o comando exit para sair do modo de configuração da view e terminar de configurar o seu roteador.
As opções para adicionar comandos à view que mostrei no tópico anterior não são as únicas. Aqui vou mostrar mais algumas para que você tenha mais flexibilidade na hora de configurar.
Uma opção que pode te salvar muito tempo é a “all”. Considere o comando “show”. Ele tem vários argumentos opcionais para definir o que você quer que ele mostre. E se você quiser que a view permita todas as opções de visualização do “show”? Vai ter que adicionar uma a uma? Não! Com a opção “all” você adiciona todas com um só comando:
Osiris(config-view)# commands exec include all show
Assim, a view irá adicionar todos os “show”s disponíveis! :)
Você já conhece o “include”, visto nos comandos anteriores. Você também pode utilizar o “exclude” para excluir comandos da view, o que é útil se você quer excluir apenas alguns comandos da view. Por exemplo,
Osiris(config-view)# commands exec exclude show
Não vai permitir nenhum comando “show” naquela view. Útil não? :)
Temos ainda a opção “include-exclusive”. Esta opção permite que você adicione um comando à view normalmente, porém nenhuma outra view poderá ter o comando que você adicionou com “include-exclusive”. Ou seja, se você adicionou o comando “show” com “include-exclusive” nenhuma outra view que você criar no dispositivo poderá ter acesso a esse comando.
Se você precisa permitir determinadas configurações à algumas interfaces (porém não todas), você pode utilizar a opção “interface” para definir quais interfaces estarão disponíveis na view:
Osiris(config-view)# commands configure include interface serial 0/0
Assim, apenas a interface serial 0/0 estará disponível na view que você está configurando. Automaticamente, o usuário nesta view só poderá configurar esta interface e nem perceberá que outras interfaces existem no dispositivo.
A root view é basicamente o modo sem views. Aqui você tem acesso a todo o sistema sem qualquer restrição, como no padrão do IOS.
Para acessar este modo, o usuário obrigatoriamente deve ter nível de privilégio 15 e o sistema deve ter a senha enable secret (que tem maior prioridade) ou a enable password (que tem prioridade menor). Quando quiser acessar a root view, basta digitar:
Osiris> enable view root
Password:
E pronto, basta digitar a senha configurada com enable secret e você estará na root view.
Anteriormente citei que uma superview é uma view formada por outras views e que pode fazer tudo o que as views que a formam podem fazer. Neste tópico, vou mostrar como criar uma superview.
Vamos considerar que a nossa superview vai se chamar sv1 e será formada pelas views vA e vB. No modo de configuração global:
Osiris(config)# parser view sv1 superview
*Jun 26 08:56:50.219: %PARSER-6-SUPER_VIEW_CREATED: super view ‘sv1′ successfully created.
Isso diz ao IOS que sv1 é uma superview, e não uma view qualquer. Depois disso, definimos a senha para a superview como fizemos para as views normais (aqui também se aplicam as diferenças entre 0 e 5):
Osiris(config-view)# secret 0 Senha123
Pronto, agora vamos definir quais views formarão a nossa superview:
Osiris(config-view)# view vA
*Jun 26 08:58:00.191: %PARSER-6-SUPER_VIEW_EDIT_ADD: view vA added to superview sv1.
Osiris(config-view)# view vB
*Jun 26 08:58:00.191: %PARSER-6-SUPER_VIEW_EDIT_ADD: view vB added to superview sv1.
Pronto, agora tudo o que as views vA e vB podem fazer a nossa superview também pode.
Você pode fazer com que sempre que um determinado usuário logar no sistema, ele entre automaticamente na view que você quiser. Para isso, no modo de configuração global:
Osiris(config)# username usuario1 view view-X password Senha123
Assim, o usuário usuario1 entrará automaticamente na view view-X sempre que logar no sistema. Ele também pode entrar em outra view usando o comando:
Osiris> enable view nome-da-view
Password:
Vale lembrar que neste caso a senha que deve ser digitada é a senha da view e não a senha do modo enable.
Para verificar em qual view você está:
Osiris# show parser view
Current view is ‘vA’
Para ver todas as views:
Osiris# show parser view all
Views/SuperViews Present in System:
vA
vB
sv1 *
——-(*) represent superview——-
As views marcadas com * são superviews, não views normais. No caso acima, vA e vB são views normais e sv1 é uma superview.
Obviamente, o IOS não te limita a especificar comandos apenas para o modo de configuração global ou para o modo Exec. Existem vários modos que você pode especificar no comando “commands” enquanto configura a view. Uma lista mais completa é:
accept-dialin
accept-dialout
address-family
alps-ascu
alps-circuit
atm-bm-config
atm-bundle-config
atm-vc-config
atmsig_e164_table_mode
cascustom
config-rtr-http
configure
controller
crypto-map
crypto-transform
dhcp
dspfarm
exec
flow-cache
gateway
interface
interface-dlci
ipenacl
ipsnacl
ip-vrf
lane
line
map-class
map-list
mpoa-client
mpoa-server
null-interface
preaut
request-dialin
request-dialout
route-map
router
rsvp_policy_local
rtr
sg-radius
sg-tacacs+
sip-ua
subscriber-policy
tcl
tdm-conn
template
translation-rule
vc-class
voiceclass
voiceport
voipdialpeer
vpdn-group
Com as views você tem um nível de granularidade altíssimo para definir com detalhes o que alguém irá fazer no seu roteador. Isso é recomendado principalmente se você tem pessoas com papéis diferentes acessando o mesmo dispositivo. Não é interessante que todas tenham acesso a toda e qualquer parte do seu sistema, precisando ou não. Sempre configure muito bem o que pode ou não ser feito para evitar surpresas desagradáveis.
Vale lembrar também que usuários podem mudar de view se eles souberem o nome e a senha da outra view que eles querem acessar.
Se você encontrou algum erro ou tem alguma sugestão, deixe um comentário!

Esta obra escrita por Pedro Augusto de Oliveira Pereira está licensiada sob a Creative Commons Atribuição-Uso Não-Comercial-Vedada a Criação de Obras Derivadas 3.0 Brasil License.
3 Comentários
Eber
18|Aug|2011 1Muito bom o post, não conhecia esse comando view! View = Contra Estagiarios!
felix
04|Dec|2011 2muito bom post a tantas que preucrava o mesmo mas fiquei com algo a ser esclarecido ,eu nao vejo o comando que vai me permitir entrar via enable secret ou password no view que eu vou criar porque tenho apenas o enable do usuario root
obrigado
felixcunha
Pedro Pereira
14|Dec|2011 3@felix,
Não entendi muito bem. Quando você digita “enable view” não dá certo? Aparece alguma mensagem de erro? Dê mais detalhes para eu te ajudar :)
[]‘s
Pedro Pereira.
Deixe seu comentário!