Pedro Pereira

Consultoria, tutoriais e outras coisas que podem te ajudar!

Criando views no Cisco IOS

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.

Criando uma view

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.

Definindo quais comandos são permitidos na view

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:

  • show version
  • show ip route
  • ping
  • configure

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:

  • hostname
  • access-list
  • interface

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.

Opções adicionais

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

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.

Criando uma superview

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.

Associando um usuário à view

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.

Como vejo quais views existem no IOS?

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.

Modos para os quais você pode especificar comandos

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

Conclusão

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!

Compartilhe o post! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Webnews
  • Digg
  • del.icio.us
  • StumbleUpon
  • Reddit
  • Ask
  • Bloglines
  • email
  • Facebook
  • Furl
  • Google Bookmarks
  • LinkedIn
  • Live-MSN
  • Pownce
  • Print
  • Rec6
  • Slashdot
  • Technorati
  • TwitThis

Posts relacionados:

  • Configurando Syslog e NTP no Cisco IOS Quando um atacante invade um sistema, a primeira coisa que...
  • Configuração de roteadores Cisco Um roteador, ou router, nada mais é que um computador...
  • Configuração de SSH em roteadores Cisco Atualmente, acredito que ninguém administraria um roteador, servidor, switch, ou...
  • Mega post: ACLs – Entenda de uma vez por todas! Uma ACL, no contexto dos produtos Cisco, é um recurso...
  • Como configurar e usar o sudo Muitas vezes você precisa executar um programa com as credenciais...



  • 3 Comentários

    1. Eber

      18|Aug|2011 1

      Muito bom o post, não conhecia esse comando view! View = Contra Estagiarios!

    2. felix

      04|Dec|2011 2

      muito 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

    3. 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!

    Acompanhe!

      Assine o feed RSS! Me acompanhe no Twitter! Me adicione no LinkedIn!

    Creative Commons


    Mais lidos