Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Requisitos para ejecutar scripts de automatización de Python en dispositivos Junos

Requisitos para ejecutar scripts de Python

Puede usar Python para crear scripts de confirmación, eventos, operación y automatización SNMP de Junos OS. Para evitar la ejecución de código Python no autorizado, los dispositivos Junos, de forma predeterminada, no permiten ejecutar scripts de Python sin signo. Para ejecutar una secuencia de comandos de Python sin signo, se deben cumplir los siguientes requisitos, que se suman a los requisitos normales de las secuencias de comandos de automatización onbox:

  • El propietario del archivo es raíz o usuario en la clase de inicio de sesión de Junos OS super-user .

  • Solo el propietario del archivo tiene permiso de escritura para el archivo.

  • La ejecución de scripts de Python sin signo se habilita mediante la configuración de la language python instrucción o language python3 en el [edit system scripts] nivel de jerarquía.

    Nota:

    Si configura la language python3 instrucción, el dispositivo utiliza Python 3 para ejecutar scripts que admiten esta versión de Python y utiliza Python 2.7 para ejecutar scripts que no admiten Python 3 en la versión dada de Junos OS. Para obtener más información, consulte Descripción de scripts de automatización de Python para dispositivos Junos.

    Nota:

    A partir de Junos OS versión Evolved 21.2R1, el junos-defaults grupo de configuración incluye la language python instrucción de forma predeterminada.

    Nota:

    Para permitir que un usuario que no pertenece a la clase de usuario o grupo del archivo ejecute una secuencia de comandos de automatización de Python sin signo, los permisos de archivo de la secuencia de comandos deben incluir el permiso de lectura para otros.

Al igual que con las secuencias de comandos de automatización SLAX y XSLT, debe almacenar secuencias de comandos de automatización de Python en el directorio adecuado del dispositivo, y debe habilitar secuencias de comandos individuales mediante la configuración del nombre de archivo de secuencia de comandos en el nivel de jerarquía adecuado al tipo de secuencia de comandos en la configuración. Para obtener más información sobre cómo almacenar y habilitar scripts de automatización, consulte Almacenar y habilitar scripts de Junos Automation.

Le recomendamos que configure una suma de comprobación para comprobar la integridad de los scripts de Python. Para especificar una suma de comprobación para una secuencia de comandos local, configure la checksum instrucción en la [file filename] instrucción en la jerarquía para el tipo específico de secuencia de comandos. Para especificar una suma de comprobación para una secuencia de comandos de operación remota, incluya el key argumento cuando ejecute la secuencia de comandos mediante el op url comando. A partir de Junos OS versión 18.2R2 y 18.3R1, si ejecuta una secuencia de comandos de Python sin signo que no tiene configurada una suma de comprobación, los dispositivos Junos registran un mensaje de CSCRIPT_SECURITY_WARNING en el archivo de registro del sistema. Por ejemplo:

Configuración de privilegios de acceso para scripts de Python

A partir de Junos OS versión 16.1R3, los scripts de Python interactivos, como commit y op scripts, se ejecutan con los privilegios de acceso del usuario que ejecuta el comando o la operación que invoca la secuencia de comandos. Las secuencias de comandos de Python no interactivas, como secuencias de comandos SNMP y eventos, se ejecutan de forma predeterminada bajo los privilegios del usuario y del grupo nobody. Para ejecutar scripts de eventos o SNMP mediante los privilegios de acceso de un usuario específico, debe configurar la python-script-user username instrucción en el [edit event-options event-script file filename] nivel de jerarquía para secuencias de comandos de eventos o el [edit system scripts snmp file filename] nivel de jerarquía para scripts SNMP y especificar un usuario configurado en el [edit system login] nivel de jerarquía.

Por ejemplo:

Nota:

No puede configurar secuencias de comandos SNMP y eventos de Python para que se ejecuten con privilegios de acceso raíz.

Resumen de los cambios de requisitos por versión

A partir de Junos OS versión 16.1R3, se modifican los requisitos de privilegios de propiedad y acceso para algunos scripts de Python sin signo. En la versión 16.1R2 y versiones anteriores de Junos OS, los scripts de confirmación, evento, operación y SNMP no firmados de Python deben ser propiedad del usuario raíz, y Junos OS ejecuta los scripts mediante los privilegios de acceso del usuario y el grupo nobody*nix, que es la cuenta de sistema genérica y sin privilegios. A partir de Junos OS versión 16.1R3, los scripts de automatización de Python sin signo deben ser propiedad del usuario raíz o de un usuario en la clase de inicio de sesión de Junos OS super-user , y solo el propietario del archivo puede tener permiso de escritura para el archivo. Además, los scripts de automatización de Python se pueden ejecutar con los privilegios de acceso de los usuarios autorizados.

La tabla 1 describe los requisitos para ejecutar scripts de automatización de Python sin signo en las diferentes versiones habilitadas para Veriexec de Junos OS.

Tabla 1: Requisitos de secuencia de comandos de automatización de Python

Requisito/restricción

Versión 16.1R2 o anterior de Junos OS

Versión 16.1R3 o posterior de Junos OS

Propietario del archivo

Usuario raíz

Usuario raíz o un usuario en la clase de inicio de sesión de Junos OS super-user .

Permisos de escritura de archivos

Cualquier

Solo el propietario del archivo

language pythono language python3 instrucción debe configurarse en el nivel jerárquico [edit system scripts]

Nota:

Python 3 es compatible con Junos OS versión 19.4R1 y versiones posteriores.

La secuencia de comandos debe estar habilitada en la configuración bajo la jerarquía adecuada para ese tipo de secuencia de comandos

Privilegios de acceso

Todos los scripts de automatización de Python se ejecutan con los privilegios de acceso del usuario y del grupo nobody

Las secuencias de comandos de confirmación y operación de Python se ejecutan con los privilegios de acceso del usuario que invoca la secuencia de comandos.

Los scripts snmp y de eventos de Python se ejecutan con los privilegios de acceso del usuario configurado en la python-script-user instrucción. Si la python-script-user instrucción no está configurada, la secuencia de comandos se ejecuta con los privilegios de acceso del usuario y del grupo nobody.

Tabla de historial de versiones
Lanzamiento
Descripción
22.3R1-EVO
A partir de Junos OS versión Evolved 22.3R1, Python 3 es la versión predeterminada y solo compatible con Python para ejecutar scripts de Python.
21.2R1-EVO
A partir de Junos OS versión Evolved 21.2R1, la language python instrucción se configura de forma predeterminada en el grupo de junos-defaults configuración.
16.1R3
A partir de Junos OS versión 16.1R3, se modifican los requisitos de privilegios de propiedad y acceso para algunos scripts de Python sin signo.