Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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 declaração.permissions

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 hierarquia.[edit system login class] 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 permissões.all

Nota:

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 declaração especifica uma ou mais das bandeiras de permissão listadas em .permissionsTabela 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 para exibir informações e entrar no modo de configuração.viewconfigure 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 bandeira de permissão concede acesso somente de leitura ao nível de hierarquia.interface[edit interfaces] A forma da bandeira concede acesso read-write a essa configuração.-control Por exemplo, a bandeira concede acesso de leitura e gravação ao nível de hierarquia.interface-control[edit interfaces]

lista as bandeiras de permissão de classe de login que você pode configurar, incluindo a declaração no nível de hierarquia.Tabela 1permissions[edit system login class class-name]

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.

Tabela 1: Bandeiras de permissão de classe de login

Bandeira de permissão

Descrição

access

Pode visualizar a configuração de acesso no modo operacional ou modo de configuração.

access-control

Pode visualizar e configurar informações de acesso no nível de hierarquia.[edit access]

admin

Pode visualizar as informações da conta do usuário no modo operacional ou modo de configuração.

admin-control

Pode visualizar as informações da conta do usuário e configurá-la no nível de hierarquia.[edit system]

all

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.

clear

Pode limpar (deletar) informações que o dispositivo aprende com a rede e armazena em vários bancos de dados de rede (usando os comandos).clear

configure

Pode entrar no modo de configuração (usando o comando) e confirmar configurações (usando o comando).configurecommit

control

Pode realizar todas as operações de nível de controle — todas as operações configuradas com as bandeiras de permissão.-control

field

Pode visualizar comandos de depuração de campo. Reservado para suporte de depuração.

firewall

Pode visualizar a configuração do filtro de firewall no modo operacional ou modo de configuração.

firewall-control

Pode visualizar e configurar informações de filtro de firewall no nível de hierarquia.[edit firewall]

floppy

Pode ler e escrever para a mídia removível.

flow-tap

Pode visualizar a configuração da torneira de fluxo no modo operacional ou modo de configuração.

flow-tap-control

Pode visualizar e configurar informações de fluxo-tap no nível de hierarquia.[edit services flow-tap]

flow-tap-operation

Pode fazer solicitações de flow-tap para o roteador ou switch. Por exemplo, um cliente do Dynamic Tasking Control Protocol (DTCP) deve ter permissão para se autenticar como um usuário administrativo.flow-tap-operationJunos OS

Nota:

A opção não está incluída na bandeira de permissões.flow-tap-operationall-control

idp-profiler-operation

Pode visualizar dados do profiler.

interface

É possível visualizar a configuração da interface no modo operacional e no modo de configuração.

interface-control

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:

  • [edit chassis]

  • [edit class-of-service]

  • [edit groups]

  • [edit forwarding-options]

  • [edit interfaces]

maintenance

Pode realizar a manutenção do sistema, incluindo iniciar uma concha local no dispositivo e se tornar o superusuário na concha (usando o comando) e parar e reiniciar o dispositivo (usando os comandos).su rootrequest system

network

Pode acessar a rede usando os comandos e os comandos.pingsshtelnettraceroute

pgcp-session-mirroring

Pode visualizar a configuração de espelhamento de sessão.pgcp

pgcp-session-mirroring-control

Pode modificar a configuração de espelhamento de sessão.pgcp

reset

Pode reiniciar processos de software usando o comando.restart

rollback

Pode usar o comando para retornar a uma configuração previamente comprometida.rollback

routing

É 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.

routing-control

Pode visualizar e configurar o roteamento geral no nível de hierarquia, protocolos de roteamento no nível de hierarquia e roteamento de informações de políticas no nível hierárquicos .[edit routing-options][edit protocols][edit policy-options]

secret

Pode visualizar senhas e outras chaves de autenticação na configuração.

secret-control

Pode visualizar e modificar senhas e outras chaves de autenticação na configuração.

security

É possível visualizar as informações de configuração de segurança no modo operacional e no modo de configuração.

security-control

Pode visualizar e configurar informações de segurança no nível de hierarquia.[edit security]

shell

Pode iniciar uma concha local no roteador ou switch usando o comando.start shell

snmp

É possível visualizar informações de configuração do Simple Network Management Protocol (SNMP) no modo operacional ou modo de configuração.

