Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Anforderungen für die Ausführung von Python-Automatisierungsskripts auf Junos-Geräten

Anforderungen für die Ausführung von Python-Skripten

Sie können Python verwenden, um Junos OS-Commit-, Event-, Op- und SNMP-Automatisierungsskripte zu erstellen. Um die Ausführung von nicht autorisiertem Python-Code zu verhindern, lassen Junos-Geräte standardmäßig keine Ausführung nicht signierter Python-Skripts zu. Um ein unsigniertes Python-Skript auszuführen, müssen die folgenden Anforderungen erfüllt sein, die zusätzlich zu den normalen Anforderungen für Onbox-Automatisierungsskripte gelten:

  • Der Dateibesitzer ist entweder root oder ein Benutzer in der Junos OS-Anmeldeklasse super-user .

  • Nur der Dateibesitzer hat Schreibrechte für die Datei.

  • Die Ausführung von nicht signierten Python-Skripten wird durch die Konfiguration der language python oder-Anweisung language python3 auf Hierarchieebene [edit system scripts] ermöglicht.

    Hinweis:

    Wenn Sie die language python3 Anweisung konfigurieren, verwendet das Gerät Python 3 zum Ausführen von Skripts, die diese Python-Version unterstützen, und Python 2.7 zum Ausführen von Skripts, die Python 3 in der angegebenen Junos OS-Version nicht unterstützen. Weitere Informationen finden Sie unter Grundlegendes zu Python-Automatisierungsskripts für Junos-Geräte.

    Hinweis:

    Ab Junos OS Evolved Version 21.2R1 enthält die Konfigurationsgruppe standardmäßig die junos-defaults language python Anweisung.

    Hinweis:

    Damit ein Benutzer, der nicht zur Benutzer- oder Gruppenklasse der Datei gehört, ein unsigniertes Python-Automatisierungsskript ausführen kann, müssen die Dateiberechtigungen des Skripts die Leseberechtigung für andere enthalten.

Wie bei SLAX- und XSLT-Automatisierungsskripten müssen Sie Python-Automatisierungsskripte im entsprechenden Verzeichnis auf dem Gerät speichern und einzelne Skripts aktivieren, indem Sie den Skriptdateinamen unter der Hierarchieebene konfigurieren, die dem Skripttyp in der Konfiguration entspricht. Weitere Informationen zum Speichern und Aktivieren von Automatisierungsskripts finden Sie unter Speichern und Aktivieren von Junos-Automatisierungsskripts.

Es wird empfohlen, eine Prüfsumme zu konfigurieren, um die Integrität von Python-Skripten zu überprüfen. Wenn Sie eine Prüfsumme für ein lokales Skript angeben möchten, konfigurieren Sie die checksum Anweisung unter der Anweisung in der [file filename] Hierarchie für Ihren spezifischen Skripttyp. Um eine Prüfsumme für ein Remote-Op-Skript anzugeben, schließen Sie das Argument ein, wenn Sie das key Skript mit dem op url Befehl ausführen. Wenn Sie ab Junos OS Version 18.2R2 und 18.3R1 ein unsigniertes Python-Skript ausführen, für das keine Prüfsumme konfiguriert ist, protokollieren Junos-Geräte eine CSCRIPT_SECURITY_WARNING Meldung in der Systemprotokolldatei. Zum Beispiel:

Konfigurieren von Zugriffsrechten für Python-Skripte

Ab Junos OS Version 16.1R3 werden interaktive Python-Skripts, z. B. Commit- und Op-Skripte, mit den Zugriffsrechten des Benutzers ausgeführt, der den Befehl oder Vorgang ausführt, der bzw. der das Skript aufruft. Nicht interaktive Python-Skripte, wie z. B. Ereignis- und SNMP-Skripte, werden standardmäßig mit den Rechten des Benutzers und der Gruppe nobodyausgeführt. Um Ereignis- oder SNMP-Skripte mit den Zugriffsrechten eines bestimmten Benutzers auszuführen, müssen Sie die python-script-user username Anweisung auf der Hierarchieebene für Ereignisskripte oder der Hierarchieebene für SNMP-Skripte konfigurieren und einen auf der [edit event-options event-script file filename] [edit system scripts snmp file filename] [edit system login] Hierarchieebene konfigurierten Benutzer angeben.

