Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Requisitos para executar scripts de automação Python em dispositivos Junos

Requisitos para executar scripts Python

Você pode usar o Python para criar scripts de automação junos os commit, event, op e SNMP. Para evitar a execução do código Python não autorizado, os dispositivos Junos, por padrão, não permitem a execução de scripts Python não assinados. Para executar um script Python não assinado, os seguintes requisitos devem ser atendidos, além dos requisitos normais para scripts de automação na caixa:

  • O proprietário do arquivo é raiz ou um usuário na aula de login do Junos OS super-user .

  • Apenas o proprietário do arquivo tem permissão de gravação para o arquivo.

  • A execução de scripts Python não assinados é habilitada configurando a ou language python3 declaração language python no nível hierárquico[edit system scripts].

    Nota:

    Se você configurar a language python3 declaração, o dispositivo usa o Python 3 para executar scripts que oferecem suporte a esta versão Python, e ele usa o Python 2.7 para executar scripts que não oferecem suporte ao Python 3 no lançamento do Junos OS. Para obter mais informações, consulte Entendendo os scripts de automação python para dispositivos Junos.

    Nota:

    A partir do Junos OS Evolved Release 21.2R1, o junos-defaults grupo de configuração inclui a language python declaração por padrão.

    Nota:

    Para permitir que um usuário que não pertence ao usuário ou classe de grupo do arquivo execute um script de automação Python não assinado, as permissões de arquivo do script devem incluir a permissão de leitura para outros.

Assim como nos scripts de automação SLAX e XSLT, você deve armazenar scripts de automação Python no diretório apropriado no dispositivo, e você deve habilitar scripts individuais configurando o nome de arquivo de script sob o nível de hierarquia apropriado para o tipo de script na configuração. Para obter informações sobre o armazenamento e habilitação de scripts de automação, consulte o Store and Enable Junos Automation Scripts.

Recomendamos que você configure um checksum para verificar a integridade dos scripts Python. Para especificar um checksum para um script local, configure a checksum declaração sob a [file filename] declaração na hierarquia para o seu tipo específico de script. Para especificar um checksum para um script de operação remoto, inclua o key argumento quando você executa o script usando o op url comando. Começando no Junos OS Release 18.2R2 e 18.3R1, se você executar um script Python não assinado que não tenha um checksum configurado, os dispositivos Junos registram uma mensagem CSCRIPT_SECURITY_WARNING no arquivo de registro do sistema. Por exemplo:

Configuração de privilégios de acesso para scripts Python

A partir do Junos OS Release 16.1R3, scripts python interativos, como scripts de confirmação e operação, são executados com os privilégios de acesso do usuário que executa o comando ou operação que invoca o script. Scripts Python não interativos, como scripts de evento e SNMP, por padrão, executam sob os privilégios do usuário e do grupo nobody. Para executar scripts de evento ou SNMP usando os privilégios de acesso de um usuário específico, você deve configurar a python-script-user username declaração no nível de [edit event-options event-script file filename] hierarquia para scripts de eventos ou o [edit system scripts snmp file filename] nível de hierarquia para scripts SNMP e especificar um usuário configurado no nível de [edit system login] hierarquia.

Por exemplo:

Nota:

Você não pode configurar scripts de evento Python e SNMP para executar com privilégios de acesso raiz.

Resumo das mudanças de requisitos por versão

A partir do Junos OS Release 16.1R3, os requisitos de privilégio de propriedade e acesso para alguns scripts Python não assinados são modificados. No Junos OS Release 16.1R2 e lançamentos anteriores, scripts python não assinados, eventos, op e SNMP devem ser propriedade do usuário raiz, e o Junos OS executa os scripts usando os privilégios de acesso do usuário e grupo nobody*nix, que é a conta genérica e desprivilegiada do sistema. Começando no Junos OS Release 16.1R3, scripts de automação Python não assinados devem ser propriedade do usuário raiz ou de um usuário na classe de login do Junos OS super-user , e apenas o proprietário do arquivo pode ter permissão de gravação para o arquivo. Além disso, os scripts de automação Python podem ser executados com os privilégios de acesso de usuários autorizados.

A Tabela 1 descreve os requisitos para a execução de scripts de automação Python não assinados nas diferentes versões habilitadas pelo Veriexec do Junos OS.

Tabela 1: Requisitos de script de automação python

Exigência/restrição

Versão do Junos OS 16.1R2 ou versão anterior

Versão do Junos OS 16.1R3 ou posterior

Proprietário do arquivo

Usuário raiz

Usuário raiz ou usuário na aula de login do Junos OS super-user .

Permissões de gravação de arquivos

Qualquer

Somente proprietário de arquivos

language pythonou language python3 a declaração deve ser configurada no nível hierárquico [edit system scripts]

Nota:

O Python 3 tem suporte para o Junos OS Release 19.4R1 e versões posteriores.

Sim

Sim

O script deve ser habilitado na configuração sob a hierarquia apropriada a esse tipo de script

Sim

Sim

Privilégios de acesso

Todos os scripts de automação Python são executados com os privilégios de acesso do usuário e do grupo nobody

O Python confirma e executa scripts de operação com os privilégios de acesso do usuário que invoca o script.

Evento Python e scripts SNMP são executados com os privilégios de acesso do usuário configurados na python-script-user declaração. Se a python-script-user declaração não estiver configurada, o script será executado com os privilégios de acesso do usuário e do grupo nobody.

Tabela de histórico de lançamento
Lançamento
Descrição
22.3R1-EVO
Começando no Junos OS Evolved Release 22.3R1, o Python 3 é o padrão e só suportava a versão Python para executar scripts Python.
21.2R1-EVO
A partir do Junos OS Evolved Release 21.2R1, a language python declaração é configurada por padrão no grupo de junos-defaults configuração.
16.1R3
A partir do Junos OS Release 16.1R3, os requisitos de privilégio de propriedade e acesso para alguns scripts Python não assinados são modificados.