snmp-control

Pode visualizar e modificar as informações de configuração de SNMP no nível de hierarquia.[edit snmp]

Pode visualizar as informações de configuração de armazenamento do Fiber Channel no nível de hierarquia.[edit fc-fabrics]

Pode modificar as informações de configuração de armazenamento do Fiber Channel no nível hierárquico .[edit fc-fabrics]

system

Pode visualizar informações de nível de sistema no modo operacional ou modo de configuração.

system-control

Pode visualizar e modificar informações de configuração no nível do sistema no nível de hierarquia.[edit system]

trace

Pode visualizar configurações de arquivo de rastreamento e configurar propriedades de arquivo de rastreamento.

trace-control

Pode modificar configurações de arquivo de rastreamento e configurar propriedades de arquivo de rastreamento.

Pode visualizar a configuração de borda unificada na hierarquia.[edit unified-edge]

Pode modificar a configuração unificada relacionada à borda na hierarquia.[edit unified-edge]

view

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.

view-configuration

Pode visualizar toda a configuração, sem segredos, scripts de sistema e opções de eventos.

Nota:

Somente usuários com permissão podem visualizar scripts de confirmação, script de operações ou configuração de script de eventos.maintenance

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 declaração.permissions

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 hierarquia, você concede ao usuário acesso aos níveis e declarações da hierarquia de configuração e comandos correspondentes.[edit system login class] Para conceder acesso a todos os comandos e declarações de configuração, use a bandeira de permissões.all

Você pode permitir ou negar explicitamente o uso de comandos e declarações configurando as, e as declarações para uma aula de login.allow-commandsdeny-commandsallow-configurationdeny-configuration 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 declaração.permissions 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 para exibir informações e entrar no modo de configuração.viewconfigure 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 permissões.all 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.

Nota:

Os bits de permissão da classe de login têm precedência sobre expressões regulares estendidas quando um usuário emite um comando com a bandeira de permissão habilitada.allrollbackrollback

Para configurar os níveis de privilégio de acesso do usuário para uma aula de login, inclua a declaração no nível de hierarquia, seguida pelas bandeiras de permissão.permissions[edit system login class class-name] Configure várias permissões como uma lista separada por espaço em parênteses quadrados:

Dica:

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 declaração:permissions

Configuração

Este exemplo configura a classe de login.snmp-admin 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:

  1. Configure a aula de login com as bandeiras de permissão.snmp-adminconfiguresnmpsnmp-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.

  2. Crie as contas de usuário que são atribuídas à aula de login.snmp-admin

Resultados

No modo de configuração, confirme sua configuração inserindo o comando.show system login Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.

Após a configuração do dispositivo, entre no modo de configuração.commit

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.snmp-admin

Ação

No modo de configuração, configure as declarações de SNMP no nível de hierarquia.[edit snmp]

Significado

O usuário da classe de login é capaz de configurar parâmetros SNMP.snmp-admin 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 classe de login não pode modificar declarações de configuração não-SNMP.snmp-admin

Ação

No modo de configuração, tente configurar qualquer declaração não SNMP, como uma declaração na hierarquia.interfaces

Significado

