Nesta página
Exemplo: Configure permissões de usuários com níveis de privilégio de acesso
Como definir privilégios de acesso com declarações de configuração de permissão e de negação
Exemplo: Use lógica aditiva com expressões regulares para especificar privilégios de acesso
Exemplo: Configure permissões de usuário com privilégios de acesso para comandos de modo operacional
Privilégios de acesso ao usuário
Você (o administrador do sistema) concede aos usuários acesso ou permissões para comandos e níveis e declarações da hierarquia de configuração. Os usuários só podem executar esses comandos e visualizar e configurar apenas aquelas declarações para as quais eles têm privilégios de acesso. Você também pode usar expressões regulares estendidas para especificar quais comandos de modo operacional, declarações de configuração e hierarquias são permitidos ou negados para os usuários. Essa prática impede que usuários não autorizados executem comandos sensíveis ou configurem declarações que possam causar danos à rede.
Visão geral dos níveis de privilégio de acesso
Cada declaração de comando e configuração de CLI de alto nível tem um nível de privilégio de acesso associado. Os usuários só podem executar esses comandos e configurar e visualizar apenas aquelas declarações para as quais eles têm privilégios de acesso. Uma ou mais bandeiras de permissão definem os privilégios de acesso para cada aula de login.
Para cada aula de login, você também pode permitir ou negar explicitamente o uso de comandos de modo operacional e de configuração e hierarquias de declaração que de outra forma seriam permitidas ou negadas por um nível de privilégio especificado na permissions
declaração.
- Bandeiras de permissão de classe de login
- Permitir e negar comandos individuais e hierarquias de declaração para aulas de login
Bandeiras de permissão de classe de login
Você usa bandeiras de permissão para conceder a um usuário acesso a comandos de modo operacional e níveis e declarações da hierarquia de configuração. Você configura bandeiras de permissão para a classe de login do usuário no nível de [edit system login class]
hierarquia. Quando você especifica uma determinada bandeira de permissão, o usuário ganha acesso aos comandos e aos níveis de hierarquia de configuração e declarações que correspondem a essa bandeira. Para conceder acesso a todos os comandos e declarações de configuração, use a bandeira de all
permissões.
Cada comando listado representa esse comando e todos os subcomandados com esse comando como prefixo. Cada declaração de configuração listada representa o topo da hierarquia de configuração à qual essa bandeira concede acesso.
A permissions
declaração especifica uma ou mais das bandeiras de permissão listadas em Tabela 1. As bandeiras de permissão não são cumulativas. Para cada classe, você deve listar todas as bandeiras de permissão necessárias, inclusive view
para exibir informações e configure
entrar no modo de configuração. Duas formas de permissões controlam o acesso de um usuário às partes individuais da configuração:
-
Formulário "simples" — fornece recursos somente de leitura para esse tipo de permissão. Um exemplo é
interface
. -
-control
formulário — fornece recursos de leitura e gravação para esse tipo de permissão. Um exemplo éinterface-control
.
Para bandeiras de permissão que concedem acesso a níveis e declarações de hierarquia de configuração, as bandeiras de forma simples concedem privilégio somente de leitura a essa configuração. Por exemplo, a interface
bandeira de permissão concede acesso somente de leitura ao nível de [edit interfaces]
hierarquia. A -control
forma da bandeira concede acesso read-write a essa configuração. Por exemplo, a interface-control
bandeira concede acesso de leitura e gravação ao nível de [edit interfaces]
hierarquia.
Tabela 1 lista as bandeiras de permissão de classe de login que você pode configurar, incluindo a permissions
declaração no nível de [edit system login class class-name]
hierarquia.
As bandeiras de permissão concedem um conjunto específico de privilégios de acesso. Cada bandeira de permissão é listada com os comandos de modo operacional ou de configuração e níveis de hierarquia de configuração e declarações para as quais essa bandeira concede acesso.
Bandeira de permissão |
Descrição |
---|---|
Pode visualizar a configuração de acesso no modo operacional ou modo de configuração. |
|
Pode visualizar e configurar informações de acesso no nível de |
|
Pode visualizar as informações da conta do usuário no modo operacional ou modo de configuração. |
|
Pode visualizar as informações da conta do usuário e configurá-la no nível de |
|
Pode acessar todos os comandos de modo operacional e comandos de modo de configuração. Pode modificar a configuração em todos os níveis de hierarquia de configuração. |
|
Pode limpar (deletar) informações que o dispositivo aprende com a rede e armazena em vários bancos de dados de rede (usando os |
|
Pode entrar no modo de configuração (usando o |
|
Pode realizar todas as operações de nível de controle — todas as operações configuradas com as bandeiras de |
|
Pode visualizar comandos de depuração de campo. Reservado para suporte de depuração. |
|
Pode visualizar a configuração do filtro de firewall no modo operacional ou modo de configuração. |
|
Pode visualizar e configurar informações de filtro de firewall no nível de |
|
Pode ler e escrever para a mídia removível. |
|
Pode visualizar a configuração da torneira de fluxo no modo operacional ou modo de configuração. |
|
Pode visualizar e configurar informações de fluxo-tap no nível de |
|
Pode fazer solicitações de flow-tap para o roteador ou switch. Por exemplo, um cliente do Dynamic Tasking Control Protocol (DTCP) deve ter Nota:
A opção |
|
Pode visualizar dados do profiler. |
|
É possível visualizar a configuração da interface no modo operacional e no modo de configuração. |
|
Pode visualizar chassis, classe de serviço (CoS), grupos, opções de encaminhamento e informações de configuração de interfaces. Pode modificar a configuração nos seguintes níveis de hierarquia:
|
|
Pode realizar a manutenção do sistema, incluindo iniciar uma concha local no dispositivo e se tornar o superusuário na concha (usando o |
|
Pode acessar a rede usando os |
|
Pode visualizar a configuração de espelhamento de |
|
Pode modificar a configuração de |
|
Pode reiniciar processos de software usando o |
|
Pode usar o |
|
É possível visualizar informações gerais de roteamento, protocolo de roteamento e configuração de políticas de roteamento no modo de configuração e modo operacional. |
|
Pode visualizar e configurar o roteamento geral no nível de |
|
Pode visualizar senhas e outras chaves de autenticação na configuração. |
|
Pode visualizar e modificar senhas e outras chaves de autenticação na configuração. |
|
É possível visualizar as informações de configuração de segurança no modo operacional e no modo de configuração. |
|
Pode visualizar e configurar informações de segurança no nível de |
|
Pode iniciar uma concha local no roteador ou switch usando o |
|
É possível visualizar informações de configuração do Simple Network Management Protocol (SNMP) no modo operacional ou modo de configuração. |
|
Pode visualizar e modificar as informações de configuração de SNMP no nível de |
|
|
Pode visualizar as informações de configuração de armazenamento do Fiber Channel no nível de |
|
Pode modificar as informações de configuração de armazenamento do Fiber Channel no nível hierárquico |
Pode visualizar informações de nível de sistema no modo operacional ou modo de configuração. |
|
Pode visualizar e modificar informações de configuração no nível do sistema no nível de |
|
Pode visualizar configurações de arquivo de rastreamento e configurar propriedades de arquivo de rastreamento. |
|
Pode modificar configurações de arquivo de rastreamento e configurar propriedades de arquivo de rastreamento. |
|
|
Pode visualizar a configuração de borda unificada na |
|
Pode modificar a configuração unificada relacionada à borda na |
Pode usar vários comandos para exibir a tabela de roteamento em todo o sistema e valores e estatísticas específicos do protocolo. Não é possível visualizar a configuração secreta. |
|
Pode visualizar toda a configuração, sem segredos, scripts de sistema e opções de eventos. Nota:
Somente usuários com permissão |
Permitir e negar comandos individuais e hierarquias de declaração para aulas de login
Por padrão, todos os comandos CLI de alto nível e os níveis de hierarquia de configuração associaram níveis de privilégio de acesso. Os usuários só podem executar esses comandos e visualizar e configurar apenas aquelas declarações para as quais eles têm privilégios de acesso. Para cada classe de login, você pode permitir e negar explicitamente o uso de comandos de modo operacional e de configuração e hierarquias de declaração que de outra forma seriam permitidas ou negadas por um nível de privilégio especificado na permissions
declaração.
As bandeiras de permissão concedem a um usuário acesso a comandos de modo operacional e de configuração e a níveis e declarações da hierarquia de configuração. Ao especificar uma bandeira de permissão específica na classe de login do usuário no nível de [edit system login class]
hierarquia, você concede ao usuário acesso aos níveis e declarações da hierarquia de configuração e comandos correspondentes. Para conceder acesso a todos os comandos e declarações de configuração, use a bandeira de all
permissões.
Você pode permitir ou negar explicitamente o uso de comandos e declarações configurando asallow-commands
, deny-commands
e allow-configuration
deny-configuration
as declarações para uma aula de login. Nas declarações, você usa expressões regulares estendidas para definir quais comandos e declarações permitir ou negar para usuários atribuídos à classe.
Exemplo: Configure permissões de usuários com níveis de privilégio de acesso
Este exemplo configura as permissões do usuário para uma aula de login. Você configura permissões de usuário para uma aula de login para impedir que os usuários realizem ações de rede não autorizadas. Os usuários só podem executar esses comandos e visualizar e modificar apenas aquelas declarações para as quais eles têm privilégios de acesso. Essa restrição impede que usuários não autorizados executem comandos sensíveis ou configurem declarações que possam causar danos à rede.
Requisitos
Nenhuma configuração especial além da inicialização do dispositivo é necessária antes de configurar este exemplo.
Visão geral
Cada comando CLI de alto nível e cada declaração de configuração tem um nível de privilégio de acesso associado a ele. Ao configurar uma aula de login, você pode permitir ou negar explicitamente o uso de comandos de modo operacional e de configuração e declarações de configuração. Os usuários só podem executar esses comandos e visualizar e configurar apenas aquelas declarações para as quais eles têm privilégios de acesso.
Você define os privilégios de acesso para cada aula de login especificando uma ou mais bandeiras de permissão na permissions
declaração. As bandeiras de permissão concedem a um usuário acesso a comandos, declarações e hierarquias. As bandeiras de permissão não são cumulativas. Para cada aula de login, você deve listar todas as bandeiras de permissão necessárias, inclusive view
para exibir informações e configure
entrar no modo de configuração. Ao especificar uma bandeira de permissão específica na classe de login do usuário, você concede ao usuário acesso aos comandos, declarações e hierarquias correspondentes. Para conceder acesso a todos os comandos e declarações de configuração, use a bandeira de all
permissões. As bandeiras de permissão fornecem recursos somente de leitura ("simples") e de leitura e gravação (formulário que termina em controle) para um tipo de permissão.
Os all
bits de permissão da classe de login têm precedência sobre expressões regulares estendidas quando um usuário emite um rollback
comando com a rollback
bandeira de permissão habilitada.
Para configurar os níveis de privilégio de acesso do usuário para uma aula de login, inclua a permissions
declaração no nível de [edit system login class class-name]
hierarquia, seguida pelas bandeiras de permissão. Configure várias permissões como uma lista separada por espaço em parênteses quadrados:
[edit system login] user@host# set class class-name permissions permission-flag user@host# set class class-name permissions [flag1 flag2 flag3]
Para visualizar as permissões disponíveis, use a ajuda sensível ao contexto da CLI e digite um ponto de interrogação (?) após a permissions
declaração:
[edit system login] user@host# set class class-name permissions ?
Configuração
Este exemplo configura a snmp-admin
classe de login. Os usuários desta classe de login podem configurar e visualizar apenas parâmetros SNMP.
Configure permissões de usuários com níveis de privilégio de acesso
Procedimento passo a passo
Para configurar privilégios de acesso para a aula de login:
-
Configure a
snmp-admin
aula de login com asconfigure
bandeiras desnmp
permissão.snmp-control
[edit system login] user@host# set class snmp-admin permissions [configure snmp snmp-control]
As bandeiras de permissão configuradas fornecem recursos de leitura (snmp) e read-and-write (snmp-control) para SNMP, e este é o único privilégio de acesso permitido para esta classe de login. Todos os outros privilégios de acesso são negados.
-
Crie as contas de usuário que são atribuídas à aula de
snmp-admin
login.[edit system login] user@host# set user snmpuser class snmp-admin authentication plain-text-password New password: Retype new password:
Resultados
No modo de configuração, confirme sua configuração inserindo o show system login
comando. Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.
user@host# show system login class snmp-admin { permissions [ configure snmp snmp-control ]; } user snmpuser { class snmp-admin; authentication { encrypted-password "$ABC123"; ## SECRET-DATA } }
Após a configuração do dispositivo, entre commit
no modo de configuração.
Verificação
Faça login usando um nome de usuário atribuído à nova classe de login e confirme que a configuração está funcionando corretamente.
Verifique a configuração do SNMP
Propósito
Verifique se um usuário na classe de login pode configurar o snmp-admin
SNMP.
Ação
No modo de configuração, configure as declarações de SNMP no nível de [edit snmp]
hierarquia.
[edit snmp] user@host# set name device1 user@host# set description switch1 user@host# set location Lab1 user@host# set contact example.com user@host# commit
Significado
O usuário da snmp-admin
classe de login é capaz de configurar parâmetros SNMP. O usuário pode configurar esses parâmetros porque as bandeiras de permissão especificadas para esta classe incluem snmp (recursos de leitura) e bits de permissão de controle de snmp (recursos de leitura e gravação).
Verifique a configuração não-SNMP
Propósito
Verifique se um usuário da snmp-admin
classe de login não pode modificar declarações de configuração não-SNMP.
Ação
No modo de configuração, tente configurar qualquer declaração não SNMP, como uma declaração na interfaces
hierarquia.
[edit] user@host# edit interfaces Syntax error, expecting <statement> or <identifier>.
Significado
O usuário da snmp-admin
classe de login não é capaz de configurar a [edit interfaces]
hierarquia porque as bandeiras de permissão especificadas para esta classe não permitem. Neste caso, a CLI emite uma mensagem de erro.
Expressões regulares para permitir e negar comandos de modo operacional, declarações de configuração e hierarquias
Este tópico contém as seguintes seções:
- Entendendo as declarações de permitir e negar
- Entendendo a sintaxe da declaração de permissão e negação
- Entendendo a precedência e a correspondência da declaração de permissão e negação
- Entendendo as regras de declaração de permissão e negação
- Entendendo as diferenças para as declarações *-regexps
- Usando expressões regulares em servidores de autorização remota
- Especifique expressões regulares
- Operadores de expressões regulares
- Exemplos de expressão regulares
Entendendo as declarações de permitir e negar
Cada hierarquia de declaração de configuração e comando CLI de alto nível tem um nível de privilégio de acesso associado a ele. Cada classe de login pode permitir ou negar explicitamente o uso de comandos e declarações de modo de configuração e comandos de modo operacional e configuração que de outra forma seriam permitidas ou negadas por um nível de privilégio. Os usuários só podem executar esses comandos e visualizar e configurar apenas aquelas declarações para as quais eles têm privilégios de acesso.
Os privilégios de acesso para cada classe de login são definidos por uma ou mais bandeiras de permissão especificadas na permissions
declaração no nível hierárquico [edit system login class class-name]
. Além disso, você pode permitir ou negar o uso de comandos específicos e hierarquias de configuração definindo expressões regulares estendidas. Você pode especificar as expressões regulares configurando as seguintes declarações para uma aula de login:
-
allow-commands
edeny-commands
— Permitir ou negar acesso a comandos de modo operacional e de configuração. -
allow-configuration
edeny-configuration
— Permitir ou negar acesso a hierarquias de configuração específicas.Nota:Essas declarações executam correspondências mais lentas, com mais flexibilidade, especialmente em correspondências curingas. No entanto, pode levar muito tempo para avaliar todas as declarações possíveis se um grande número de expressões regulares de caminho completo ou expressões curingas estiver configurado, possivelmente afetando negativamente o desempenho.
-
allow-commands-regexps
edeny-commands-regexps
— Permitir ou negar acesso a comandos específicos usando strings de expressões regulares. -
allow-configuration-regexps
edeny-configuration-regexps
— Permitir ou negar acesso a hierarquias de configuração específicas usando strings de expressões regulares.
Se suas configurações existentes usarem as declarações ou allow/deny-configuration
declaraçõesallow/deny-commands
, usar as mesmas opções de configuração com as declarações ou allow/deny-configuration-regexps
declarações allow/deny-commands-regexps
pode não produzir os mesmos resultados. Os métodos de pesquisa e correspondência diferem nas duas formas dessas declarações.
Permitir explicitamente hierarquias de comandos e declarações de configuração usando as allow/deny-*
declarações adiciona às permissões que a permissions
declaração já define. Da mesma forma, negar explicitamente as hierarquias de comandos e declarações de configuração usando as allow/deny-*
declarações remove permissões que a permissions
declaração já define.
Por exemplo, na configuração a seguir, a configure
permissão permite que os usuários da classe de login entrem no modo de configuração. Além disso, a allow-configuration
expressão permite que os usuários modifiquem a configuração no nível de hierarquia e a [edit system services]
comprometam.
[edit system login class test] user@host# set permissions configure allow-configuration "system services"
Da mesma forma, na configuração a seguir, o usuário da classe de login pode realizar todas as operações que a all
bandeira de permissões permite, exceto que o usuário não pode visualizar ou modificar a configuração no [edit system services]
nível de hierarquia:
[edit system login class test] user@host# set permissions all deny-configuration "system services"
Entendendo a sintaxe da declaração de permissão e negação
Você pode configurar uma declaração allow/deny-*
apenas uma vez em cada aula de login. Quando você configura uma declaração:
-
Você pode configurar quantas expressões regulares for necessário.
-
Expressões regulares não são sensíveis ao caso
As allow/deny-commands
declarações são mutuamente exclusivas com as allow/deny-commands-regexps
declarações, e as allow/deny-configuration
declarações são mutuamente exclusivas com as allow/deny-configuration-regexps
declarações. Por exemplo, você não pode configurar ambos allow-configuration
e allow-configuration-regexps
na mesma classe de login.
Para definir privilégios de acesso aos comandos, especifique expressões regulares estendidas usando as declarações e deny-commands
as allow-commands
declarações. Coloque cada expressão independente completa em parênteses e use o símbolo do tubo para separar as expressões. Não use espaços entre expressões regulares conectadas com o símbolo do tubo. A expressão completa está cercada em duas cotações.
allow-commands "(cmd1)|(cmd2)|(cmdn)" allow-configuration "(config1)|(config2)|(confign)"
Por exemplo:
[edit system login class test] user@host# set allow-commands "(ping .*)|(traceroute .*)|(show .*)|(configure .*)|(edit)|(exit)|(commit)|(rollback .*)"
Você deve usar âncoras ao especificar expressões regulares complexas com a allow-commands
declaração. Por exemplo:
[edit system login] user@host# set class test allow-commands "(^monitor)|(^ping)|(^show)|(^exit)"
Para definir privilégios de acesso a partes da hierarquia de configuração, especifique expressões regulares estendidas nas declarações e deny-configuration
declaraçõesallow-configuration
. Coloque os caminhos completos em parênteses e use o símbolo do tubo ( |) para separar as expressões. Não use espaços entre expressões regulares conectadas com o símbolo do tubo. A expressão completa está cercada em duas cotações.
allow-configuration "(config1)|(config2)|(confign)"
Por exemplo:
[edit system login class test] user@host# set deny-configuration "(system login class)|(system services)"
Ao especificar expressões regulares estendidas usando as allow/deny-commands-regexps
ou allow/deny-configuration-regexps
declarações, coloque cada expressão dentro das cotações (" "), e separe as expressões usando um espaço. Inclua várias expressões em parênteses quadrados [ ]. Por exemplo:
[edit system login class test] user@host# set allow-configuration-regexps ["interfaces .* description .*" "interfaces .* unit .* description .*" “interfaces .* unit .* family inet address .*" "interfaces.* disable"]
Modificadores como set
, log
e count
não são suportados dentro da string de expressão regular a ser combinado. Se você usa um modificador, então nada é compatível.
Configuração correta:
[edit system login class test] user@host# set deny-commands protocols
Configuração incorreta:
[edit system login class test] user@host# set deny-commands "set protocols"
Entendendo a precedência e a correspondência da declaração de permissão e negação
Por padrão, as allow-commands
expressões e allow-configuration
regulares prevalecem deny-commands
e deny-configuration
expressões. Assim, se você configurar o mesmo comando para as declarações e deny-commands
declaraçõesallow-commands
, então a operação de permissão prevalecerá sobre a operação de negação. Da mesma forma, se você configurar a mesma declaração para as declarações e deny-configuration
declaraçõesallow-configuration
, a operação de permissão prevalecerá sobre a operação de negação.
Por exemplo, a configuração a seguir permite que um usuário na test
classe de login instale software usando o request system software add
comando, embora a deny-commands
declaração inclua o mesmo comando:
[edit system login class test] user@host# set allow-commands "request system software add" user@host# set deny-commands "request system software add"
Da mesma forma, a configuração a seguir permite que um usuário no teste de test
classe de login visualize e modifique a hierarquia de [edit system services]
configuração, embora a deny-configuration
declaração inclua a mesma hierarquia:
[edit system login class test] user@host# set allow-configuration "system services" user@host# set deny-configuration "system services"
Se as declarações e deny-commands
as allow-commands
declarações tiverem duas variantes diferentes de um comando, a correspondência mais longa sempre será executada. A configuração a seguir permite que um usuário na test
classe de login execute o commit synchronize
comando, mas não o commit
comando. Isso porque commit synchronize
é a combinação mais longa entre commit
e commit synchronize
, e é especificada para allow-commands
.
[edit system login class test] user@host# set allow-commands "commit synchronize" user@host# set deny-commands commit
A configuração a seguir permite que um usuário na test
classe de login execute o commit
comando, mas não o commit synchronize
comando. Isso porque commit synchronize
é a combinação mais longa entre commit
e commit synchronize
, e é especificada para deny-commands
.
[edit system login class test] user@host# set allow-commands commit user@host# set deny-commands "commit synchronize"
Em contraste com as outras declarações, o comportamento padrão para as *-regexps
declarações é que as deny-configuration-regexps
deny-commands-regexps
expressões regulares prevalecem allow-commands-regexps
e allow-configuration-regexps
expressões. Você pode configurar a regex-additive-logic
declaração no nível de [edit system]
hierarquia para forçar as allow-configuration-regexps
expressões regulares a prevalecerem sobre as deny-configuration-regexps
declarações. A configuração da declaração permite que você negue hierarquias de configuração em um nível mais alto e, em seguida, apenas permita que o usuário tenha acesso a sub-hierarquias específicas.
Entendendo as regras de declaração de permissão e negação
A allow/deny-commands
, allow/deny-configuration
e allow/deny-commands-regexps
allow/deny-configuration-regexps
as declarações têm precedência sobre as permissões de aula de login. Quando você configura essas declarações, as seguintes regras se aplicam:
-
Expressões e declarações regulares
allow-commands
também podem incluir comandosload
status
commit
rollback
save
eupdate
comandos.deny-commands
-
Os
all
bits de permissão da classe de login têm precedência sobre expressões regulares estendidas quando um usuário emite orollback
comando com arollback
bandeira de permissão habilitada. -
Os usuários não podem emitir o
load override
comando ao especificar uma expressão regular estendida. Os usuários só podem emitir osmerge
comandos ereplace
patch
configuração. -
Você pode usar o caractere curinga * ao denotar expressões regulares. No entanto, você deve usá-lo como parte de uma expressão regular. Você não pode usar
[ * ]
ou[ .* ]
como a única expressão. Além disso, você não pode configurar aallow-configuration
declaração com uma expressão como(interfaces (description (|.*))
, porque isso avaliaallow-configuration .*
.
Entendendo as diferenças para as declarações *-regexps
Esta seção descreve as diferenças entre as allow/deny-configuration
declarações e as allow/deny-configuration-regexps
declarações.
As allow/deny-configuration-regexps
declarações dividem a expressão regular em símbolos e comparam cada peça com cada parte do caminho completo da configuração especificada, enquanto as allow/deny-configuration
declarações se comparam com a corda completa. Para allow/deny-configuration-regexps
declarações, você configura um conjunto de strings em que cada string é uma expressão regular, com espaços entre os termos da string. Essa sintaxe oferece correspondência muito rápida, mas oferece menos flexibilidade. Para especificar expressões curingas, você deve configurar curingas para cada símbolo da corda delimitada por espaço que você deseja combinar, o que torna mais difícil usar expressões curingas para essas declarações.
Por exemplo:
-
Expressão regular que combina com um símbolo usando allow-configuration-regexps
Este exemplo mostra que
options
é a única expressão combinada contra o primeiro símbolo da declaração.[edit system] login { class test { permissions configure; allow-configuration-regexps .*options; } }
A configuração anterior corresponde às seguintes declarações:
-
definir opções de políticas condição condition dinâmica-db
-
definir opções de roteamento rota static-route estática next-hop next-hop
-
definir opções de eventos geram intervalo de tempo de evento eventseconds
A configuração anterior não corresponde às seguintes declarações:
-
opções de host com nome de host do sistema
-
opções de descrição de interfaces interface-name
-
-
Expressão regular que combina com três símbolos usando allow-configuration-regexps
Este exemplo mostra que
ssh
é a única expressão combinada contra o terceiro símbolo da declaração.[edit system] login { class test { permissions configure; allow-configuration-regexps ".* .* .*ssh"; } }
No exemplo anterior, os três símbolos incluem
.*
,.*
e.*ssh
, respectivamente.A configuração anterior corresponde às seguintes declarações:
-
nome do host-ssh do sistema
-
ssh de serviços de sistema
-
serviços de sistema de saída
A configuração anterior não corresponde à seguinte declaração:
-
ssh interface-namedescrição de interfaces
-
É mais fácil usar a declaração para restringir o deny-configuration
acesso à configuração do que usar a deny-configuration-regexps
declaração. Tabela 2 Ilustra o uso das declarações e deny-configuration-regexps
declarações deny-configuration
em diferentes configurações para alcançar o mesmo resultado de restringir o acesso a uma configuração específica.
Configuração negada |
Usando: |
Usando: |
Resultado |
|
[edit system] login { class test { permissions configure; allow-configuration .*; deny-configuration .*xnm-ssl; } } |
[edit system] login { class test { permissions configure; allow-configuration .*; deny-configuration-regexps ".* .* .*-ssl""; } } |
A declaração de configuração a seguir é negada:
|
|
[edit system] login { class test { permissions configure; allow-configuration .*; deny-configuration ".*ssh"; } } |
[edit system] login { class test { permissions configure; allow-configuration .*; deny-configuration-regexps ".*ssh"; deny-configuration-regexps ".* .*ssh"; deny-configuration-regexps ".* .* .*ssh"; } } |
As seguintes declarações de configuração são negadas:
|
Embora as allow/deny-configuration
declarações também sejam úteis quando você deseja uma configuração simples, as allow/deny-configuration-regexps
declarações fornecem melhor desempenho e superam a ambiguidade que existe ao combinar expressões nas allow/deny-configuration
declarações.
Usando expressões regulares em servidores de autorização remota
Você pode usar expressões regulares estendidas para especificar quais comandos de modo operacional e de configuração e declarações de configuração e hierarquias são permitidos ou negados para determinados usuários. Você especifica essas expressões regulares localmente no nível de allow/deny-commands-regexps
allow/deny-commands
allow/deny-configuration
hierarquia e allow/deny-configuration-regexps
declarações.[edit system login class class-name]
Você especifica essas expressões regulares remotamente especificando atributos TACACS+ ou RADIUS específicos do fornecedor da Juniper Networks na configuração do seu servidor de autorização. Quando você configura parâmetros de autorização local e remotamente, o dispositivo mescla as expressões regulares recebidas durante a autorização TACACS+ ou RADIUS com quaisquer expressões regulares definidas no dispositivo local.
A partir do Junos OS Release 18.1, as declarações e deny-commands-regexps
o allow-commands-regexps
suporte para a autorização do TACACS+.
Ao especificar várias expressões regulares em uma configuração local usando as allow-commands
, deny-commands
, allow-configuration
ou deny-configuration
declarações, você configura expressões regulares dentro dos parênteses e as separa usando o símbolo do tubo. Você coloca a expressão completa em duas cotações. Por exemplo, você pode especificar vários allow-commands
parâmetros com a seguinte sintaxe:
allow-commands "(cmd1)|(cmd2)|(cmdn)"
O servidor de autorização RADIUS usa os seguintes atributos e sintaxe:
Juniper-Allow-Commands += "(cmd1)|(cmd2)|(cmd3)", Juniper-Deny-Commands += "(cmd1)|(cmd2)", Juniper-Allow-Configuration += "(config1)|(config2)", Juniper-Deny-Configuration += "(config1)|(config2)",
O servidor de autorização TACACS+ usa os seguintes atributos e sintaxe:
allow-commands = "(cmd1)|(cmd2)|(cmdn)" deny-commands = "(cmd1)|(cmd2)|(cmdn)" allow-configuration = "(config1)|(config2)|(confign)" deny-configuration = "(config1)|(config2)|(confign)"
Ao especificar várias expressões regulares em uma configuração local usando asallow-commands-regexps
, , deny-commands-regexps
allow-configuration-regexps
ou deny-configuration-regexps
declarações, você configura expressões regulares dentro de duas cotações e as separa usando o operador de espaço. Você inclui a expressão completa em parênteses quadrados. Por exemplo, você pode especificar vários parâmetros de permitir comandos com a seguinte sintaxe:
allow-commands-regexps [ "cmd1" "cmd2" "cmdn" ]
O servidor de autorização RADIUS usa os seguintes atributos e sintaxe:
Juniper-Allow-Configuration-Regexps += "(config1)|(config2)|(confign)", Juniper-Deny-Configuration-Regexps += "(config1)|(config2)|(confign)",
O servidor de autorização TACACS+ usa os seguintes atributos e sintaxe:
allow-commands-regexps = "(cmd1)|(cmd2)|(cmdn)" deny-commands-regexps = "(cmd1)|(cmd2)|(cmdn)" allow-configuration-regexps = "(config1)|(config2)|(confign)" deny-configuration-regexps = "(config1)|(config2)|(confign)"
Os servidores RADIUS e TACACS+ também oferecem suporte a uma sintaxe simplificada na qual você especifica cada expressão individual em uma linha separada. Por exemplo, a sintaxe simplificada do servidor RADIUS é:
Juniper-Allow-Commands += "cmd1", Juniper-Allow-Commands += "cmd2", Juniper-Allow-Commands += "cmdn",
Da mesma forma, a sintaxe simplificada do servidor TACACS+ é:
allow-commands-regexps1 = "cmd1" allow-commands-regexps2 = "cmd2" allow-commands-regexpsn = "cmdn"
Tabela 3 diferencia a configuração de autorização local e a configuração de autorização de servidor TACACS+ usando expressões regulares.
Configuração local |
Configuração remota do TACACS+ |
---|---|
login { class local { permissions configure; allow-commands "(ping .*)|(traceroute .*)|(show .*)|(configure .*)|(edit)|(exit)|(commit)|(rollback .*)"; deny-commands .*; allow-configuration "(interfaces .* unit 0 family ethernet-switching vlan mem.* .*)|(interfaces .* native.* .*)|(interfaces .* unit 0 family ethernet-switching interface-mo.* .*)|(interfaces .* unit .*)|(interfaces .* disable)|(interfaces .* description .*)|(vlans .* vlan-.* .*)" deny-configuration .*; } } |
user = remote { login = username service = junos-exec { allow-commands1 = "ping .*" allow-commands2 = "traceroute .*" allow-commands3 = "show .*" allow-commands4 = "configure" allow-commands5 = "edit" allow-commands6 = "exit" allow-commands7 = "commit" allow-commands8 = ".*xml-mode" allow-commands9 = ".*netconf.*" allow-commands10 = ".*need-trailer" allow-commands11 = "rollback.*" allow-commands12 = "junoscript" deny-commands1 = ".*" allow-configuration1 = "interfaces .* unit 0 family ethernet-switching vlan mem.* .*" allow-configuration2 = "interfaces .* native.* .*" allow-configuration3 = "interfaces .* unit 0 family ethernet-switching interface-mo.* .*" allow-configuration4 = "interfaces .* unit .*" allow-configuration5 = "interfaces .* disable" allow-configuration6 = "interfaces .* description .*" allow-configuration7 = "interfaces .*" allow-configuration8 = "vlans .* vlan-.* .*" deny-configuration1 = ".*" local-user-name = local-username user-permissions = "configure" } } |
-
Você precisa permitir explicitamente o acesso ao modo NETCONF, local ou remotamente, emitindo os seguintes três comandos:
xml-mode
enetconf
need-trailer
... -
Ao usar a
deny-configuration = ".*"
declaração, você deve permitir todas as configurações desejadas usando aallow-configuration
declaração. No entanto, essa configuração pode afetar o limite de buffer de expressões regulares permitido para aallow-configuration
declaração. Se esse limite for excedido, a configuração permitida pode não funcionar.
Especifique expressões regulares
Ao especificar expressões regulares para comandos e declarações de configuração, preste muita atenção aos seguintes exemplos. Uma expressão regular com sintaxe inválida pode não produzir os resultados desejados, mesmo que a configuração seja comprometida sem qualquer erro.
Você deve especificar expressões regulares para comandos e declarações de configuração da mesma maneira que executar o comando ou declaração completos. Tabela 4 lista as expressões regulares para configurar privilégios de acesso para as [edit interfaces]
hierarquias e [edit vlans]
declarações.
Declaração |
Expressão regular |
Notas de configuração |
---|---|---|
[edit interfaces] O [edit] user@host# set interfaces interface-name unit interface-unit-number |
A Como resultado, a expressão regular necessária para negar a [edit system login class class-name] user@host# set permissions configure user@host# set deny-configuration "interfaces .* unit .*" |
|
[edit vlans] O [edit] user@host# set vlans vlan-name vlan-id vlan-id |
Aqui, a Como resultado, a expressão regular necessária para permitir a [edit system login class class-name] user@host# set permissions configure user@host# set allow-configuration "vlans .* vlan-id .*" |
|
Operadores de expressões regulares
Tabela 5 lista operadores de expressão regular comuns que você pode usar para permitir ou negar modos operacionais e de configuração.
Comando expressões regulares implementar as expressões regulares estendidas (modernas), conforme definido no POSIX 1003.2.
Operador |
Fósforo |
Exemplo |
---|---|---|
| |
Um dos dois ou mais termos separados pela tubulação. Cada termo deve ser uma expressão independente completa em parênteses , sem espaços entre o tubo e os parênteses adjacentes. |
[edit system login class test] user@host# set permissions configure user@host# set allow-commands "(ping)|(traceroute)|(show system alarms)|(show system software)" user@host# set deny-configuration "(access)|(access-profile)|(accounting-options)|(applications)|(apply-groups)|(bridge-domains)|(chassis)|(class-of-service)" Com a configuração anterior, os usuários atribuídos à classe de login de teste têm acesso ao modo operacional restrito apenas aos comandos especificados na |
^ |
No início de uma expressão, usada para denotar onde o comando começa, onde pode haver alguma ambiguidade. |
[edit system login class test] user@host# set permissions interface user@host# set permissions interface-control user@host# set allow-commands "(^show) (log|interfaces|policer))|(^monitor)" Com a configuração anterior, os usuários designados para a aula de login de teste têm acesso à visualização e configuração da configuração da interface. A Para o primeiro filtro, os comandos especificados incluem o |
$ |
Personagem no final de um comando. Usado para denotar um comando que deve ser combinado exatamente até esse ponto. |
[edit system login class test] user@host# set permissions interface user@host# set allow-commands "(show interfaces$)" Com a configuração anterior, os usuários designados para a aula de login de teste podem visualizar a configuração das interfaces no modo de configuração. Os usuários também podem visualizar a configuração da interface com o comando do |
[ ] |
Variedade de letras ou dígitos. Para separar o início e o fim de um intervalo, use um hífen (- |
[edit system login class test] user@host# set permissions clear user@host# set permissions configure user@host# set permissions network user@host# set permissions trace user@host# set permissions view user@host# set allow-configuration-regexps [ "interfaces [gx]e-.* unit [0-9]* description .*" ] Com a configuração anterior, os usuários designados para a aula de login de teste têm permissões de usuário no nível do operador. Esses usuários também têm acesso a configurar interfaces dentro da faixa especificada de nome da interface e número da unidade (0 a 9). |
( ) |
Um grupo de comandos indicando uma expressão completa e independente a ser avaliada. O resultado é então avaliado como parte da expressão geral. Os parênteses devem ser usados em conjunto com os operadores de tubulação, conforme explicado. |
[edit system login class test] user@host# set permissions all user@host# set allow-commands "(clear)|(configure)" user@host# deny-commands "(mtrace)|(start)|(delete)" Com a configuração acima, os usuários designados para a classe de login de teste têm permissões de nível de superusuário e têm acesso aos comandos especificados na |
* |
Zero ou mais termos. |
[edit system login class test] user@host# set permissions configure user@host# set deny-configuration "(system login class m*)" Com a configuração acima, os usuários designados para a aula de login de teste cujo nome de usuário de login começa são |
+ |
Um ou mais termos. |
[edit system login class test] user@host# set permissions configure user@host# set deny-configuration "(system login class m+)" Com a configuração acima, os usuários designados para a aula de login de teste cujo nome de usuário de login começa são |
. |
Qualquer personagem, exceto um espaço" ". |
[edit system login class test] user@host# set permissions configure user@host# set deny-configuration "(system login class m.)" Com a configuração acima, os usuários designados para a aula de login de teste cujo nome de usuário de login começa são |
.* |
Tudo desde o ponto especificado em diante. |
[edit system login class test] user@host# set permissions configure user@host# set deny-configuration "(system login class m .*)" Com a configuração acima, os usuários designados para a aula de login de teste cujo nome de usuário de login começa são Da mesma forma, a Nota:
|
O !
operador de expressão regular não é compatível.
Exemplos de expressão regulares
Tabela 6lista as expressões regulares usadas para permitir opções de configuração em duas hierarquias de configuração e[edit system ntp server]
[edit protocols rip]
, como exemplo, especificar expressões regulares.
Tabela 6 não fornece uma lista abrangente de todas as expressões e palavras-chave regulares para todas as declarações e hierarquias de configuração. As expressões regulares listadas na tabela são validadas apenas para as [edit system ntp server]
hierarquias e [edit protocols rip]
declarações.
Hierarquia de declarações |
Expressões regulares |
Configuração permitida |
Configuração negada |
---|---|---|---|
|
|||
chave key-number |
[edit system login class test] set permissions configure set allow-configuration-regexps [ "system ntp server .*" "system ntp server .* key .*" ] set deny-configuration-regexps [ "system ntp server .* version .*" "system ntp server .* prefer" ] |
|
|
Versão version-number |
[edit system login class test] set permissions configure set allow-configuration-regexps [ "system ntp server .*" "system ntp server .* version .*" ] set deny-configuration-regexps [ "system ntp server .* key .*" "system ntp server .* prefer" ] |
|
|
preferir |
[edit system login class test] set permissions configure set allow-configuration-regexps [ "system ntp server .*" "system ntp server .* prefer" ]; set deny-configuration-regexps [ "system ntp server .* key .*" "system ntp server .* version .*" ] |
|
|
|
|||
tamanho da mensagem message-size |
[edit system login class test] set permissions configure set allow-configuration-regexps "protocols rip message-size .*" set deny-configuration-regexps [ "protocols rip metric-in .*" "protocols rip route-timeout .*" "protocols rip update-interval .*" ] |
|
|
métrica metric-in |
[edit system login class test] set permissions configure set allow-configuration-regexps "protocols rip metric-in .*" set deny-configuration-regexps [ "protocols rip message-size .*" "protocols rip route-timeout .*" "protocols rip update-interval .*" ] |
|
|
tempo limite de rota route-timeout |
[edit system login class test] set permissions configure set allow-configuration-regexps "protocols rip route-timeout .*" set deny-configuration-regexps [ "protocols rip metric-in .*" "protocols rip message-size .*" "protocols rip update-interval .*" ] |
|
|
intervalo de atualização update-interval |
[edit system login class test] set permissions configure set allow-configuration-regexps "protocols rip update-interval .*" set deny-configuration-regexps [ "protocols rip metric-in .*" "protocols rip route-timeout .*" "protocols rip message-size .*" ] |
|
|
Como definir privilégios de acesso com declarações de configuração de permissão e de negação
Você pode definir privilégios de acesso para hierarquias de declaração de configuração usando uma combinação dos seguintes tipos de declarações:
bandeiras de permissão
allow-configuration
edeny-configuration
declarações
As bandeiras de permissão definem os limites maiores do que uma pessoa ou classe de login pode acessar e controlar. As allow-configuration
declarações e deny-configuration
declarações contêm uma ou mais expressões regulares que permitem ou negam hierarquias e declarações de configuração específicas. As declarações e deny-configuration
as allow-configuration
declarações têm precedência sobre bandeiras de permissão e dão ao administrador um controle mais fino sobre exatamente quais hierarquias e declarações o usuário pode visualizar e configurar.
Este tópico explica como definir privilégios de acesso usando allow-configuration
e deny-configuration
declarações, mostrando exemplos de configurações de classe de login que usam essas declarações. Exemplos de 1 a 3 criam aulas de login que permitem aos usuários acesso a todos os comandos e declarações, exceto os definidos na deny-configuration
declaração.
Observe que o bit de permissão e a bandeira de permissão são usados de forma intercambiável.
Exemplo 1
Criar uma aula de login que permita ao usuário executar todos os comandos e configurar tudo, exceto parâmetros de telnet:
Exemplo 2
Criar uma aula de login que permita ao usuário executar todos os comandos e configurar tudo, exceto declarações em qualquer classe de login cujo nome começa com "m":
-
Definir as permissões de aula de login do usuário para
all
.[edit system login] user@host# set class all-except-login-class-m permissions all
-
Inclua a declaração a seguir
deny-configuration
.[edit system login class all-except-login-class-m] user@host# set deny-configuration "system login class m.*"
Exemplo 3
Criar uma aula de login que permita ao usuário executar todos os comandos e configurar tudo, exceto os [edit system login class]
níveis de hierarquia ou:[edit system services]
-
Definir as permissões de aula de login do usuário para
all
.[edit system login] user@host# set class all-except-login-class-or-system-services permissions all
-
Inclua a declaração a seguir
deny-configuration
:[edit system login class all-except-login-class-or-system-services] user@host# set deny-configuration "(system login class) | (system services)"
Os exemplos a seguir mostram como usar e deny-configuration
declarações allow-configuration
para determinar permissões inversas entre si para o nível de [edit system services]
hierarquia.
Exemplo 4
Criar uma aula de login que permita ao usuário ter privilégios de configuração completos apenas no nível hierárquicos [edit system services]
:
-
Definir as permissões de aula de login do usuário para
configure
.[edit system login] user@host# set class configure-only-system-services permissions configure
-
Inclua a declaração a seguir
allow-configuration
:[edit system login class configure-only-system-services] user@host# set allow-configuration "system services"
Exemplo 5
Criar uma classe de login que permita ao usuário permissões completas para todos os comandos e todas as hierarquias de configuração, exceto o nível de [edit system services]
hierarquia:
-
Definir as permissões de aula de login do usuário para
all
.[edit system login] user@host# set class all-except-system-services permissions all
-
Inclua a declaração a seguir
deny-configuration
.[edit system login class all-except-system-services] user@host# set deny-configuration "system services"
Exemplo: Use lógica aditiva com expressões regulares para especificar privilégios de acesso
Este exemplo mostra como usar a lógica aditiva ao usar expressões regulares para configurar privilégios de acesso de configuração.
Requisitos
Este exemplo usa um dispositivo que executa o Junos OS Release 16.1 ou posterior.
Visão geral
Você pode definir expressões regulares para controlar quem pode fazer alterações na configuração e o que elas podem mudar. Essas expressões regulares indicam hierarquias de configuração específicas que os usuários de uma classe de login podem acessar. Por exemplo, você pode definir expressões regulares que permitem aos usuários modificar um grupo de instâncias de roteamento e definir expressões regulares que impedem os usuários de fazer alterações em quaisquer outras instâncias de roteamento ou para outros níveis de configuração. Você define as expressões regulares configurando as declarações e deny-configuration-regexps
as allow-configuration-regexps
declarações para uma aula de login.
Por padrão, a deny-configuration-regexps
declaração prevalece sobre a allow-configuration-regexps
declaração. Se uma hierarquia de configuração aparecer em uma deny-configuration-regexps
declaração para uma aula de login, ela não será visível para os usuários dessa classe, independentemente do conteúdo da allow-configuration-regexps
declaração. Se uma hierarquia de configuração não aparecer em uma deny-configuration-regexps
declaração, ela será visível para os usuários dessa classe se ela aparecer em uma declaração allow-configuration-regexps
.
Você pode mudar esse comportamento padrão, permitindo uma lógica aditiva para as *-configuration-regexps
declarações. Quando você habilita a lógica aditiva, a allow-configuration-regexps
declaração tem precedência sobre a deny-configuration-regexps
declaração.
Assim, se a deny-configuration-regexps
declaração negar acesso a todas as hierarquias de configuração em um determinado nível (protocolos .*), mas a allow-configuration-regexps
declaração permitir o acesso a uma sub-hierarquia (protocolos bgp .*), então por padrão o dispositivo nega acesso às hierarquias para usuários nessa classe de login porque a deny-configuration-regexps
declaração prevalece. No entanto, se você habilitar a lógica aditiva, o dispositivo permite o acesso à sub-hierarquia especificada para usuários nessa classe de login, porque a allow-configuration-regexps
prioridade é necessária neste caso.
Configuração
Procedimento passo a passo
Para permitir que a lógica aditiva permita explicitamente aos usuários em uma determinada aula de login acesso a uma ou mais hierarquias de configuração individuais:
-
Inclua a declaração e negue explicitamente o
deny-configuration-regexps
acesso a hierarquias de configuração.[edit system login class class-name] user@host# set deny-configuration-regexps ["regular expression 1" "regular expression 2" "regular expression 3"]
Por exemplo:
[edit system login class class-name] user@host# set deny-configuration-regexps "protocols .*"
-
Inclua a
allow-configuration-regexps
declaração e defina expressões regulares para que as hierarquias específicas permitam.[edit system login class class-name] user@host# set allow-configuration-regexps ["regular expression 1" "regular expression 2" "regular expression 3"]
Por exemplo:
[edit system login class class-name] user@host# set allow-configuration-regexps ["protocols bgp .*" "protocols ospf .*"]
-
Habilite a lógica aditiva para as
allow-configuration-regexps
expressões regulares.deny-configuration-regexps
[edit system] user@host# set regex-additive-logic
-
Atribua a aula de login a um ou mais usuários.
[edit system login] user@host# set user username class class-name
-
Comprometa suas mudanças.
Os usuários designados para esta classe de login têm acesso às hierarquias de configuração incluídas na
allow-configuration-regexps
declaração, mas não têm acesso às outras hierarquias especificadas nadeny-configuration-regexps
declaração.
Ao configurar a regex-additive-logic
declaração, a mudança de comportamento se aplica a todos allow-configuration-regexps
e deny-configuration-regexps
às declarações presentes em todas as aulas de login. Se você habilitar a lógica aditiva, você deve avaliar as declarações existentes para qualquer impacto e atualizar as expressões regulares nessas declarações conforme apropriado.
Exemplos
Use expressões regulares com lógica aditiva
Propósito
Esta seção fornece exemplos de expressões regulares que usam lógica aditiva para dar a você ideias para criar configurações apropriadas para o seu sistema.
Permitir instâncias de roteamento específicas
A classe de login do exemplo a seguir inclui uma expressão regular que permite a configuração de instâncias de roteamento cujos nomes começam com CUST-VRF-
; por exemplo, CUST-VRF-1
, CUST-VRF-25
e CUST-VRF-100
assim por diante. O exemplo também inclui uma expressão regular que impede a configuração de quaisquer instâncias de roteamento.
[edit system login class class-name] user@host# set permissions [configure routing-control view view-configuration] user@host# set deny-configuration-regexps "routing-instances .*" user@host# set allow-configuration-regexps "routing-instances CUST-VRF-.* .*"
Por padrão, a deny-configuration-regexps
declaração tem precedência, e a configuração anterior impede que os usuários da classe de login configurem quaisquer instâncias de roteamento, independentemente do nome.
No entanto, se você configurar a declaração a seguir, a allow-configuration-regexps
declaração prevalecerá. Assim, os usuários podem configurar instâncias de roteamento cujos nomes começam, CUST-VRF-
mas os usuários não podem configurar nenhuma outra instância de roteamento.
[edit system] user@host# set regex-additive-logic
Permitir apenas a configuração de peer BGP
A classe de login do exemplo a seguir inclui expressões regulares que impedem a configuração no nível da hierarquia, mas permitem a [edit protocols]
configuração de pares BGP:
[edit system login class class-name] user@host# set permissions [configure routing-control view view-configuration] user@host# set deny-configuration-regexps "protocols .*" user@host# set allow-configuration-regexps "protocols bgp group *"
Por padrão, a configuração anterior impede que os usuários da classe de login façam alterações em quaisquer hierarquias abaixo [edit protocols]
.
No entanto, se você configurar a seguinte declaração, os usuários da classe de login podem fazer alterações em pares BGP, mas os usuários não podem configurar outros protocolos ou outras declarações BGP fora do nível de hierarquia permitido.
[edit system] user@host# set regex-additive-logic
Verificação
Para verificar se você definiu corretamente os privilégios de acesso:
-
Configure uma aula de login e comprometa as mudanças.
-
Atribua a classe de login a.username
-
Faça login como designado username com a nova aula de login.
-
Tente configurar os níveis de hierarquia que são permitidos.
-
Você deve ser capaz de configurar declarações em níveis de hierarquia que foram permitidos.
-
Os níveis de hierarquia negados não devem ser visíveis.
-
Quaisquer expressões permitidas ou negadas devem prevalecer sobre quaisquer permissões concedidas com a
permissions
declaração.
-
Exemplo: Configure permissões de usuário com privilégios de acesso para comandos de modo operacional
Este exemplo mostra como configurar aulas de login personalizadas e atribuir privilégios de acesso para comandos de modo operacional. Os usuários da classe de login podem executar apenas os comandos para os quais têm acesso. Isso impede que usuários não autorizados executem comandos sensíveis que possam causar danos à rede.
Requisitos
Este exemplo usa os seguintes componentes de hardware e software:
-
Um dispositivo da Juniper Networks
-
Um servidor TACACS+ (ou RADIUS)
Antes de começar, estabeleça uma conexão TCP entre o dispositivo e o servidor TACACS+. No caso do servidor RADIUS, estabeleça uma conexão UDP entre o dispositivo e o servidor RADIUS.
Visão geral e topologia
Figura 1 ilustra uma topologia simples, em que o Roteador R1 é um dispositivo da Juniper Networks e tem uma conexão TCP estabelecida com um servidor TACACS+.
Este exemplo configura o R1 com três aulas de login personalizadas: Classe 1, Classe2 e Classe3. Cada classe define privilégios de acesso para o usuário configurando a permissions
declaração e definindo expressões regulares estendidas usando as declarações e deny-commands
declaraçõesallow-commands
.
A finalidade de cada aula de login é a seguinte:
-
Class1— define privilégios de acesso apenas para o usuário com a
allow-commands
declaração. Essa aula de login oferece permissões e autorização para o usuário no nível do operador para reiniciar o dispositivo. -
Class2— define privilégios de acesso apenas para o usuário com a
deny-commands
declaração. Essa aula de login oferece permissões de usuário no nível do operador e nega acesso aset
comandos. -
Class3— define privilégios de acesso para o usuário com as declarações e
deny-commands
declaraçõesallow-commands
. Esta aula de login oferece permissões e autorização de usuário de nível superusuário para acessar interfaces e visualizar informações do dispositivo. Ele também nega acesso aoedit
econfigure
comandos.
O roteador R1 tem três usuários diferentes, User1, User2 e User3 designados para as aulas de login classe1, Classe 2 e Classe3, respectivamente.
Configuração
- Configuração rápida da CLI
- Configure parâmetros de autenticação para o roteador R1
- Configure privilégios de acesso com a Declaração de comandos de permitir (Classe1)
- Configure privilégios de acesso com a Declaração de comandos de negação (Classe2)
- Configure privilégios de acesso com as declarações de comandos de permissão e de comandos de negação (Classe3)
- Resultados
Configuração rápida da CLI
Para configurar rapidamente este exemplo, copie os seguintes comandos, cole-os em um arquivo de texto, remova qualquer quebra de linha, altere todos os detalhes necessários para combinar com a configuração da sua rede, copiar e colar os comandos na CLI no nível de [edit]
hierarquia e, em seguida, entrar commit
no modo de configuração.
R1
set system authentication-order tacplus set system authentication-order radius set system authentication-order password set system radius-server 10.209.1.66 secret "$ABC123" set system tacplus-server 10.209.1.66 secret "$ABC123" set system radius-options enhanced-accounting set system tacplus-options enhanced-accounting set system accounting events login set system accounting events change-log set system accounting events interactive-commands set system accounting traceoptions file auditlog set system accounting traceoptions flag all set system accounting destination tacplus server 10.209.1.66 secret "$ABC123" set system login class Class1 permissions clear set system login class Class1 permissions network set system login class Class1 permissions reset set system login class Class1 permissions trace set system login class Class1 permissions view set system login class Class1 allow-commands "request system reboot" set system login class Class2 permissions clear set system login class Class2 permissions network set system login class Class2 permissions reset set system login class Class2 permissions trace set system login class Class2 permissions view set system login class Class2 deny-commands set set system login class Class3 permissions all set system login class Class3 allow-commands configure set system login class Class3 deny-commands .* set system login user User1 uid 2001 set system login user User1 class Class1 set system login user User1 authentication encrypted-password "$ABC123" set system login user User2 uid 2002 set system login user User2 class Class2 set system login user User2 authentication encrypted-password "$ABC123" set system login user User3 uid 2003 set system login user User3 class Class3 set system login user User3 authentication encrypted-password "$ABC123" set system syslog file messages any any
Configure parâmetros de autenticação para o roteador R1
Procedimento passo a passo
Para configurar a autenticação do Roteador R1:
-
Configure a ordem em que o R1 tenta autenticar o usuário. Neste exemplo, a autenticação do servidor TACACS+ é primeiro, seguida pela autenticação do servidor RADIUS e depois pela senha local.
[edit system] user@R1# set authentication-order tacplus user@R1# set authentication-order radius user@R1# set authentication-order password
-
Configure o servidor TACACS+.
[edit system] user@R1# set tacplus-server 10.209.1.66 secret "$ABC123" user@R1# set tacplus-options enhanced-accounting user@R1# set accounting destination tacplus server 10.209.1.66 secret "$ABC123"
-
Configure o servidor RADIUS.
[edit system] user@R1# set radius-server 10.209.1.66 secret "$ABC123" user@R1# set radius-options enhanced-accounting
-
Configure parâmetros de contabilidade R1.
[edit system] user@R1# set accounting events login user@R1# set accounting events change-log user@R1# set accounting events interactive-commands user@R1# set accounting traceoptions file auditlog user@R1# set accounting traceoptions flag all
Configure privilégios de acesso com a Declaração de comandos de permitir (Classe1)
Procedimento passo a passo
Especificar expressões regulares usando a allow-commands
declaração:
-
Configure a classe de login classe 1 e atribua permissões de usuário no nível do operador.
[edit system login] user@R1# set class Class1 permissions [clear network reset trace view]
-
Configure a
allow-commands
expressão regular para permitir que os usuários da classe reinicializem o dispositivo.[edit system login] user@R1# set class Class1 allow-commands "request system reboot"
-
Configure a conta do usuário para a aula de login classe 1.
[edit system login] user@R1# set user User1 uid 2001 user@R1# set user User1 class Class1 user@R1# set user User1 authentication encrypted-password "$ABC123"
Configure privilégios de acesso com a Declaração de comandos de negação (Classe2)
Procedimento passo a passo
Especificar expressões regulares usando a deny-commands
declaração:
-
Configure a classe de login classe 2 e atribua permissões de usuário no nível do operador.
[edit system login] user@R1# set class Class1 permissions [clear network reset trace view]
-
Configure a
deny-commands
expressão regular para impedir que os usuários da classe executemset
comandos.[edit system login] user@R1# set class Class1 deny-commands "set"
-
Configure a conta do usuário para a aula de login da Classe 2.
[edit system login] user@R1# set user User2 uid 2002 user@R1# set user User2 class Class2 user@R1# set user User2 authentication encrypted-password "$ABC123"
Configure privilégios de acesso com as declarações de comandos de permissão e de comandos de negação (Classe3)
Procedimento passo a passo
Especificar expressões regulares usando as declarações e deny-commands
as allow-commands
declarações:
-
Configure a classe de login class3 e atribua permissões de nível de superusuário.
[edit system login] user@R1# set class Class3 permissions all
-
Configure a
deny-commands
expressão regular para impedir que os usuários da classe executem quaisquer comandos.[edit system login] user@R1# set class Class3 deny-commands ".*"
-
Configure a
allow-commands
expressão regular para permitir que os usuários insiram no modo de configuração.[edit system login] user@R1# set class Class3 allow-commands configure
-
Configure a conta do usuário para a aula de login classe3.
[edit system login] user@R1# set user User3 uid 2003 user@R1# set user User3 class Class3 user@R1# set user User3 authentication encrypted-password "$ABC123"
Resultados
No modo de configuração, confirme sua configuração inserindo o show system
comando. Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.
user@R1# show system authentication-order [ tacplus radius password ]; radius-server { 10.209.1.66 secret "$ABC123"; } tacplus-server { 10.209.1.66 secret "$ABC123"; } radius-options { enhanced-accounting; } tacplus-options { enhanced-accounting; } accounting { events [ login change-log interactive-commands ]; traceoptions { file auditlog; flag all; } destination { tacplus { server { 10.209.1.66 secret "$ABC123"; } } } } login { class Class1 { permissions [ clear network reset trace view ]; allow-commands "request system reboot"; } class Class2 { permissions [ clear network reset trace view ]; deny-commands set; } class Class3 { permissions all; allow-commands configure; deny-commands .*; } user User1 { uid 2001; class Class1; authentication { encrypted-password "$ABC123"; } } user User2 { uid 2002; class Class2; authentication { encrypted-password "$ABC123"; } } user User3 { uid 2003; class Class3; authentication { encrypted-password “$ABC123”; } } } syslog { file messages { any any; } }
Verificação
Faça login como nome de usuário atribuído à nova classe de login e confirme que a configuração está funcionando corretamente.
- Verificando a configuração da classe1
- Verificando a configuração da classe2
- Verificando a configuração da classe3
Verificando a configuração da classe1
Propósito
Verifique se as permissões e comandos permitidos na classe de login classe 1 estão funcionando.
Ação
No modo operacional, execute o show system users
comando.
User1@R1> show system users 12:39PM up 6 days, 23 mins, 6 users, load averages: 0.00, 0.01, 0.00 USER TTY FROM LOGIN@ IDLE WHAT User1 p0 abc.example.net 12:34AM 12:04 cli User2 p1 abc.example.net 12:36AM 12:02 -cli (cli) User3 p2 abc.example.net 10:41AM 11 -cli (cli)
No modo operacional, execute o request system reboot
comando.
User1@R1> request system ? Possible completions: reboot Reboot the system
Significado
A classe de login Class1 à qual o Usuário1 é atribuído tem permissões de usuário no nível do operador e permite que os usuários da classe executem o request system reboot
comando.
A classe de login do operador predefinido tem as seguintes bandeiras de permissão especificadas:
clear— Pode usar
clear
comandos para limpar (excluir) informações que o dispositivo aprende com a rede e armazena em vários bancos de dados de rede.network— Pode acessar a rede usando os
ping
comandosssh
telnet
etraceroute
os comandos.reset— Pode reiniciar processos de software usando o
restart
comando.trace— Pode visualizar configurações de arquivo de rastreamento e configurar propriedades de arquivo de rastreamento.
view— Pode usar vários comandos para exibir valores e estatísticas atuais em todo o sistema, tabela de roteamento e protocolo específicos. Não é possível visualizar a configuração secreta.
Para a classe de login class1, além das permissões de usuário mencionadas acima, o User1 pode executar o request system reboot
comando. A primeira saída exibe as permissões de visualização como operador, e a segunda saída mostra que o único request system
comando que o User1 pode executar como operador é o request system reboot
comando.
Verificando a configuração da classe2
Propósito
Verifique se as permissões e comandos permitidos para a classe de login Classe 2 estão funcionando.
Ação
No modo operacional, execute o ping
comando.
User2@R1> ping 10.209.1.66 ping 10.209.1.66 PING 10.209.1.66 (10.209.1.66): 56 data bytes 64 bytes from 10.209.1.66: icmp_seq=0 ttl=52 time=212.521 ms 64 bytes from 10.209.1.66: icmp_seq=1 ttl=52 time=212.844 ms 64 bytes from 10.209.1.66: icmp_seq=2 ttl=52 time=211.304 ms 64 bytes from 10.209.1.66: icmp_seq=3 ttl=52 time=210.963 ms ^C --- 10.209.1.66 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/stddev = 210.963/211.908/212.844/0.792 ms
A partir do prompt CLI, verifique os comandos disponíveis.
User2@R1> ? Possible completions: clear Clear information in the system file Perform file operations help Provide help information load Load information from file monitor Show real-time debugging information mtrace Trace multicast path from source to receiver op Invoke an operation script ping Ping remote target quit Exit the management session request Make system-level requests restart Restart software process save Save information to file show Show system information ssh Start secure shell on another host start Start shell telnet Telnet to another host test Perform diagnostic debugging traceroute Trace route to remote host
A partir do prompt CLI, execute qualquer comando de conjunto.
User2@R1> set ^ unknown command.
Significado
A classe de login Class2 à qual o Usuário2 é atribuído tem permissões de usuário no nível do operador e nega acesso a todos os set
comandos.
As bandeiras de permissão especificadas para a classe de login predefinida do operador são as mesmas especificadas para a Classe 1.
Verificando a configuração da classe3
Propósito
Verifique se as permissões e comandos permitidos para a classe de login classe3 estão funcionando.
Ação
No modo operacional, verifique os comandos disponíveis.
User3@R1> ? Possible completions: configure Manipulate software configuration information
Insira o modo de configuração.
User3@R1> configure Entering configuration mode [edit] User3@R1#
Significado
A classe de login Class3 à qual o Usuário3 é atribuído tem permissões de superusuário (todos), mas essa classe só permite que os usuários executem o configure
comando. A classe nega acesso a todos os outros comandos de modo operacional. Como as expressões regulares especificadas nas allow/deny-commands
declarações têm precedência sobre as permissões do usuário, o User3 no R1 tem acesso apenas ao modo de configuração e o acesso negado a todos os outros comandos de modo operacional.
Exemplo: Configure permissões de usuário com privilégios de acesso para declarações de configuração e hierarquias
Este exemplo mostra como configurar aulas de login personalizadas e atribuir privilégios de acesso a hierarquias de configuração específicas. Os usuários da classe de login podem visualizar e modificar apenas aquelas declarações de configuração e hierarquias às quais têm acesso. Isso impede que usuários não autorizados modifiquem configurações de dispositivos que possam causar danos à rede.
Requisitos
Este exemplo usa os seguintes componentes de hardware e software:
-
Um dispositivo da Juniper Networks
-
Um servidor TACACS+ (ou RADIUS)
Antes de começar, estabeleça uma conexão TCP entre o dispositivo e o servidor TACACS+. No caso do servidor RADIUS, estabeleça uma conexão UDP entre o dispositivo e o servidor RADIUS.
Visão geral e topologia
Figura 2 ilustra uma topologia simples, em que o Roteador R1 é um dispositivo da Juniper Networks e tem uma conexão TCP estabelecida com um servidor TACACS+.
Este exemplo configura o R1 com duas aulas de login personalizadas: Classe 1 e Classe2. Cada classe define privilégios de acesso para o usuário configurando a permissions
declaração e definindo expressões regulares estendidas usando as allow-configuration
, deny-configuration
e allow-configuration-regexps
deny-configuration-regexps
declarações.
A finalidade de cada aula de login é a seguinte:
-
Class1— define privilégios de acesso para o usuário com as declarações e
deny-configuration
declaraçõesallow-configuration
. Essa aula de login oferece acesso apenas para configurar a[edit interfaces]
hierarquia e nega todo o outro acesso no dispositivo. Para isso, as permissões do usuário incluemconfigure
fornecer acesso à configuração. Além disso, aallow-configuration
declaração permite o acesso à configuração das interfaces, e adeny-configuration
declaração nega acesso a todas as outras hierarquias de configuração. Como a declaração de permissão prevalece sobre a declaração de negação, os usuários atribuídos à classe de login classe 1 podem acessar apenas o nível de[edit interfaces]
hierarquia. -
Class2— define privilégios de acesso para o usuário com as declarações e
deny-configuration-regexps
declaraçõesallow-configuration-regexps
. Essa aula de login oferece permissões de usuário de nível superusuário e permite explicitamente a configuração sob vários níveis de hierarquia para interfaces. Também nega acesso aos[edit system]
níveis de[edit protocols]
hierarquia.
O roteador R1 tem dois usuários, User1 e User2, designados para as aulas de login classe1 e Classe2, respectivamente.
Configuração
- Configuração rápida da CLI
- Configure parâmetros de autenticação para o roteador R1
- Configure privilégios de acesso com as Declarações de configuração de permissão e de negação (Classe 1)
- Configure privilégios de acesso com as declarações de permissão de configuração-regexps e deny-configuration-regexps (Classe2)
- Resultados
Configuração rápida da CLI
Para configurar rapidamente este exemplo, copie os seguintes comandos, cole-os em um arquivo de texto, remova qualquer quebra de linha, altere todos os detalhes necessários para combinar com a configuração da sua rede, copiar e colar os comandos na CLI no nível de [edit]
hierarquia e, em seguida, entrar commit
no modo de configuração.
R1
set system authentication-order tacplus set system authentication-order radius set system authentication-order password set system radius-server 10.209.1.66 secret "$ABC123" set system tacplus-server 10.209.1.66 secret "$ABC123" set system radius-options enhanced-accounting set system tacplus-options enhanced-accounting set system accounting events login set system accounting events change-log set system accounting events interactive-commands set system accounting traceoptions file auditlog set system accounting traceoptions flag all set system accounting destination tacplus server 10.209.1.66 secret "$ABC123" set system login class Class1 permissions configure set system login class Class1 allow-configuration "interfaces .* unit .*" set system login class Class1 deny-configuration .* set system login class Class2 permissions all set system login class Class2 allow-configuration-regexps [ "interfaces .* description .*" "interfaces .* unit .* description .*" "interfaces .* unit .* family inet address .*" "interfaces.* disable" ] set system login class Class2 deny-configuration-regexps [ "system" "protocols" ] set system login user User1 uid 2004 set system login user User1 class Class1 set system login user User1 authentication encrypted-password "$ABC123" set system login user User2 uid 2006 set system login user User2 class Class2 set system login user User2 authentication encrypted-password "$ABC123" set system syslog file messages any any
Configure parâmetros de autenticação para o roteador R1
Procedimento passo a passo
Para configurar a autenticação do Roteador R1:
-
Configure a ordem em que o R1 tenta autenticar o usuário. Neste exemplo, a autenticação do servidor TACACS+ é primeiro, seguida pela autenticação do servidor RADIUS e depois pela senha local.
[edit system] user@R1# set authentication-order tacplus user@R1# set authentication-order radius user@R1# set authentication-order password
-
Configure o servidor TACACS+.
[edit system] user@R1# set tacplus-server 10.209.1.66 secret "$ABC123" user@R1# set tacplus-options enhanced-accounting user@R1# set accounting destination tacplus server 10.209.1.66 secret "$ABC123"
-
Configure o servidor RADIUS.
[edit system] user@R1# set radius-server 10.209.1.66 secret "$ABC123" user@R1# set radius-options enhanced-accounting
-
Configure os parâmetros de contabilidade R1.
[edit system] user@R1# set accounting events login user@R1# set accounting events change-log user@R1# set accounting events interactive-commands user@R1# set accounting traceoptions file auditlog user@R1# set accounting traceoptions flag all
Configure privilégios de acesso com as Declarações de configuração de permissão e de negação (Classe 1)
Procedimento passo a passo
Para especificar expressões regulares usando as declarações e deny-configuration
declaraçõesallow-configuration
:
-
Configure a aula de login classe 1 com
configure
permissões.[edit system login] user@R1# set class Class1 permissions configure
-
Configure a
allow-configuration
expressão regular para permitir que os usuários da classe visualizem e modifiquem parte do[edit interfaces]
nível de hierarquia.[edit system login] user@R1# set class Class1 allow-configuration "interfaces .* unit .*"
-
Configure a
deny-configuration
expressão regular para negar acesso a todas as hierarquias de configuração.[edit system login] user@R1# set class Class1 deny-configuration .*
-
Configure a conta do usuário para a aula de login classe 1.
[edit system login] user@R1# set user User1 uid 2004 user@R1# set user User1 class Class1 user@R1# set user User1 authentication encrypted-password "$ABC123"
Configure privilégios de acesso com as declarações de permissão de configuração-regexps e deny-configuration-regexps (Classe2)
Procedimento passo a passo
Para especificar expressões regulares usando as declarações e deny-configuration-regexps
declaraçõesallow-configuration-regexps
:
-
Configure a classe de login class2 e atribua permissões de superusuário (todos).
[edit system login] user@R1# set class Class2 permissions all
-
Configure a
allow-configuration-regexps
expressão regular para permitir que os usuários da classe acessem várias hierarquias sob o nível hierárquico[edit interfaces]
.[edit system login] user@R1# set class Class2 allow-configuration-regexps [ "interfaces .* description .*" "interfaces .* unit .* description .*" "interfaces .* unit .* family inet address .*" "interfaces.* disable" ]
-
Configure a
deny-configuration-regexps
expressão regular para impedir que os usuários da classe visualizam ou modifiquem a configuração nos[edit system]
níveis de hierarquia e[edit protocols]
hierarquia.[edit system login] user@R1# set class Class2 deny-configuration-regexps [ "system" "protocols" ]
-
Configure a conta do usuário para a aula de login da Classe 2.
[edit system login] user@R1# set user User2 uid 2006 user@R1# set user User2 class Class2 user@R1# set user User2 authentication encrypted-password "$ABC123"
Resultados
No modo de configuração, confirme sua configuração inserindo o show system
comando. Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.
user@R1# show system authentication-order [ tacplus radius password ]; radius-server { 10.209.1.66 secret "$ABC123"; } tacplus-server { 10.209.1.66 secret "$ABC123"; } radius-options { enhanced-accounting; } tacplus-options { enhanced-accounting; } accounting { events [ login change-log interactive-commands ]; traceoptions { file auditlog; flag all; } destination { tacplus { server { 10.209.1.66 secret "$ABC123"; } } } } login { class Class1 { permissions configure; allow-configuration "interfaces .* unit .*"; deny-configuration .*; } class Class2 { permissions all; allow-configuration-regexps [ "interfaces .* description .*" "interfaces .* unit .* description .*" "interfaces .* unit .* family inet address .*" "interfaces.* disable" ]; deny-configuration-regexps [ "system" "protocols" ]; } user User1 { uid 2001; class Class1; authentication { encrypted-password "$ABC123"; } } user User2 { uid 2002; class Class2; authentication { encrypted-password "$ABC123"; } } } syslog { file messages { any any; } }
Verificação
Faça login como nome de usuário atribuído à nova classe de login e confirme que a configuração está funcionando corretamente.
Verifique a configuração da classe1
Propósito
Verifique se as permissões permitidas na aula de login da Classe 1 estão funcionando.
Ação
No modo operacional, verifique os comandos disponíveis.
User1@R1> ? Possible completions: clear Clear information in the system configure Manipulate software configuration information file Perform file operations help Provide help information load Load information from file op Invoke an operation script quit Exit the management session request Make system-level requests save Save information to file set Set CLI properties, date/time, craft interface message start Start shell test Perform diagnostic debugging
No modo de configuração, verifique as permissões de configuração disponíveis.
User1@R1# edit ? Possible completions: > interfaces Interface configuration
Significado
O User1 tem configure
permissões de usuário, como visto na primeira saída. Além disso, no modo de configuração, o User1 tem acesso ao nível de interfaces
hierarquia, mas apenas a esse nível de hierarquia, como visto na segunda saída.
Verifique a configuração da classe2
Propósito
Verifique se a configuração da Classe 2 está funcionando como esperado.
Ação
No modo de configuração, acesse a interfaces
configuração.
[edit interfaces] User2@R1# set ? Possible completions: <interface-name> Interface name + apply-groups Groups from which to inherit configuration data + apply-groups-except Don't inherit configuration data from these groups ge-0/0/3 Interface name > interface-range Interface ranges configuration > interface-set Logical interface set configuration > traceoptions Interface trace options
No modo de configuração, acesse as system
hierarquias e protocols
configuração.
User2@R1# edit system ^ Syntax error, expecting <statement> or <identifier>. User2@R1# edit protocols ^ Syntax error, expecting <statement> or <identifier>.
Significado
O User2 tem permissões para configurar interfaces no R1, mas o usuário não tem permissão para visualizar ou modificar os [edit system]
níveis de hierarquia.[edit protocols]
Tabela de histórico de alterações
A compatibillidadde com o recurso dependerá da platadorma e versão utilizada. Use o Feature Explorer para saber se o recurso é compatível com sua plataforma.
deny-commands-regexps
o allow-commands-regexps
suporte para a autorização do TACACS+.