Zum Beispiel:

Hinweis:

Sie können Python-Ereignis- und SNMP-Skripte nicht so konfigurieren, dass sie mit Root-Zugriffsrechten ausgeführt werden.

Zusammenfassung der Anforderungsänderungen nach Release

Ab Junos OS Version 16.1R3 wurden die Anforderungen an den Besitz und die Zugriffsrechte für einige nicht signierte Python-Skripts geändert. In Junos OS Version 16.1R2 und früheren Versionen müssen nicht signierte Python-Commit-, Event-, Op- und SNMP-Skripts dem Root-Benutzer gehören, und Junos OS führt die Skripts mit den Zugriffsrechten des *nix-Benutzers und der *nix-Gruppe nobodyaus, bei denen es sich um das generische, nicht privilegierte Systemkonto handelt. Ab Junos OS Version 16.1R3 müssen nicht signierte Python-Automatisierungsskripts entweder dem Root-Benutzer oder einem Benutzer in der Junos OS-Anmeldeklasse super-user gehören, und nur der Dateibesitzer kann Schreibberechtigungen für die Datei haben. Darüber hinaus können Python-Automatisierungsskripte mit den Zugriffsrechten autorisierter Benutzer ausgeführt werden.

Tabelle 1 beschreibt die Anforderungen für die Ausführung nicht signierter Python-Automatisierungsskripts in den verschiedenen Veriexec-fähigen Versionen von Junos OS.

Tabelle 1: Anforderungen an Python-Automatisierungsskripte

Anforderung/Einschränkung

Junos OS Version 16.1R2 oder frühere Version

Junos OS Version 16.1R3 oder höher

Eigentümer der Datei

Root-Benutzer

Root-Benutzer oder ein Benutzer in der Junos OS-Anmeldeklasse super-user .

Schreibberechtigungen für Dateien

Jegliche

Nur für den Eigentümer der Datei

language python oder-Anweisung language python3 muss auf der [edit system scripts] Hierarchieebene konfiguriert werden

Hinweis:

Python 3 wird in Junos OS Version 19.4R1 und höheren Versionen unterstützt.

Ja

Ja

Das Skript muss in der Konfiguration unter der Hierarchie aktiviert sein, die diesem Skripttyp entspricht

Ja

Ja

Zugriffsrechte

Alle Python-Automatisierungsskripte werden mit den Zugriffsrechten des Benutzers und der Gruppe ausgeführt nobody

Python-Commit- und Op-Skripte werden mit den Zugriffsrechten des Benutzers ausgeführt, der das Skript aufruft.

Python-Ereignis- und SNMP-Skripte werden mit den Zugriffsrechten des in der python-script-user Anweisung konfigurierten Benutzers ausgeführt. Wenn die python-script-user Anweisung nicht konfiguriert ist, wird das Skript mit den Zugriffsrechten des Benutzers und der Gruppe nobodyausgeführt.

Tabelle der Versionshistorie
Release
Beschreibung
22.3R1-EVO
Ab Junos OS Evolved Version 22.3R1 ist Python 3 die standardmäßige und einzige unterstützte Python-Version zum Ausführen von Python-Skripten.
21.2R1-EVO
Ab Junos OS Evolved Version 21.2R1 wird die language python Anweisung standardmäßig in der junos-defaults Konfigurationsgruppe konfiguriert.
16.1R3
Ab Junos OS Version 16.1R3 wurden die Anforderungen an den Besitz und die Zugriffsrechte für einige nicht signierte Python-Skripts geändert.