O usuário da classe de login não é capaz de configurar a hierarquia porque as bandeiras de permissão especificadas para esta classe não permitem.snmp-admin[edit interfaces] 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

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 declaração no nível hierárquico .permissions[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:

  • e — Permitir ou negar acesso a comandos de modo operacional e de configuração.allow-commandsdeny-commands

  • e — Permitir ou negar acesso a hierarquias de configuração específicas.allow-configurationdeny-configuration

    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.

  • e — Permitir ou negar acesso a comandos específicos usando strings de expressões regulares.allow-commands-regexpsdeny-commands-regexps

  • e — Permitir ou negar acesso a hierarquias de configuração específicas usando strings de expressões regulares.allow-configuration-regexpsdeny-configuration-regexps

Nota:

Se suas configurações existentes usarem as declarações ou declarações, usar as mesmas opções de configuração com as declarações ou declarações pode não produzir os mesmos resultados.allow/deny-commandsallow/deny-configurationallow/deny-commands-regexpsallow/deny-configuration-regexps 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 declarações adiciona às permissões que a declaração já define.allow/deny-*permissions Da mesma forma, negar explicitamente as hierarquias de comandos e declarações de configuração usando as declarações remove permissões que a declaração já define.allow/deny-*permissions

Por exemplo, na configuração a seguir, a permissão permite que os usuários da classe de login entrem no modo de configuração.configure Além disso, a expressão permite que os usuários modifiquem a configuração no nível de hierarquia e a comprometam.allow-configuration[edit 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 bandeira de permissões permite, exceto que o usuário não pode visualizar ou modificar a configuração no nível de hierarquia:all[edit system services]

Entendendo a sintaxe da declaração de permissão e negação

Você pode configurar uma declaração apenas uma vez em cada aula de login.allow/deny-* 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 declarações são mutuamente exclusivas com as declarações, e as declarações são mutuamente exclusivas com as declarações.allow/deny-commandsallow/deny-commands-regexpsallow/deny-configurationallow/deny-configuration-regexps Por exemplo, você não pode configurar ambos e na mesma classe de login.allow-configurationallow-configuration-regexps

Para definir privilégios de acesso aos comandos, especifique expressões regulares estendidas usando as declarações e as declarações.allow-commandsdeny-commands 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.

Por exemplo:

Você deve usar âncoras ao especificar expressões regulares complexas com a declaração.allow-commands Por exemplo:

Para definir privilégios de acesso a partes da hierarquia de configuração, especifique expressões regulares estendidas nas declarações e declarações.allow-configurationdeny-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.

Por exemplo:

Ao especificar expressões regulares estendidas usando as ou declarações, coloque cada expressão dentro das cotações (" "), e separe as expressões usando um espaço.allow/deny-commands-regexpsallow/deny-configuration-regexps Inclua várias expressões em parênteses quadrados [ ]. Por exemplo:

Modificadores como , e não são suportados dentro da string de expressão regular a ser combinado.setlogcount Se você usa um modificador, então nada é compatível.

Configuração correta:

Configuração incorreta:

Entendendo a precedência e a correspondência da declaração de permissão e negação

Por padrão, as expressões e regulares prevalecem e expressões.allow-commandsallow-configurationdeny-commandsdeny-configuration Assim, se você configurar o mesmo comando para as declarações e declarações, então a operação de permissão prevalecerá sobre a operação de negação.allow-commandsdeny-commands Da mesma forma, se você configurar a mesma declaração para as declarações e declarações, a operação de permissão prevalecerá sobre a operação de negação.allow-configurationdeny-configuration

Por exemplo, a configuração a seguir permite que um usuário na classe de login instale software usando o comando, embora a declaração inclua o mesmo comando:testrequest system software adddeny-commands

Da mesma forma, a configuração a seguir permite que um usuário no teste de classe de login visualize e modifique a hierarquia de configuração, embora a declaração inclua a mesma hierarquia:test[edit system services]deny-configuration

Se as declarações e as declarações tiverem duas variantes diferentes de um comando, a correspondência mais longa sempre será executada.allow-commandsdeny-commands A configuração a seguir permite que um usuário na classe de login execute o comando, mas não o comando.testcommit synchronizecommit Isso porque é a combinação mais longa entre e , e é especificada para .commit synchronizecommitcommit synchronizeallow-commands

A configuração a seguir permite que um usuário na classe de login execute o comando, mas não o comando.testcommitcommit synchronize Isso porque é a combinação mais longa entre e , e é especificada para .commit synchronizecommitcommit synchronizedeny-commands

Em contraste com as outras declarações, o comportamento padrão para as declarações é que as expressões regulares prevalecem e expressões.*-regexpsdeny-commands-regexpsdeny-configuration-regexpsallow-commands-regexpsallow-configuration-regexps Você pode configurar a declaração no nível de hierarquia para forçar as expressões regulares a prevalecerem sobre as declarações.regex-additive-logic[edit system]allow-configuration-regexpsdeny-configuration-regexps 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 , e as declarações têm precedência sobre as permissões de aula de login.allow/deny-commandsallow/deny-configurationallow/deny-commands-regexpsallow/deny-configuration-regexps Quando você configura essas declarações, as seguintes regras se aplicam:

  • Expressões e declarações regulares também podem incluir comandos e comandos.allow-commandsdeny-commandscommitloadrollbacksavestatusupdate

  • Os bits de permissão da classe de login têm precedência sobre expressões regulares estendidas quando um usuário emite o comando com a bandeira de permissão habilitada.allrollbackrollback

  • Os usuários não podem emitir o comando ao especificar uma expressão regular estendida.load override Os usuários só podem emitir os comandos e configuração.mergereplacepatch

  • 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 a declaração com uma expressão como , porque isso avalia .allow-configuration(interfaces (description (|.*))allow-configuration .*

Entendendo as diferenças para as declarações *-regexps

Esta seção descreve as diferenças entre as declarações e as declarações.allow/deny-configurationallow/deny-configuration-regexps

As 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 declarações se comparam com a corda completa.allow/deny-configuration-regexpsallow/deny-configuration Para declarações, você configura um conjunto de strings em que cada string é uma expressão regular, com espaços entre os termos da string.allow/deny-configuration-regexps 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 é a única expressão combinada contra o primeiro símbolo da declaração.options

    A configuração anterior corresponde às seguintes declarações:

    • definir opções de políticas condição dinâmica-dbcondition

    • definir opções de roteamento rota estática next-hop static-routenext-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 é a única expressão combinada contra o terceiro símbolo da declaração.ssh

    No exemplo anterior, os três símbolos incluem , e , respectivamente..*.*.*ssh

    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 descrição de interfacesinterface-name

É mais fácil usar a declaração para restringir o acesso à configuração do que usar a declaração. Ilustra o uso das declarações e declarações em diferentes configurações para alcançar o mesmo resultado de restringir o acesso a uma configuração específica.deny-configurationdeny-configuration-regexpsTabela 2deny-configurationdeny-configuration-regexps

Tabela 2: Restringindo o acesso à configuração usando declarações de negação de configuração e negação de configuração

Configuração negada

Usando: deny-configuration

Usando: deny-configuration-regexps

Resultado

xnm-ssl

[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:

  • serviços de sistema xnm-ssl

ssh

[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:

  • nome do host-ssh do sistema

  • ssh de serviços de sistema

  • serviços de sistema de saída

  • ssh-known-host de segurança

Embora as declarações também sejam úteis quando você deseja uma configuração simples, as declarações fornecem melhor desempenho e superam a ambiguidade que existe ao combinar expressões nas declarações.allow/deny-configurationallow/deny-configuration-regexpsallow/deny-configuration

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 hierarquia e declarações.allow/deny-commandsallow/deny-configurationallow/deny-commands-regexpsallow/deny-configuration-regexps[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.

Nota:

A partir do Junos OS Release 18.1, as declarações e o suporte para a autorização do TACACS+.allow-commands-regexpsdeny-commands-regexps

Ao especificar várias expressões regulares em uma configuração local usando as , , ou declarações, você configura expressões regulares dentro dos parênteses e as separa usando o símbolo do tubo.allow-commandsdeny-commandsallow-configurationdeny-configuration Você coloca a expressão completa em duas cotações. Por exemplo, você pode especificar vários parâmetros com a seguinte sintaxe:allow-commands

O servidor de autorização RADIUS usa os seguintes atributos e sintaxe:

O servidor de autorização TACACS+ usa os seguintes atributos e sintaxe:

Ao especificar várias expressões regulares em uma configuração local usando as, , ou declarações, você configura expressões regulares dentro de duas cotações e as separa usando o operador de espaço.allow-commands-regexpsdeny-commands-regexpsallow-configuration-regexpsdeny-configuration-regexps 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:

O servidor de autorização RADIUS usa os seguintes atributos e sintaxe:

O servidor de autorização TACACS+ usa os seguintes atributos e sintaxe:

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 é:

Da mesma forma, a sintaxe simplificada do servidor TACACS+ é:

Tabela 3 diferencia a configuração de autorização local e a configuração de autorização de servidor TACACS+ usando expressões regulares.

Tabela 3: Experimente a configuração de autorização local e remota 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"
    }
}
Nota:
  • Você precisa permitir explicitamente o acesso ao modo NETCONF, local ou remotamente, emitindo os seguintes três comandos: e...xml-modenetconfneed-trailer

  • Ao usar a declaração, você deve permitir todas as configurações desejadas usando a declaração.deny-configuration = ".*"allow-configuration No entanto, essa configuração pode afetar o limite de buffer de expressões regulares permitido para a declaração.allow-configuration Se esse limite for excedido, a configuração permitida pode não funcionar.

Especifique expressões regulares

Aviso:

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. lista as expressões regulares para configurar privilégios de acesso para as hierarquias e declarações.Tabela 4[edit interfaces][edit vlans]

Tabela 4: Especifique expressões regulares

Declaração

Expressão regular

Notas de configuração

[edit interfaces]

O comando para interfaces é executado da seguinte forma:set

[edit]
user@host# set interfaces interface-name unit interface-unit-number

A declaração está incompleta por si só e requer a opção de executar a declaração.set interfacesunit

Como resultado, a expressão regular necessária para negar a configuração deve especificar toda a string executável com o operador no lugar de variáveis de declaração:set interfaces.*

[edit system login class class-name]
user@host# set permissions configure
user@host# set deny-configuration "interfaces .* unit .*"
  • O operador denota tudo desde o ponto especificado em diante para esse comando ou declaração em particular..* Neste exemplo, ele denota qualquer nome de interface com qualquer valor unitário.

  • Especificar apenas a declaração é incorreto e não nega o acesso à configuração das interfaces para a classe de login especificada.deny-configuration "interfaces .*"

  • Outras opções válidas podem ser incluídas na expressão regular. Por exemplo:

    [edit system login class class-name]
    user@host# set permissions configure
    user@host# set deny-configuration "interfaces .* description .*"
    
    [edit system login class class-name]
    user@host# set permissions configure
    user@host# set allow-configuration-regexps [ "interfaces .* description .*" "interfaces .* unit .* description .*" "interfaces .* unit .* family inet address .*" "interfaces.* disable" ]
    
    [edit system login class class-name]
    user@host# set permissions configure
    user@host# set allow-configuration "interfaces .* unit 0 family ethernet-switching vlan mem.* .*"
    

    Nota: A expressão regular neste exemplo é usada quando espera-se que várias cordas que começam com a palavra-chave sejam incluídas na expressão regular especificada.mem.*mem Quando se espera que apenas uma corda seja incluída, a expressão regular é usada.membermember .*

[edit vlans]

O comando para VLANs é executado da seguinte forma:set

[edit]
user@host# set vlans vlan-name vlan-id vlan-id

Aqui, a declaração está incompleta por si só e requer a opção de executar a declaração.set vlansvlan-id

Como resultado, a expressão regular necessária para permitir a configuração deve especificar toda a string executável com o operador no lugar de variáveis de declaração:set vlans.*

[edit system login class class-name]
user@host# set permissions configure
user@host# set allow-configuration "vlans .* vlan-id .*"
  • O operador denota tudo desde o ponto especificado em diante para esse comando ou declaração em particular..* Neste exemplo, ele denota qualquer nome VLAN com qualquer ID VLAN.

  • Outras opções válidas sob a hierarquia de declaração podem ser incluídas na expressão regular.[edit vlans] Por exemplo:

    [edit system login class class-name]
    user@host# set permissions configure
    user@host# set allow-configuration-regexps [ "vlans .* vlan-id .*" "vlans .* vlan-id .* description .*" "vlans .* vlan-id .* filter .*" ]
    

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.

Tabela 5: Operadores comuns de expressão regular

Operador

Jogo

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 declaração.allow-commands Eles também têm acesso ao modo de configuração, excluindo os níveis de hierarquia especificados na declaração.deny-configuration

^

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 declaração concede acesso a comandos que começam com as palavras-chave.allow-commandsshowmonitor

Para o primeiro filtro, os comandos especificados incluem o , e comandos.show logshow interfacesshow policer O segundo filtro especifica todos os comandos que começam com a palavra-chave, como os comandos ou os comandos.monitormonitor interfacesmonitor traffic

$

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 modo operacional.show configuration No entanto, a expressão regular especificada na declaração restringe os usuários a executar apenas o comando e nega acesso a extensões de comando como ou .allow-commandsshow interfacesshow interfaces detailshow interfaces extensive

[ ]

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 declaração.allow-commands

*

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 negados acesso à configuração.m

+

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 negados acesso à configuração.m

.

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 negados acesso à configuração.m

.*

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 negados acesso à configuração.m

Da mesma forma, a declaração nega todo o acesso de configuração sob o nível hierárquicos.deny-configuration "protocols .*"[edit protocols]

Nota:
  • As operações e as operações podem ser alcançadas usando .*+..*

  • As declarações e as declarações negam o acesso a todos os comandos de modo operacional e hierarquias de configuração, respectivamente.deny-commands .*deny-configuration .*

Nota:

O operador de expressão regular não é compatível.!

Exemplos de expressão regulares

lista as expressões regulares usadas para permitir opções de configuração em duas hierarquias de configuração e, como exemplo, especificar expressões regulares.Tabela 6[edit system ntp server][edit protocols rip]

Nota:

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 hierarquias e declarações.[edit system ntp server][edit protocols rip]

Tabela 6: Exemplos de expressões regulares

Hierarquia de declarações

Expressões regulares

Configuração permitida

Configuração negada

[edit system ntp server]

     

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" ]
  • IP do servidor

  • IP do servidor e chave

  • Versão

  • Preferem

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" ]
  • IP do servidor

  • IP do servidor e versão

  • chave

  • Preferem

Preferem

[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 .*" ]
  • IP do servidor

  • IP do servidor e prefira

  • chave

  • Versão

[edit protocols rip]

     

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 .*" ]
  • tamanho da mensagem

  • métrica

  • tempo limite de rota

  • intervalo de atualização

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 .*" ]
  • métrica

  • tamanho da mensagem

  • tempo limite de rota

  • intervalo de atualização

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 .*" ]
  • tempo limite de rota

  • tamanho da mensagem

  • métrica

  • intervalo de atualização

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 .*" ]
  • intervalo de atualização

  • tamanho da mensagem

  • métrica

  • tempo limite de rota

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

  • e declaraçõesallow-configurationdeny-configuration

As bandeiras de permissão definem os limites maiores do que uma pessoa ou classe de login pode acessar e controlar. As declarações e declarações contêm uma ou mais expressões regulares que permitem ou negam hierarquias e declarações de configuração específicas.allow-configurationdeny-configuration As declarações e as 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.allow-configurationdeny-configuration

Este tópico explica como definir privilégios de acesso usando e declarações, mostrando exemplos de configurações de classe de login que usam essas declarações.allow-configurationdeny-configuration 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 declaração.deny-configuration

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:

  1. Definir as permissões de aula de login do usuário para .all
  2. Inclua a declaração a seguir .deny-configuration

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":

  1. Definir as permissões de aula de login do usuário para .all

  2. Inclua a declaração a seguir .deny-configuration

Exemplo 3

Criar uma aula de login que permita ao usuário executar todos os comandos e configurar tudo, exceto os níveis de hierarquia ou:[edit system login class][edit system services]

  1. Definir as permissões de aula de login do usuário para .all

  2. Inclua a declaração a seguir :deny-configuration

Os exemplos a seguir mostram como usar e declarações para determinar permissões inversas entre si para o nível de hierarquia.allow-configurationdeny-configuration[edit system services]

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]

  1. Definir as permissões de aula de login do usuário para .configure

  2. Inclua a declaração a seguir :allow-configuration

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 hierarquia:[edit system services]

  1. Definir as permissões de aula de login do usuário para .all

  2. Inclua a declaração a seguir .deny-configuration

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 as declarações para uma aula de login.allow-configuration-regexpsdeny-configuration-regexps

Por padrão, a declaração prevalece sobre a declaração.deny-configuration-regexpsallow-configuration-regexps Se uma hierarquia de configuração aparecer em uma declaração para uma aula de login, ela não será visível para os usuários dessa classe, independentemente do conteúdo da declaração.deny-configuration-regexpsallow-configuration-regexps Se uma hierarquia de configuração não aparecer em uma declaração, ela será visível para os usuários dessa classe se ela aparecer em uma declaração .deny-configuration-regexpsallow-configuration-regexps

Você pode mudar esse comportamento padrão, permitindo uma lógica aditiva para as declarações.*-configuration-regexps Quando você habilita a lógica aditiva, a declaração tem precedência sobre a declaração.allow-configuration-regexpsdeny-configuration-regexps

Assim, se a declaração negar acesso a todas as hierarquias de configuração em um determinado nível (protocolos .*), mas a 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 declaração prevalece.deny-configuration-regexpsallow-configuration-regexpsdeny-configuration-regexps 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 prioridade é necessária neste caso.allow-configuration-regexps

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:

  1. Inclua a declaração e negue explicitamente o acesso a hierarquias de configuração.deny-configuration-regexps

    Por exemplo:

  2. Inclua a declaração e defina expressões regulares para que as hierarquias específicas permitam.allow-configuration-regexps

    Por exemplo:

  3. Habilite a lógica aditiva para as expressões regulares.allow-configuration-regexpsdeny-configuration-regexps

  4. Atribua a aula de login a um ou mais usuários.

  5. Comprometa suas mudanças.

    Os usuários designados para esta classe de login têm acesso às hierarquias de configuração incluídas na declaração, mas não têm acesso às outras hierarquias especificadas na declaração.allow-configuration-regexpsdeny-configuration-regexps

Nota:

Ao configurar a declaração, a mudança de comportamento se aplica a todos e às declarações presentes em todas as aulas de login.regex-additive-logicallow-configuration-regexpsdeny-configuration-regexps 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 ; por exemplo, , e assim por diante.CUST-VRF-CUST-VRF-1CUST-VRF-25CUST-VRF-100 O exemplo também inclui uma expressão regular que impede a configuração de quaisquer instâncias de roteamento.

Por padrão, a 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.deny-configuration-regexps

No entanto, se você configurar a declaração a seguir, a declaração prevalecerá.allow-configuration-regexps Assim, os usuários podem configurar instâncias de roteamento cujos nomes começam, mas os usuários não podem configurar nenhuma outra instância de roteamento.CUST-VRF-

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 configuração de pares BGP:[edit protocols]

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.

Verificação

Para verificar se você definiu corretamente os privilégios de acesso:

  1. Configure uma aula de login e comprometa as mudanças.

  2. Atribua a classe de login a.username

  3. Faça login como designado com a nova aula de login.username

  4. 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 declaração.permissions

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+.

Figura 1: TopologiaTopologia

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 declaração e definindo expressões regulares estendidas usando as declarações e declarações.permissionsallow-commandsdeny-commands

A finalidade de cada aula de login é a seguinte:

  • — define privilégios de acesso apenas para o usuário com a declaração.Class1allow-commands Essa aula de login oferece permissões e autorização para o usuário no nível do operador para reiniciar o dispositivo.

  • — define privilégios de acesso apenas para o usuário com a declaração.Class2deny-commands Essa aula de login oferece permissões de usuário no nível do operador e nega acesso a comandos.set

  • — define privilégios de acesso para o usuário com as declarações e declarações.Class3allow-commandsdeny-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 ao e comandos.editconfigure

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

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 hierarquia e, em seguida, entrar no modo de configuração.[edit]commit

R1

Configure parâmetros de autenticação para o roteador R1

Procedimento passo a passo

Para configurar a autenticação do Roteador R1:

  1. 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.

  2. Configure o servidor TACACS+.

  3. Configure o servidor RADIUS.

  4. Configure parâmetros de contabilidade R1.

Configure privilégios de acesso com a Declaração de comandos de permitir (Classe1)

Procedimento passo a passo

Especificar expressões regulares usando a declaração:allow-commands

  1. Configure a classe de login classe 1 e atribua permissões de usuário no nível do operador.

  2. Configure a expressão regular para permitir que os usuários da classe reinicializem o dispositivo.allow-commands

  3. Configure a conta do usuário para a aula de login classe 1.

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 declaração:deny-commands

  1. Configure a classe de login classe 2 e atribua permissões de usuário no nível do operador.

  2. Configure a expressão regular para impedir que os usuários da classe executem comandos.deny-commandsset

  3. Configure a conta do usuário para a aula de login da Classe 2.

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 as declarações:allow-commandsdeny-commands

  1. Configure a classe de login class3 e atribua permissões de nível de superusuário.

  2. Configure a expressão regular para impedir que os usuários da classe executem quaisquer comandos.deny-commands

  3. Configure a expressão regular para permitir que os usuários insiram no modo de configuração.allow-commands

  4. Configure a conta do usuário para a aula de login classe3.

Resultados

No modo de configuração, confirme sua configuração inserindo o comando.show system Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.

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

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 comando.show system users

No modo operacional, execute o comando.request system reboot

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 comando.request system reboot

A classe de login do operador predefinido tem as seguintes bandeiras de permissão especificadas:

  • — Pode usar comandos para limpar (excluir) informações que o dispositivo aprende com a rede e armazena em vários bancos de dados de rede.clearclear

  • — Pode acessar a rede usando os comandos e os comandos.networkpingsshtelnettraceroute

  • — Pode reiniciar processos de software usando o comando.resetrestart

  • 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 comando.request system reboot A primeira saída exibe as permissões de visualização como operador, e a segunda saída mostra que o único comando que o User1 pode executar como operador é o comando.request systemrequest system reboot

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 comando.ping

A partir do prompt CLI, verifique os comandos disponíveis.

A partir do prompt CLI, execute qualquer comando de conjunto.

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 comandos.set

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.

Insira o modo de configuração.

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 comando.configure A classe nega acesso a todos os outros comandos de modo operacional. Como as expressões regulares especificadas nas 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.allow/deny-commands

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+.

Figura 2: TopologiaTopologia

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 declaração e definindo expressões regulares estendidas usando as , e declarações.permissionsallow-configurationdeny-configurationallow-configuration-regexpsdeny-configuration-regexps

A finalidade de cada aula de login é a seguinte:

  • — define privilégios de acesso para o usuário com as declarações e declarações.Class1allow-configurationdeny-configuration Essa aula de login oferece acesso apenas para configurar a hierarquia e nega todo o outro acesso no dispositivo.[edit interfaces] Para isso, as permissões do usuário incluem fornecer acesso à configuração.configure Além disso, a declaração permite o acesso à configuração das interfaces, e a declaração nega acesso a todas as outras hierarquias de configuração.allow-configurationdeny-configuration 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 hierarquia.[edit interfaces]

  • — define privilégios de acesso para o usuário com as declarações e declarações.Class2allow-configuration-regexpsdeny-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 níveis de hierarquia.[edit system][edit protocols]

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

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 hierarquia e, em seguida, entrar no modo de configuração.[edit]commit

R1

Configure parâmetros de autenticação para o roteador R1

Procedimento passo a passo

Para configurar a autenticação do Roteador R1:

  1. 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.

  2. Configure o servidor TACACS+.

  3. Configure o servidor RADIUS.

  4. Configure os parâmetros de contabilidade R1.

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 declarações:allow-configurationdeny-configuration

  1. Configure a aula de login classe 1 com permissões.configure

  2. Configure a expressão regular para permitir que os usuários da classe visualizem e modifiquem parte do nível de hierarquia.allow-configuration[edit interfaces]

  3. Configure a expressão regular para negar acesso a todas as hierarquias de configuração.deny-configuration

  4. Configure a conta do usuário para a aula de login classe 1.

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 declarações:allow-configuration-regexpsdeny-configuration-regexps

  1. Configure a classe de login class2 e atribua permissões de superusuário (todos).

  2. Configure a expressão regular para permitir que os usuários da classe acessem várias hierarquias sob o nível hierárquico .allow-configuration-regexps[edit interfaces]

  3. Configure a expressão regular para impedir que os usuários da classe visualizam ou modifiquem a configuração nos níveis de hierarquia e hierarquia.deny-configuration-regexps[edit system][edit protocols]

  4. Configure a conta do usuário para a aula de login da Classe 2.

Resultados

No modo de configuração, confirme sua configuração inserindo o comando.show system Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.

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.

No modo de configuração, verifique as permissões de configuração disponíveis.

Significado

O User1 tem permissões de usuário, como visto na primeira saída.configure Além disso, no modo de configuração, o User1 tem acesso ao nível de hierarquia, mas apenas a esse nível de hierarquia, como visto na segunda saída.interfaces

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 configuração.interfaces

No modo de configuração, acesse as hierarquias e configuração.systemprotocols

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 níveis de hierarquia.[edit system][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.

Versão
Descrição
18.1
A partir do Junos OS Release 18.1, as declarações e o suporte para a autorização do TACACS+.allow-commands-regexpsdeny-commands-regexps