Junos 디바이스에서 Python 자동화 스크립트를 실행하기 위한 요구 사항
Python 스크립트를 실행하기 위한 요구 사항
Python을 사용하여 Junos OS 커밋, 이벤트, 운영 및 SNMP 자동화 스크립트를 작성할 수 있습니다. 승인되지 않은 Python 코드가 실행되지 않도록 하기 위해 Junos 디바이스는 서명되지 않은 Python 스크립트를 실행하는 것을 허용하지 않습니다. 서명되지 않은 Python 스크립트를 실행하려면 다음 요구 사항을 충족해야 합니다. 이 요구 사항은 온박스 자동화 스크립트에 대한 일반적인 요구 사항 이외에도 충족되어야 합니다.
-
파일 소유자는 Junos OS
super-user로그인 클래스의 루트 또는 사용자입니다. -
파일 소유자만이 파일에 대한 쓰기 권한을 가지고 있습니다.
-
서명되지 않은 Python 스크립트의 실행은 계층 수준에서 또는
language python3명령문을[edit system scripts]구성language python하여 실행됩니다.참고:명령문을 구성
language python3하면 디바이스는 Python 3을 사용하여 이 Python 버전을 지원하는 스크립트를 실행하며, Python 2.7을 사용하여 지정된 Junos OS 릴리스에서 Python 3을 지원하지 않는 스크립트를 실행합니다. 자세한 내용은 Junos 디바이스용 Python 자동화 스크립트 이해(Understanding Python Automation Scripts)를 참조하십시오.참고:Junos OS Evolved Release 21.2R1
junos-defaults부터 구성 그룹에는 기본적으로 명령문이language python포함되어 있습니다.참고:파일의 사용자 또는 그룹 클래스에 속하지 않는 사용자가 서명되지 않은 Python 자동화 스크립트를 실행할 수 있도록 하려면 스크립트의 파일 권한에는 다른 사람에 대한 읽기 권한이 포함되어야 합니다.
SLAX 및 XSLT 자동화 스크립트와 마찬가지로 Python 자동화 스크립트를 디바이스의 적절한 디렉토리에 저장해야 하며 구성의 스크립트 유형에 적합한 계층 수준에서 스크립트 파일 이름을 구성하여 개별 스크립트를 활성화해야 합니다. 자동화 스크립트 저장 및 활성화에 대한 자세한 내용은 스토어 및 Junos 자동화 스크립트 활성화를 참조하십시오.
Python 스크립트의 무결성을 확인하기 위해 체크섬을 구성하는 것이 좋습니다. 로컬 스크립트에 대한 체크섬을 지정하려면 계층의 명령문 아래에 [file filename] 특정 유형의 스크립트에 대한 문을 구성 checksum 합니다. 원격 운영 스크립트에 대한 체크섬을 지정하려면 명령을 사용하여 스크립트를 key 실행할 때 인수를 op url 포함합니다. Junos OS Release 18.2R2 및 18.3R1에서 시작해 체크섬 구성이 없는 서명되지 않은 Python 스크립트를 실행하는 경우 Junos 장치는 시스템 로그 파일에 CSCRIPT_SECURITY_WARNING 메시지를 기록합니다. 예를 들어:
CSCRIPT_SECURITY_WARNING: unsigned python script '/var/db/scripts/op/sample.py' without checksum is executed
Python 스크립트에 대한 액세스 권한 구성
Junos OS Release 16.1R3부터 커밋 및 운영 스크립트와 같은 대화형 Python 스크립트는 스크립트를 호출하는 명령 또는 작업을 실행하는 사용자의 액세스 권한과 함께 실행됩니다. 기본적으로 이벤트 및 SNMP 스크립트와 같은 비 대화형 Python 스크립트는 사용자 및 그룹의 nobody권한에 따라 실행됩니다. 특정 사용자의 액세스 권한을 사용하여 이벤트 또는 SNMP 스크립트를 실행하려면 이벤트 스크립트 또는 [edit system scripts snmp file filename] SNMP 스크립트의 계층 수준에 대해 계층 수준에서 명령 [edit event-options event-script file filename] 문을 구성 python-script-user username 하고 계층 수준에서 구성된 [edit system login] 사용자를 지정해야 합니다.
예를 들어:
[edit event-options event-script]
file filename {
python-script-user username;
}
[edit system scripts snmp]
file filename {
python-script-user username;
}
Python 이벤트 및 SNMP 스크립트를 루트 액세스 권한으로 실행할 수는 없습니다.
릴리스별 요구 사항 변경 요약
Junos OS 릴리스 16.1R3부터 서명되지 않은 Python 스크립트에 대한 소유권 및 액세스 권한 요구 사항이 수정되었습니다. Junos OS 릴리스 16.1R2 및 이전 릴리스에서 서명되지 않은 Python 커밋, 이벤트, op 및 SNMP 스크립트는 루트 사용자가 소유해야 하며, Junos OS는 일반적이고 권한 없는 시스템 계정인 *nix 사용자 및 그룹의 nobody액세스 권한을 사용하여 스크립트를 실행합니다. Junos OS 릴리스 16.1R3부터 서명되지 않은 Python 자동화 스크립트는 루트 사용자 또는 Junos OS super-user 로그인 클래스의 사용자가 소유해야 하며 파일 소유자만 파일에 대한 쓰기 권한을 가질 수 있습니다. 또한 Python 자동화 스크립트는 인증된 사용자의 액세스 권한으로 실행할 수 있습니다.
표 1 에는 서로 다른 Veriexec 지원 버전의 Junos OS에서 서명되지 않은 Python 자동화 스크립트를 실행하기 위한 요구 사항이 요약되어 있습니다.
| 요구 사항/제한 |
Junos OS 릴리스 16.1R2 또는 이전 릴리스 |
Junos OS 릴리스 16.1R3 이상 릴리스 |
|---|---|---|
| 파일 소유자 |
루트 사용자 |
Junos OS |
| 파일 쓰기 권한 |
모든 |
파일 소유자만 해당 |
|
참고:
Python 3는 Junos OS 릴리스 19.4R1 이상에서 지원됩니다. |
예 |
예 |
| 스크립트는 해당 스크립트 유형에 적합한 계층 아래의 구성에서 활성화되어야 합니다. |
예 |
예 |
| 액세스 권한 |
모든 Python 자동화 스크립트는 사용자와 그룹의 액세스 권한으로 실행됩니다. |
Python 커밋 및 운영 스크립트는 스크립트를 호출하는 사용자의 액세스 권한으로 실행됩니다. Python 이벤트와 SNMP 스크립트는 명령문에 구성된 사용자의 액세스 권한과 |
language python 부터 이 명령문은 기본적으로
junos-defaults 구성 그룹에서 구성됩니다.