Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos OS 사용자 액세스 권한 부여

Junos OS 명령 및 구성 계층 수준 및 명령문에 액세스 또는 권한을 부여할 수 있습니다. 이를 통해 사용자는 이러한 명령만 실행하고 액세스 권한을 갖는 명령문만 구성하고 볼 수 있습니다. 확장 정규 표현식을 사용하여 어떤 운영 모드 명령어, 구성 명령문 및 계층이 거부되거나 사용자가 허용하는지 지정할 수 있습니다. 인증되지 않은 사용자가 네트워크 손상을 일으킬 수 있는 민감한 명령 및 명령문을 실행하거나 구성하는 것을 방지합니다. 자세한 내용은 이 주제를 읽어 보시죠.

액세스 Junos OS 수준 이해

각 상위 레벨의 CLI 명령어 및 각 구성 명령문은 그와 연관된 액세스 권한 수준을 습니다. 사용자는 해당 명령만 실행하고 액세스 권한을 갖는 명령문만 구성하고 볼 수 있습니다. 각 로그인 클래스에 대한 액세스 권한은 하나 이상의 권한 플래그로 정의됩니다.

각 로그인 클래스의 경우, 명령문에 지정된 권한 수준에 따라 허용되거나 허용되지 않는 운영 및 구성 모드 명령의 사용을 명시적으로 거부하거나 허용할 수 permissions 있습니다.

다음 섹션에서는 권한에 대한 추가 정보를 제공합니다.

Junos OS 로그인 클래스 권한 플래그

권한 플래그는 운영 모드 명령 및 구성 계층 수준 및 명령문에 대한 사용자 액세스를 부여하는 데 사용됩니다. 계층 수준에서 사용자의 로그인 클래스에 특정 권한 플래그를 지정하면 해당 명령 및 구성 계층 수준 및 명령문에 사용자 액세스 권한을 [edit system login class] 부여할 수 있습니다. 모든 명령어 및 구성 명령문에 대한 액세스를 허용하려면 all permissions flag를 사용하여

주:

나열된 각 명령은 해당 명령과 해당 명령의 모든 서브맨드를 prefix로 나타내고 있습니다. 나열된 각 구성 명령문은 해당 플래그가 액세스를 부여하는 구성 계층의 맨 위에 표시됩니다.

명령문은 에 나열된 하나 이상의 권한 플래그를 permissions표 1 지정합니다. 권한 플래그는 누적되지 않습니다. 따라서 각 클래스에 대해 정보를 표시하고 구성 모드를 입력하는 등 필요한 모든 권한 플래그를 viewconfigure 나열해야 합니다. 구성의 개별 부분에 대한 권한 제어의 두 가지 형태는

  • "일반" 양식—해당 권한 유형에 대한 읽기 전용 기능을 제공합니다. 예를 들면 다음과 interface 같습니다.

  • 끝이 있는 양식 —해당 권한 유형에 대한 읽기 및 쓰기 -control 기능을 제공합니다. 예를 들면 다음과 interface-control 같습니다.

구성 계층 수준 및 명령문에 대한 액세스를 허용하는 권한 플래그의 경우 플래그가 해당 구성에 읽기 전용 권한을 부여합니다. 예를 들어, permissions flag는 계층 수준에 interface 읽기 전용 액세스를 [edit interfaces] 부여합니다. 플래그 형식은 해당 구성에 -control 대한 읽기-쓰기 액세스를 부여합니다. 앞의 예제를 사용하여 계층 interface-control 수준에 읽기-쓰기 [edit interfaces] 액세스 권한을 부여합니다.

표 1 계층 수준에서 Junos OS 구성할 수 있는 로그인 클래스 권한 permissions[edit system login class class-name] 플래그를 나열합니다.

권한 플래그는 특정 액세스 권한 집합을 부여합니다. 각 권한 플래그에는 액세스 권한을 부여하는 운영 모드 명령 및 구성 계층 수준 및 명령문이 나열됩니다.

표 1: 로그인 클래스 권한 플래그

권한 플래그

설명

액세스

구성 모드 및 작업 모드 명령으로 액세스 show configuration 구성을 볼 수 있습니다.

액세스 제어

계층 수준에서 액세스 정보를 보고 [edit access] 구성할 수 있습니다.

관리자

구성 모드 및 작동 모드 명령으로 사용자 계정 정보를 show configuration 볼 수 있습니다.

관리 제어

사용자 계정 정보를 보고 계층 수준에서 [edit system] 구성할 수 있습니다.

모든 제어

사용자 계정을 보고 계층 수준에서 [edit system login] 구성할 수 있습니다.

all

모든 운영 모드 명령 및 구성 모드 명령에 액세스할 수 있습니다. 모든 구성 계층 수준에서 구성을 수정할 수 있습니다.

명확한

명령어를 사용하여 다양한 네트워크 데이터베이스에 저장되는 네트워크에서 학습한 정보를 지우기(삭제) clear 할 수 있습니다.

구성

명령어를 사용하여 구성 모드를 입력할 수 configure 있습니다.

컨트롤

권한 플래그로 구성된 모든 작업-모든 제어 수준 작업을 -control 수행할 수 있습니다.

필드

필드 디버그 명령을 볼 수 있습니다. 디버깅 지원이 예약되어 있습니다.

방화벽

구성 모드에서 방화벽 필터 구성을 볼 수 있습니다.

방화벽 제어

계층 수준에서 방화벽 필터 정보를 [edit firewall] 보고 구성할 수 있습니다.

플로피

이동 가능한 미디어를 읽고 쓸 수 있습니다.

플로우 탭

구성 모드에서 플로우 탭 구성을 볼 수 있습니다.

플로우 탭 제어

구성 모드에서 플로우 탭 구성을 볼 수 있으며 계층 수준에서 플로우 탭 구성 정보를 [edit services flow-tap] 구성할 수 있습니다.

플로우 탭 운영

라우터 또는 스위치에 플로우 탭 요청을 할 수 있습니다. 예를 들어, DTCP(Dynamic Tasking Control Protocol) 클라이언트는 관리 사용자로 인증할 수 있는 Junos OS flow-tap-operation 있어야 합니다.

주:

flow-tap-operation 옵션은 권한 플래그에 포함되지 all-control 않습니다.

idp 프로파일러 작동

프로파일러 데이터를 볼 수 있습니다.

인터페이스

구성 모드 및 작동 모드 명령으로 인터페이스 show configuration 구성을 볼 수 있습니다.

인터페이스 제어

섀시, 서비스 등급(CoS), 그룹, 포우링 옵션 및 인터페이스 구성 정보를 볼 수 있습니다. 다음 계층 수준에서 구성을 편집할 수 있습니다.

  • [edit chassis]

  • [edit class-of-service]

  • [edit groups]

  • [edit forwarding-options]

  • [edit interfaces]

유지 관리

라우터 또는 스위치에서 로컬 셸을 시작하고 이 명령어를 사용하여 쉘에서 슈퍼유저가 되는 것을 비롯한 시스템 유지 보수를 수행할 수 있으며, 명령어를 사용해 라우터 또는 스위치를 중단 및 재부팅할 수 su rootrequest system 있습니다.

이상적인

, 및 명령어를 사용하여 pingssh 네트워크에 액세스할 수 telnettraceroute 있습니다.

pgcp-세션 미러링

세션 pgcp 미러링 구성을 볼 수 있습니다.

pgcp-세션 미러링-제어

세션 pgcp 미러링 구성을 수정할 수 있습니다.

재설정

명령어를 사용하여 소프트웨어 프로세스를 재시작할 수 있으며, 소프트웨어 프로세스가 계층 수준에서 활성화 또는 restart[edit system processes] 비활성화될지 여부를 구성할 수 있습니다.

롤백

이 명령을 사용하여 가장 최근에 커밋된 구성이 없는 이전에 커밋된 구성으로 rollback 돌아올 수 있습니다.

라우팅

구성 및 운영 모드에서 일반 라우팅, 라우팅 프로토콜 및 라우팅 정책 구성 정보를 볼 수 있습니다.

라우팅 제어

일반 라우팅, 라우팅 프로토콜 및 라우팅 정책 구성 정보를 볼 수 있으며, 계층 수준에서 일반 라우팅, 계층 수준에서 라우팅 프로토콜 및 계층 수준에서 라우팅 정책을 구성할 수 [edit routing-options][edit protocols][edit policy-options] 있습니다.

비밀

구성에서 암호 및 기타 인증 키를 볼 수 있습니다.

비밀 제어

구성에서 암호와 기타 인증 키를 볼 수 있으며 구성 모드에서 수정할 수 있습니다.

보안

구성 모드 및 작동 모드 명령으로 보안 show configuration 구성을 볼 수 있습니다.

보안 제어

계층 수준에서 보안 정보를 보고 [edit security] 구성할 수 있습니다.

셸을

명령어를 사용하여 라우터 또는 스위치에서 로컬 셸을 시작할 수 start shell 있습니다.

Snmp

구성 및 운영 모드에서 SNMP(Simple Network Management Protocol) 구성 정보를 볼 수 있습니다.

snmp-control

SNMP 구성 정보를 볼 수 있으며 계층 수준에서 SNMP 구성을 [edit snmp] 수정할 수 있습니다.

시스템

구성 및 운영 모드에서 시스템 수준 정보를 볼 수 있습니다.

시스템 제어

시스템 수준 구성 정보를 보고 계층 수준에서 [edit system] 구성할 수 있습니다.

추적

추적 파일 설정을 보고 추적 파일 속성을 구성할 수 있습니다.

추적 제어

추적 파일 설정을 수정하고 추적 파일 속성을 구성할 수 있습니다.

보기

다양한 명령을 사용하여 현재 시스템 전체의 라우팅 테이블, 프로토콜별 값 및 통계를 표시할 수 있습니다. 비밀 구성을 볼 수 없습니다.

뷰 구성

비밀, 시스템 스크립트 및 이벤트 옵션을 제외한 모든 구성을 볼 수 있습니다.

주:

권한을 가지는 사용자만 커밋 스크립트, 연산 스크립트 또는 이벤트 스크립트 maintenance 구성을 볼 수 있습니다.

로그인 클래스에 대한 개별 Junos OS 허용 또는 거부

기본적으로, 모든 상위 레벨 CLI 명령은 관련 액세스 권한 수준을 습니다. 사용자는 해당 명령만 실행하고 액세스 권한을 갖는 명령문만 볼 수 있습니다. 각 로그인 클래스의 경우, 명령문에 지정된 권한 수준에 따라 허용되거나 허용되지 않는 운영 및 구성 모드 명령의 사용을 명시적으로 거부하거나 허용할 수 permissions 있습니다.

권한 플래그는 운영 모드 명령 및 구성 계층 수준 및 명령문에 대한 사용자 액세스를 부여하는 데 사용됩니다. 계층 수준에서 사용자의 로그인 클래스에 특정 권한 플래그를 지정하면 해당 명령 및 구성 계층 수준 및 명령문에 사용자 액세스 권한을 [edit system login class] 부여할 수 있습니다. 모든 명령어 및 구성 명령문에 대한 액세스를 허용하려면 all permissions flag를 사용하여 구성 계층 수준 및 명령문에 대한 액세스를 허용하는 권한 플래그의 경우 플래그가 해당 구성에 읽기 전용 권한을 부여합니다. 예를 들어, permissions flag는 계층 수준에 interface 읽기 전용 액세스를 [edit interfaces] 부여합니다. 플래그 형식은 해당 구성에 -control 대한 읽기-쓰기 액세스를 부여합니다. 앞의 예제를 사용하여 계층 interface-control 수준에 읽기-쓰기 [edit interfaces] 액세스 권한을 부여합니다.

  • 사용자 문제 명령에 권한 플래그가 활성화되면 로그인 클래스 권한 비트가 확장된 정규 표현식보다 allrollbackrollback 우선합니다.

  • 네트워크 및 TACACS+ 서버의 사용자 명령을 허용 및 RADIUS 데 사용되는 표현식이 단순화되었습니다. 여러 명령어가 있는 단일한 긴 표현식 대신, 각 명령을 별도의 allow-commands=cmd1 cmd2 ... cmdn 표현식으로 지정할 수 있습니다. 이 새로운 구문은 , , 및 모든 사용자 권한 비트에 allow-configurationdeny-configurationallow-commandsdeny-commands 유효합니다.

  • 확장된 정규 표현식을 지정할 때 사용자는 명령을 load override 발행할 수 없습니다. 사용자는 , 및 구성 mergereplace 명령만 patch 발행할 수 있습니다.

  • 동일한 명령을 허용 및 거부하는 경우 권한은 에 의해 지정된 권한보다 allow-commandsdeny-commands 우선합니다. 예를 들어, 로그인 클래스 사용자가 이 명령을 사용하여 소프트웨어를 설치할 수 있도록 allow-commands "request system software add"deny-commands "request system software add"request system software add 허용됩니다.

  • , , 및 명령어를 포함하며, 정규 allow-commandsdeny-commandscommitloadrollbacksavestatusupdate 표현식도 포함할 수 있습니다.

  • 명령어에 대한 정규 표현식을 지정하고 2개의 서로 다른 변형 명령으로 표현하면 가장 긴 일치가 allow-commandsdeny-commands 항상 실행됩니다.

    예를 들어, 명령어에 대한 정규 표현식과 명령에 대한 정규 표현식을 지정하면 로그인 클래스에 할당된 사용자는 명령이 아닌 명령을 발행할 수 allow-commandscommit-synchronizedeny-commandscommitcommit synchronizecommit 있습니다. 이는 에 대해 지정되는 가장 긴 일치 일치이기 commit-synchronizecommitcommit-synchronize 때문에 allow-commands

    마찬가지로, 명령어에 대한 정규 표현식과 명령어에 대한 정규 표현식을 지정하면 로그인 클래스에 할당된 사용자는 명령이 아닌 명령을 발행할 수 allow-commandscommitdeny-commandscommit-synchronizecommitcommit-synchronize 있습니다. 이는 에 대해 지정되는 가장 긴 일치 일치이기 commit-synchronizecommitcommit-synchronize 때문에 deny-commands

예를 들면 다음과 같습니다. 액세스 권한 수준을 통해 사용자 권한 구성

이 예에서는 사용자 계정에 대한 권한을 보고 로그인 클래스에 대한 액세스 권한을 통해 사용자 권한을 구성하는 방법을 보여줍니다. 이를 통해 사용자는 해당 명령만 실행하고 액세스 권한을 갖는 명령문만 구성하고 볼 수 있습니다. 인증되지 않은 사용자가 네트워크 손상을 일으킬 수 있는 민감한 명령 및 명령문을 실행하거나 구성하는 것을 방지합니다.

요구 사항

이 예에서는 다음과 같은 하드웨어 및 소프트웨어 구성 요소를 활용합니다.

  • 하나의 주니퍼 네트웍스 디바이스

  • 1대의 TACACS+(RADIUS) 서버

  • Junos OS 디바이스에서 실행되는 주니퍼 네트웍스 구축

시작하기 전에 다음을 할 수 있습니다.

  • 장비와 TACACS+ 서버 간의 연결을 설정합니다.

    TACACS+ 서버 구성에 대한 자세한 내용은 TACACS+ 인증 구성을 참조하십시오.

  • 네트워크 디바이스의 로그인 클래스에 할당된 사용자 중 최소 주니퍼 네트웍스 구성합니다. 여러 로그인 클래스가 있을 수 있으며, 각기 다른 권한 구성을 가지며, 디바이스에 하나 이상의 사용자가 있을 수 있습니다.

개요

각 상위 수준 명령줄 인터페이스(CLI) 명령어와 각 Junos OS 관련된 액세스 권한 수준이 있습니다. 각 로그인 클래스의 경우, 권한 수준에 따라 허용되거나 허용되지 않는 운영 및 구성 모드 명령의 사용을 명시적으로 거부하거나 허용할 수 있습니다. 사용자는 해당 명령만 실행하고 액세스 권한을 갖는 명령문만 구성하고 볼 수 있습니다. 액세스 권한 수준을 구성하기 위해 계층 수준에서 permissions[edit system login class class-name] 명령문을 포함합니다.

각 로그인 클래스에 대한 액세스 권한은 명령문에 지정된 하나 이상의 권한 플래그로 permissions 정의됩니다. 권한 플래그는 운영 모드 명령어, 명령문 및 구성 계층에 대한 사용자 액세스를 부여하는 데 사용됩니다. 권한 플래그는 누적되지 않습니다. 따라서 각 로그인 클래스의 경우 정보를 표시하고 구성 모드를 입력하는 등 필요한 모든 권한 플래그를 viewconfigure 나열해야 합니다. 사용자 로그인 클래스에 특정 권한 플래그를 지정하면 해당 명령어, 명령문 및 구성 계층에 대한 사용자 액세스 권한을 부여할 수 있습니다. 모든 명령어 및 구성 명령문에 대한 액세스를 허용하려면 all permissions flag를 사용하여 권한 플래그는 권한 유형에 대한 읽기 전용("일반" 양식)과 읽기 및 쓰기(-제어로 끝나는 양식) 기능을 제공합니다.

주:

사용자가 롤백 권한 플래그를 활성화한 롤백 명령을 실행하면 로그인 클래스 권한 비트가 확장된 정규 표현식보다 all 우선합니다.

사용자 액세스 권한 수준을 구성하는 경우:

  1. 사용자 계정에 대한 권한을 본다.

    해당 권한에 대한 액세스 권한을 구성하기 전에 사용자 계정에 대한 권한을 볼 수 있습니다.

    사용자 권한을 보시고 계층 ? 수준에서 [edit] 다음을 입력합니다.

  2. 액세스 권한을 통해 사용자 권한을 구성합니다.

    장치에 로그인할 수 있는 모든 사용자는 로그인 클래스에 있어야 합니다. 각 로그인 클래스에 대해 관련 사용자가 장치에 로그인할 때 사용할 수 있는 액세스 권한을 구성할 수 있습니다.

    사용자 권한에 대한 액세스 권한 수준을 구성하려면 계층 수준에서 명령문을 포함하고 사용자 권한, 옵션 및 필수 권한 플래그를 permissions[edit system login class class-name]permissions 포함합니다.

구성

액세스 권한 수준을 통해 사용자 권한 구성

단계별 절차

액세스 권한을 구성하는 경우:

  1. 디바이스에서 사용자 계정에 사용할 수 있는 권한 목록을 확인합니다. 이 예에서 사용자 계정의 사용자 이름은 호스트입니다.

    출력에는 사용자 호스트에 대한 권한을 나열합니다. 사용자 권한에 대한 서로 다른 액세스 권한을 구성하여 커스터마이즈된 로그인 클래스를 만들 수 있습니다.

  2. 사용자 호스트가 SNMP 매개 변수만 구성하고 볼 수 있도록 액세스 권한 클래스를 구성합니다. 이 예에서는 이 로그인 클래스를 네트워크 관리라고 합니다. 네트워크 관리 로그인 클래스를 사용자 정의하려면 사용자 권한에 대한 SNMP 권한 configure 플래그를 포함합니다.

    여기에서 구성된 권한 플래그는 SNMP에 대한 읽기(snmp) 및 읽기 및 쓰기(snmp-control) 기능을 모두 제공하며, 이는 네트워크 관리 로그인 클래스에 대한 유일한 허용 액세스 권한입니다. 즉, SNMP 매개 변수의 구성 및 보기 이외에 다른 모든 액세스 권한은 거부됩니다.

결과

구성 모드에서 명령을 입력하여 구성을 show system login 확인 출력이 의도한 구성을 표시하지 않는 경우 이 예제의 지침을 반복하여 구성을 수정합니다.

확인

새 로그인 클래스에 할당된 사용자 이름으로 로그인하고 구성이 제대로 작동하고 있는지 확인합니다.

SNMP 구성 검증

목적

SNMP 구성을 실행할 수 있는지 검증합니다.

실행

구성 모드에서 계층 수준에서 기본 SNMP [edit snmp] 명령을 실행합니다.

의미

네트워크 관리 로그인 클래스에 할당된 사용자 호스트는 이 클래스에 지정된 권한 플래그에는 snmp(읽기 및 쓰기 기능) 권한 비트와 snmp-control(읽기 및 쓰기 기능) 권한 비트가 모두 포함되어 SNMP 매개 변수를 구성할 수 있습니다.

비SNMP 구성 검증

목적

네트워크 관리 로그인 클래스에 대해 비 SNMP 구성이 거부된지 확인합니다.

실행

구성 모드에서 인터페이스 구성과 같은 비 SNMP 구성을 실행합니다.

운영 모드 명령어, 구성 명령문 및 계층 Junos OS 허용 및 거부를 위한 정규 표현식

이 주제에는 다음 섹션이 포함되어 있습니다.

정규 표현식 이해

확장된 정규 표현식을 사용하여 어떤 운영 모드 명령어, 구성 명령문 및 계층이 거부되거나 허용되는지 지정할 수 있습니다. 인증 서버 구성에서 벤더별 allow/deny-commandsallow/deny-configuration,allow/deny-commands-regexpsallow/deny-configuration-regexp TACACS+ 또는 주니퍼 네트웍스 [edit system login class class-name] TACACS+ 또는 RADIUS 속성을 지정하여 계층 수준에서 로컬 및 명령문에 명시합니다.

주:

릴리스 18.Junos OS 시작으로, 및 명령문은 allow-commands-regexps TACACS+ 인증을 위해 deny-commands-regexps 지원됩니다.

로컬 및 원격 인증 구성 간의 차이점은 정규 표현식 명령문이 실행되는 패턴입니다. 원격 구성에서는 로컬 인증 구성에서 문자열을 사용하여 여러 정규 표현식을 지정할 수 있으며, 개별 문자열에 정규 표현식을 분할하고 지정해야 합니다. 인증 매개 변수가 원격 및 로컬로 구성되면 TACACS+ 또는 RADIUS 동안 수신되는 정규 표현식은 로컬 장치에서 사용할 수 있는 모든 정규 표현식과 병합됩니다.

, 또는 명령문을 사용하여 로컬 구성에서 여러 정규 표현식을 지정할 때 괄호 내에서 정규 표현식을 구성하고 파이프 기호를 사용하여 allow-configurationdeny-configurationallow-commandsdeny-commands 분리합니다. 전체 표현은 이중 인용문으로 동봉됩니다. 예를 들어, 다음과 같은 구문을 사용하여 여러 allow-commands 매개 변수를 지정할 수 있습니다.

인증 서버에서 원격으로 구성된 동일한 표현은 다음과 같은 구문을 사용합니다.

, 또는 명령문을 사용하여 로컬 구성에서 여러 정규 표현식을 지정할 때 정규 표현식은 2개의 Quote 내에서 구성되어 공간 운영업체를 사용하여 allow-configuration-regexpsdeny-configuration-regexpsallow-commands-regexpsdeny-commands-regexps 분리됩니다. 완전한 표현이 사각 브래킷에 동봉되어 있습니다. 예를 들어, 다음과 같은 구문을 사용하여 여러 allow-commands 매개 변수를 지정할 수 있습니다.

인증 서버에서 원격으로 구성된 동일한 표현은 다음과 같은 구문을 사용합니다.

표 2 정규 표현식을 사용하여 로컬 및 원격 인증 구성을 차별화합니다.

표 2: 정규 표현식을 사용한 로컬 및 원격 인증 구성 샘플

로컬 구성

원격 구성

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.*"
        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"
    }
}
주:
  • 다음 3가지 명령을 발행하여 로컬 또는 원격으로 NETCONF 모드에 대한 액세스를 허용해야 합니다. xml-modenetconf, 및 need-trailer 를 통해

  • 명령문을 사용하면 다른 모든 구성을 명령문을 사용하여 deny-configuration = “.*”allow-configuration 허용해야 합니다. 이는 명령문에 대한 허용된 정규 표현식 버퍼 제한에 영향을 미칠 allow-configuration 수 있습니다. 이 제한을 초과하면 허용된 구성이 작동하지 않을 수 있습니다. 이러한 정규 표현식 버퍼 크기 제한은 Junos OS Release 14.1x53-D40, 15.1 및 16.1에서 증가되었습니다.

정규 표현식 지정

경고:

명령어 및 구성 명령문에 대해 정규 표현식을 지정하는 경우, 잘못된 구문을 사용하여 정규 표현식이 원하는 결과를 생성하지 않을 수 있습니다. 이는 어떠한 오류도 없이 커밋됩니다.

명령어 및 구성 명령문에 대한 정규 표현식은 전체 명령문 또는 명령문을 실행하는 방식과 동일한 방식으로 지정해야 합니다. 명령어 계층 및 명령에 대한 액세스 권한을 구성하기 위한 정규 표현식을 표 3[edit interfaces][edit vlans]delete interfaces 나열합니다.

표 3: 정규 표현식 지정

문을

정규식

구성 노트

[edit interfaces]

인터페이스에 set 대한 명령어는 다음과 같이 실행됩니다.

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

명령문은 자체적으로 불완전하기 때문에 명령문을 실행하는 set interfacesunit 옵션을 요구합니다.

따라서 구성을 거부하는 데 필요한 정규 표현식은 명령문 변수 대신 운영자가 있는 전체 실행 문자열을 set interfaces.* 지정해야 합니다.

[edit system login class class-name]
user@host# set permissions configure
user@host# set deny-configuration "interfaces .* unit .*"
  • 운영자는 특정 명령 또는 명령문의 다음 지점에서 모든 .* 것을 나타 내포합니다. 이 예제에서는 인터페이스 이름을 모든 단위 값을 나타 내포합니다.

  • 명령문만 지정하는 것이 올바르지 않을 뿐만 아니라 지정된 로그인 클래스에 대한 인터페이스 구성에 대한 액세스를 deny-configuration "interfaces .*" 거부하지 않습니다.

  • 기타 유효한 옵션은 다음과 같은 정규 표현식에 포함될 수 있습니다.

    [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.* .*"
    

    Note:이 예제의 정규 표현식은 mem 키워드로 시작하는 여러 문자열이 지정된 정규 표현식에 포함될 것으로 예상되는 경우 mem.* 사용됩니다. 하나의 문자열만 포함될 것으로 member 예상되는 경우 정규 member .* 표현식이 사용됩니다.

delete interfaces

인터페이스에 delete 대한 명령어는 다음과 같이 실행됩니다.

[edit]
user@host# delete interfaces interface-name

명령문은 자체적으로 실행할 수 있으며 추가 명령문을 delete interfaces 작성해야 할 필요가 없습니다.

따라서, 명령문 거부에 필요한 정규 표현식은 delete interfaces 다음을 지정해야 합니다.

[edit system login class class-name]
user@host# set permissions configure
user@host# set allow-configuration "interfaces .*"
user@host# set deny-configuration "interfaces .*"
  • 운영자는 특정 명령 또는 명령문의 다음 지점에서 모든 .* 것을 나타 내포합니다. 이 예에서는 인터페이스 이름을 나타 내포하고 있습니다.

  • 정규 표현식을 적용하려면 지정된 로그인 클래스가 정규 표현식을 사용하여 인터페이스 계층에 대한 구성 권한을 deny-configuration "interfaces .*"allow-configuration "interfaces .*" 허용해야 합니다.

[edit vlans]

VLANS에 대한 명령어는 다음과 set 같이 실행됩니다.

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

여기에서 명령문은 자체적으로 불완전하기 때문에 명령문을 실행하는 옵션을 set vlansvlan-id 요구합니다.

따라서, 구성을 허용하는 데 필요한 정규 표현식은 명령문 변수 대신 운영자가 있는 전체 실행 문자열을 set vlans.* 지정해야 합니다.

[edit system login class class-name]
user@host# set permissions configure
user@host# set allow-configuration "vlans .* vlan-id .*"
  • 운영자는 특정 명령 또는 명령문의 다음 지점에서 모든 .* 것을 나타 내포합니다. 이 예에서는 VLAN ID가 있는 모든 VLAN 이름을 나타 내포합니다.

  • 명령문 계층 하의 다른 유효한 옵션은 다음과 같은 정규 [edit vlans] 표현식에 포함될 수 있습니다.

    [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 .*" ]
    

정규 표현식 운영자

표 4 운영 및 구성 모드를 허용하거나 거부하는 데 사용할 수 있는 일반적인 정규 표현식 운영자가 나열되어 있습니다.

명령 정규 표현식은 POSIX 1003.2에 정의된 확장(최신) 정규 표현식을 구현합니다.

표 4: 일반 정규 표현식 운영자

Operator

일치

예제

|

파이프로 분리된 두 개 이상의 용어 중 하나 각 용어는 파이프와 인접한 괄호 사이에 공백이 없는 괄호 안에 완전한 독립형 표현이 되어야 합니다.

[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)"

위 구성을 통해 테스트 로그인 클래스에 할당된 사용자는 명령문에 지정된 명령어에만 운영 모드 액세스가 제한되고 명령문에 지정된 계층 수준을 제외한 구성 모드에 액세스할 수 allow-commandsdeny-configuration 있습니다.

^

표현의 시작에는 명령이 어디에서 시작될지, 모호한 것이 있을 수 있습니다.

[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)"

위 구성을 통해 테스트 로그인 클래스에 할당된 사용자는 운영 및 구성 모드에서 인터페이스 구성을 구성하고 보는 데 액세스할 수 있습니다. 명령문은 시작되는 명령 및 allow-commands 키워드에 show 대한 액세스를 monitor 지정합니다.

첫 번째 필터의 경우, 지정된 명령어에는 show logshow interfaces , 및 show policer 명령이 포함됩니다. 두 번째 필터는 키워드(예: 또는 명령)에서 시작하는 모든 monitormonitor interfaces 명령을 monitor traffic 지정합니다.

$

명령 끝에 있는 문자입니다. 해당 지점까지 정확하게 일치해야 하는 명령을 나타 내는 데 사용됩니다.

[edit system login class test]
user@host# set permissions interface
user@host# set allow-commands "(show interfaces$)"

위 구성을 통해 테스트 로그인 클래스에 할당된 사용자는 구성 모드 및 인터페이스 사용자 권한에 따라 운영 모드 명령으로 인터페이스 구성을 볼 show configuration 수 있습니다. 그러나 명령문에 지정된 정규 표현식은 사용자만 명령어를 실행하도록 제한하고, 또는 에 대한 명령 확장자에 대한 allow-commandsshow interfaces 액세스를 show interfaces detailshow interfaces extensive 거부합니다.

[ ]

문자 또는 숫자 범위. 범위의 시작과 끝을 분리하기 위해 하이픈(- )을   사용하십시오.

[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 .*" ]

위 구성을 통해 테스트 로그인 클래스에 할당된 사용자는 운영자 수준의 사용자 권한을 가지며, 지정된 범위의 인터페이스 이름 및 유닛 번호(0 ~9) 내에서 인터페이스를 구성할 수 있습니다.

( )

평가할 완전한 독립형 표현식을 나타내는 명령어 그룹 그 결과는 전체 표현식의 일부로 평가됩니다. 괄호는 설명한처럼 파이프 오퍼레이터와 함께 사용되어야 합니다.

[edit system login class test]
user@host# set permissions all
user@host# set allow-commands "(clear)|(configure)"
user@host# deny-commands "(mtrace)|(start)|(delete)"

위 구성을 통해 테스트 로그인 클래스에 할당된 사용자는 Superuser 수준의 권한을 가하고 명령문에 지정된 명령어에 액세스할 수 allow-commands 있습니다.

*

제로 이상의 용어.

[edit system login class test]
user@host# set permissions configure
user@host# set deny-configuration "(system login class m*)"

위 구성에서는 로그인 사용자 이름과 함께 시작되는 테스트 로그인 클래스에 할당된 사용자 구성 액세스가 m 거부됩니다.

+

1개 이상의 용어.

[edit system login class test]
user@host# set permissions configure
user@host# set deny-configuration "(system login class m+)"

위 구성에서는 로그인 사용자 이름과 함께 시작되는 테스트 로그인 클래스에 할당된 사용자 구성 액세스가 m 거부됩니다.

.

공백을 제외한 모든 문자 " "

[edit system login class test]
user@host# set permissions configure
user@host# set deny-configuration "(system login class m.)"

위 구성에서는 로그인 사용자 이름과 함께 시작되는 테스트 로그인 클래스에 할당된 사용자 구성 액세스가 m 거부됩니다.

.*

지정된 시점부터 모든 것.

[edit system login class test]
user@host# set permissions configure
user@host# set deny-configuration "(system login class m .*)"

위 구성에서는 로그인 사용자 이름과 함께 시작되는 테스트 로그인 클래스에 할당된 사용자 구성 액세스가 m 거부됩니다.

마찬가지로, deny-configuration "protocols .*" 명령문은 계층 수준에 있는 모든 구성 액세스를 [edit protocols] 거부합니다.

주:
  • *, +. 운영은 을 사용하여 달성할 수 .* 있습니다.

  • 및 명령문은 각각 모든 운영 모드 명령 및 구성 계층에 대한 deny-commands .*deny-configuration .* 액세스를 거부합니다.

주:

Junos OS 정규 표현식 ! 운영자는 지원하지 않습니다.

정규 표현식 예

표 5 2개의 구성 계층 하에서 구성 옵션을 허용하는 데 사용되는 정규 표현식을 나열하고 정규 표현식을 지정하는 [edit system ntp server][edit protocols rip] 예입니다.

주:

표 5 모든 구성 명령문 및 계층에 대한 모든 정규 표현식 및 키워드에 대한 포괄적인 목록을 제공하지 않습니다. 표에 나열된 정규 표현식은 Junos OS Release 16.1에서 지원하며, 명령문 계층에 한해 [edit system ntp server][edit protocols rip] 검증됩니다.

표 5: 정규 표현식 예

명령문 계층

정규식

허용 구성

거부된 구성

[edit system ntp server]

     

키 번호

[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

  • 서버 IP 및 키

  • 버전

  • 선호

버전 버전 번호

[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

  • 서버 IP 및 버전

  • key

  • 선호

선호

[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

  • 서버 IP를 선호하며

  • key

  • 버전

[edit protocols rip]

     

메시지 크기(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 .*" ]
  • 메시지 크기

  • 지표 인

  • 경로 타임아웃

  • 업데이트 간격

지표 인 메트릭 인

[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 .*" ]
  • 지표 인

  • 메시지 크기

  • 경로 타임아웃

  • 업데이트 간격

경로 타임아웃 경로 시간 아웃

[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 .*" ]
  • 경로 타임아웃

  • 메시지 크기

  • 지표 인

  • 업데이트 간격

업데이트 간격 업데이트 간격

[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 .*" ]
  • 업데이트 간격

  • 메시지 크기

  • 지표 인

  • 경로 타임아웃

허용 구성 및 거부 구성 명령문을 사용하는 액세스 권한 정의 예

다음과 같은 유형의 명령문을 조합하여 액세스 권한을 정의할 수 있습니다.

  • 권한 플래그

  • allow-configurationdeny-configuration 명령문

권한 플래그는 사용자 또는 로그인 클래스가 액세스 및 제어할 수 있는 범위의 더 큰 경계를 정의합니다. 및 명령문은 권한 플래그보다 우선하며 관리자가 사용자가 액세스할 수 있는 권한을 정확하게 제어할 allow-configurationdeny-configuration 수 있도록 합니다.

이 주제는 이러한 진술을 사용하는 로그인 클래스 구성의 일련의 예시를 표시해 사용 및 명령문을 이용한 액세스 권한 allow-configurationdeny-configuration 정의에 대해 설명합니다. 예제 1에서 3은 권한 플래그와 명령문을 모두 사용하여 사용자가 무언가를 제외한 모든 정보에 액세스할 수 있도록 하는 로그인 deny-configuration 클래스를 생성합니다. 각 또는 명령문은 허용 또는 거부되는 하나 이상의 정규 표현식으로 allow-configurationdeny-configuration 구성됩니다.

권한 비트와권한 플래그가 서로 교환됩니다.

예 1

사용자가 telnet 매개 변수를 제외한 모든 것을 구성할 수 있는 로그인 클래스를 생성합니다.

  1. 사용자의 로그인 클래스 권한 비트를 all 에 설정합니다.
  2. 다음 deny-configuration 문장을 포함합니다.

예제 2

로그인 클래스를 생성하기 위해 사용자가 "m"으로 시작하는 이름의 로그인 클래스 내에 아무것도 없는 모든 것을 구성할 수 있도록 합니다.

  1. 사용자의 로그인 클래스 권한 비트를 all 에 설정합니다.

  2. 다음 deny-configuration 문장을 포함합니다.

예 3

다음 예제에서는 사용자가 구성을 편집하거나 명령(예:) 또는 계층 수준에서 명령을 발행하지 못하도록 방지하는 권한 비트가 있는 로그인 allcommit[edit system login class] 클래스의 [edit system services] 생성을 보여줍니다.

사용자가 계층 수준 또는 계층 수준에서 제외한 모든 것을 구성할 수 있는 로그인 [edit system login class][edit system services] 클래스를 생성합니다.

  1. 사용자의 로그인 클래스 권한 비트를 all 에 설정합니다.

  2. 다음 deny-configuration 문장을 포함합니다.

다음 두 예에서는 명령문과 명령문을 사용하여 계층 수준에 대한 권한을 서로 역으로 결정하는 allow-configurationdeny-configuration 방법을 보여 [edit system services] 줍니다.

예 4

계층 수준과 계층 수준에서만 전체 구성 권한을 부여할 수 있는 로그인 [edit system services][edit system services] 클래스를 생성하려면 다음을 제공합니다.

  1. 사용자의 로그인 클래스 권한 비트를 configure 에 설정합니다.

  2. 다음 allow-configuration 문장을 포함합니다.

예 5

계층 수준을 제외한 모든 구성 모드 계층에 대한 사용자 전체 권한을 허용하는 로그인 [edit system services] 클래스를 생성하려면 다음을 제공합니다.

  1. 사용자의 로그인 클래스 권한 비트를 all 에 설정합니다.

  2. 다음 deny-configuration 문장을 포함합니다.

예를 들면 다음과 같습니다. 일반 표현식을 사용하는 가산 로직을 사용하여 액세스 권한을 지정

이 예에서는 정규 표현식을 사용하여 구성 액세스 권한을 설정할 때 가산 로직을 사용하는 방법을 보여줍니다.

구성

단계별 절차

정규 표현식에 가산 로직을 사용하려면:

  1. 하나 이상의 개별 구성 모드 계층을 명시적으로 허용하기 위해 허용되는 정규 표현식으로 구성된 계층 수준에서 allow-configuration-regexps[edit system login class class-name] 명령문을 포함합니다.

  2. 하나 이상의 사용자에게 로그인 클래스를 할당합니다.

  3. 정규 표현식에 가산 로직을 활성화합니다.

  4. 변경 사항을 커밋합니다.

    이 로그인 클래스를 할당하는 사용자는 명령문에 포함된 구성 계층에 액세스할 수 있지만 다른 사용자는 allow-configuration-regexps 액세스할 수 없습니다.

요구 사항

이 예에서는 다음과 같은 하드웨어 및 소프트웨어 구성 요소를 활용합니다.

  • 1 주니퍼 네트웍스 J Series, M Series, MX Series 또는 T 시리즈 장치

  • Junos OS Release 16.1 이상

    • 로그인 클래스에 하나 이상의 사용자가 할당되어야 합니다.

    • 여러 로그인 클래스가 있을 수 있으며, 각기 다른 권한 구성을 가지며, 디바이스에 하나 이상의 사용자가 있을 수 있습니다.

개요

시스템에 구성을 변경할 수 있는 사용자와 특히 변경할 수 있는 기능을 제어하려면 지명된 사용자 클래스의 사용자가 액세스할 수 있도록 허용되는 구성 계층의 특정 부분을 나타내는 정규 표현식을 생성할 수 있습니다. 예를 들어 사용자가 수정할 수 있는 라우팅 인스턴스 그룹을 지정하는 정규 표현식을 생성하고 사용자가 다른 라우팅 인스턴스나 다른 구성 수준으로 변경하지 못하도록 방지할 수 있습니다.

및 명령문을 사용하여 정규 allow-configuration-regexpsdeny-configuration-regexps 표현식을 구성합니다. 기본적으로, 명령문은 적용되는 지명 사용자 클래스의 사용자 명령문보다 deny-configuration-regexpsallow-configuration-regexps 우선합니다.

구성 계층이 명명된 사용자 클래스에 대한 명령문에 나타나면 명령문의 내용에 관계없이 사용자에게 보여지지 deny-configuration-regexpsallow-configuration-regexps 않습니다. 구성 계층이 명령문에 나타나지 않는 경우 명령문에 나타나거나 사용자 클래스에 대해 구성된 명령문이 없는 경우 deny-configuration-regexpsallow-configuration-regexpsallow-configuration-regexps 표시됩니다.

선택적으로 이 기본 동작을 변경할 수 있으므로 가산 로직(즉, 기본적으로 모든 것을 거부하고 지정된 일부만 허용)이 정규 표현식에서 사용됩니다. 가산 로직이 활성화되면, 명명된 사용자 클래스에 대한 명령문에 포함되지 않는 한 모든 구성 계층이 거부될 수 있도록 기존 정규 표현식의 동작이 allow-configuration-regexps 변경됩니다.

가산 로직과 정규 표현식 사용

목적

이 섹션에서는 가산 로직을 사용하여 시스템에 적합한 구성을 만들 수 있는 아이디어를 제공하는 정규 표현식 예제를 제공합니다.

특정 라우팅 인스턴스 허용

다음 예제 로그인 클래스에는 이름에서 시작하는 라우팅 인스턴스의 구성을 허용하는 정규 표현식이 CUST-VRF-CUST-VRF-1CUST-VRF-25CUST-VRF-100 포함됩니다(예:

다음 명령문이 구성에 포함되는 경우 사용자가 다른 라우팅 인스턴스를 구성하지 못하도록 방지하고 비 라우팅 인스턴스 구성 계층에 대한 액세스를 거부합니다.

피어 BGP(Border Gateway Protocol) 구성만 허용

다음 예의 로그인 클래스에는 다른 피어(BGP(Border Gateway Protocol))의 구성을 허용하는 정규 표현식이 포함되어 있습니다.

다음 명령문이 구성에 포함되는 경우 명령문의 삭제 또는 비가동과 같은 다른 변경을 사용자가 방지할 BGP(Border Gateway Protocol) 있습니다.

확인

액세스 권한을 올바르게 설정한지 확인하려면 다음을 제공합니다.

  1. 로그인 클래스를 구성하고 변경을 커밋합니다.

  2. 로그인 클래스를 사용자 이름에 할당합니다.

  3. 새 로그인 클래스에 할당된 사용자 이름으로 로그인합니다.

  4. 허용된 구성을 수행하려고 시도합니다.

    • 허용된 계층 수준 및 정규 표현식을 구성 변경을 수행할 수 있습니다.

    • 다른 모든 계층은 보이지 않습니다.

    • 허용 또는 거부된 표현식은 명령문에 부여된 권한보다 우선해야 permissions 합니다.

예를 들면 다음과 같습니다. 운영 모드 명령에 대한 액세스 권한으로 사용자 권한 구성

이 예에서는 사용자 지정 로그인 클래스를 구성하고 운영 모드 명령에 액세스 권한을 할당하는 방법을 보여줍니다. 이를 통해 사용자 정의된 로그인 클래스의 사용자는 액세스 권한을 지정한 운영 명령만 실행할 수 있습니다. 인증되지 않은 사용자가 네트워크 손상을 일으킬 수 있는 민감한 명령을 실행하는 것을 방지합니다.

요구 사항

이 예에서는 다음과 같은 하드웨어 및 소프트웨어 구성 요소를 활용합니다.

  • 하나의 주니퍼 네트웍스 디바이스

  • 1대의 TACACS+(RADIUS) 서버

  • Junos OS 디바이스에서 실행되는 주니퍼 네트웍스 구축

시작하기 전에 다음을 할 수 있습니다.

  • 장비와 TACACS+ 서버 간의 TCP 연결을 설정합니다. 서버가 RADIUS 경우 장치와 RADIUS 연결을 설정합니다.

    TACACS+ 서버 구성에 대한 자세한 내용은 TACACS+ 인증 구성을 참조하십시오.

  • 네트워크 디바이스의 로그인 클래스에 할당된 사용자 중 최소 주니퍼 네트웍스 구성합니다. 여러 로그인 클래스가 있을 수 있으며, 각기 다른 권한 구성을 가지며, 디바이스에 하나 이상의 사용자가 있을 수 있습니다.

개요 및 토폴로지

각 상위 수준 명령줄 인터페이스(CLI) 명령어와 각 Junos OS 관련된 액세스 권한 수준이 있습니다. 각 로그인 클래스의 경우, 권한 수준에 따라 허용되거나 허용되지 않는 운영 및 구성 모드 명령의 사용을 명시적으로 거부하거나 허용할 수 있습니다. 사용자는 해당 명령만 실행하고 액세스 권한을 갖는 명령문만 구성하고 볼 수 있습니다. 액세스 권한 수준을 구성하기 위해 계층 수준에서 permissions[edit system login class class-name] 명령문을 포함합니다.

각 로그인 클래스에 대한 액세스 권한은 명령문에 지정된 하나 이상의 권한 플래그로 permissions 정의됩니다. 이 외에도, 다음 명령문을 사용하여 확장된 정규 표현식을 지정할 수 있습니다.

  • allow-commands 및 —작동 모드 명령에 대한 액세스 허용 또는 deny-commands 거부

  • allow-configuration 및 —특정 구성 계층에 대한 액세스만 deny-configuration 허용하거나 거부합니다.

  • allow-configuration-regexps 및 —정규 표현식 문자열을 사용하여 특정 구성 계층에 대한 액세스를 deny-configuration-regexps 허용하거나 거부합니다.

  • allow-commands-regexps 및 —(TACACS+ 권한 부여만 해당) 정규 표현식 문자열을 사용하여 특정 명령에 대한 액세스를 허용하거나 deny-commands-regexps 거부합니다.

위 명령문은 개별 운영 모드 명령어, 구성 명령문 및 계층에 대한 사용자의 액세스 권한을 정의합니다. 이러한 명령문은 사용자를 위해 설정된 로그인 클래스 권한보다 우선합니다.

Configuration Notes

액세스 권한을 갖는 , 및 명령문을 구성할 때 allow-commandsdeny-commandsallow-configurationdeny-configuration 다음을 고려합니다.

  • 각 로그인 클래스에 한 번만 허용/거부 명령문을 포함할 수 있습니다.

  • 명령문과 명령문, 또는 명령문 모두에서 동일한 명령이 구성된 경우, 허용 작업은 Deny statement보다 allow-commandsdeny-commandsallow-configurationdeny-configuration 우선합니다.

    예를 들어, 로그인 클래스 테스트에 할당된 사용자가 명령어에 포함된지만, 다음과 같은 구성을 통해 명령을 사용하여 소프트웨어를 설치할 request system software adddeny-commands 수 있습니다.

    예를 들어, 로그인 클래스 테스트에 할당된 사용자는 다음과 같은 구성을 통해 구성 계층에 액세스할 수 있습니다. 명령문에는 다음이 포함되어 [edit system services]deny-configuration 있습니다.

  • 2개의 서로 다른 변형 명령어에 대한 정규 표현식과 명령문을 지정하면 가장 긴 일치가 allow-commandsdeny-commands 항상 실행됩니다.

    예를 들어, 다음 구성의 경우, 테스트 로그인 클래스에 할당된 사용자는 명령이 아닌 명령을 실행할 commit synchronizecommit 있습니다. 이는 에서 가장 긴 일치 및 에 대해 commit-synchronizecommitcommit-synchronize 지정되어 있기 때문에 allow-commands

  • 규칙 표현식 및 명령문에는 , , 및 명령어를 allow-commandsdeny-commands 포함할 수 commitloadrollbacksavestatusupdate 있습니다.

  • 명령문을 사용하여 구성 모드 계층 또는 정규 표현식을 명시적으로 허용하면 명령문을 사용하여 설정된 일반 권한에 allow-configurationpermissions 추가됩니다. 마찬가지로, 명령문을 사용하여 구성 모드 계층 또는 정규 표현식을 명시적으로 거부하면 명령문에서 제공되는 기본 사용 권한에서 지정된 구성 모드 계층에 대한 권한을 deny-configurationpermissions 제거합니다.

    예를 들어, 다음 구성의 경우, 로그인 클래스 사용자는 계층 수준에서 구성을 편집하고 문제 구성 모드 [edit system services] 명령(예: commitconfigure

    마찬가지로, 다음 구성의 경우, 로그인 클래스 사용자는 구성 모드 명령(예:) 실행 또는 계층 수준에서 구성 수정을 제외하고 모든 권한 플래그에서 허용되는 모든 작업을 수행할 commit[edit system services] 있습니다.

  • 진술은 진술과 상호 배타적이며, 진술은 진술과 상호 allow/deny-configurationallow/deny-configuration-regexpsallow-deny-commandsallow/deny-commands-regexps 배타적입니다. 예를 들어 동일한 로그인 클래스에서 모두 allow-configurationallow-configuration-regexps 구성할 수 없습니다.

  • 명령문을 사용하는 기존 구성이 있는 경우, 명령문과 동일한 구성 옵션을 사용하는 경우, 검색 및 일치 메소드가 이들 명령문의 두 양식에 따라 다르기 때문에 동일한 결과를 생성하지 않을 수 allow/deny-configurationallow/deny-commandsallow/deny-configuration-regexpsallow/deny-commands-regexps 있습니다.

  • 구성 계층의 일부에 대한 액세스 권한을 정의하려면 확장 정규 표현식에서 해당 및 명령문을 사용하여 전체 경로를 allow-configurationdeny-configuration 지정합니다. 2개 이상의 표현식을 파이프(|) 기호와 연결하는 확장된 정규 표현식을 중심으로 괄호를 사용합니다.

    몇 가지 예를 들면 다음과 같습니다.

  • 정규 표현식에 공백, 오퍼레이터 또는 와일드카드 문자가 포함된 경우, 표현식을 견적 마크에 동봉합니다. 정규 표현식은 대소문자에 구분되지 않습니다. 예를 들어, 를 예로 들어 allow-commands "show interfaces" 보겠습니다.

  • set, logcount와 같은 수정자는 일치할 정규 표현식 문자열 내에서 지원되지 않습니다. 수정자를 사용하는 경우, 그 어떤 것도 일치하지 않습니다.

    잘못된 구성:

    올바른 구성:

  • 문을 사용하여 복잡한 정규 표현식을 지정할 때 앵커가 allow-commands 필요합니다.

    몇 가지 예를 들면 다음과 같습니다.

  • 명령문과 명령문을 사용하여 확장 정규 표현식을 지정할 때, 파이프(|) 기호로 분리된 각 표현식은 완벽한 독립형 표현식이 되어야 합니다. 괄호 안에 동봉되어야 allow/deny-commandsallow/deny-configuration 합니다. 괄호와 함께 분리되고 파이프(|) 기호와 연결된 정규 표현식 사이의 공백을 사용하지 않습니다.

    몇 가지 예를 들면 다음과 같습니다.

  • 또는 명령문을 사용하여 확장 정규 표현식을 지정할 때, 각 표현식은 따옴표(")에 동봉되어 있으며 공간별로 분리된 각 표현식은 각괄호 안에 allow/deny-configuration-regexpsallow/deny-commands-regexps 동봉되어야 합니다[]

    몇 가지 예를 들면 다음과 같습니다.

  • 정규 표현식을 표현할 때 * 와일드카드 문자를 사용할 수 있습니다. 그러나 정규 표현식의 일부로 사용되어야 합니다. [ * 또는 [.* ] 단독으로는 사용할 수 없습니다.

  • 명령문(인터페이스(설명)을 사용하여 구성할 수 allow-configuration|. *)) 정규 표현식을 정규 표현식으로 평가하여 allow-configuration = .* 정규 표현식으로 평가합니다.

  • 허용 또는 거부될 수 있는 많은 정규 표현식을 구성할 수 있습니다. 거부되는 정규 표현식은 허용되는 구성보다 우선합니다.

토폴로지

그림 1: TACACS+ 서버 인증 구성TACACS+ 서버 인증 구성

그림 1 라우터 R1이 주니퍼 네트웍스 TACACS+ 서버와 함께 설정된 TCP 연결을 보여주는 단순한 토폴로지가 설명되어 있습니다.

이 예제에서 R1은 3개의 사용자 정의된 로그인 클래스(Class1, Class2, Class3)로 구성됩니다. 이는 명령문과 명령문을 사용하여 확장된 정규 표현식을 사용하는 액세스 권한을 allow-commandsdeny-commands 지정합니다.

각 로그인 클래스의 목적은 다음과 같습니다.

  • Class1—명령문만 사용하여 사용자에 대한 allow-commands 액세스 권한을 정의합니다. 이 로그인 클래스는 운영자 수준의 사용자 권한을 제공하며, 장비 재부팅에만 인증을 제공해야 합니다.

  • Class2—명령문만 사용하여 사용자에 대한 deny-commands 액세스 권한을 정의합니다. 이 로그인 클래스는 운영자 수준의 사용자 권한을 제공하며 명령에 대한 액세스를 set 거부해야 합니다.

  • Class3—명령문과 명령문 모두를 사용하여 사용자에 대한 액세스 allow-commandsdeny-commands 권한을 정의합니다. 이 로그인 클래스는 Superuser 수준의 사용자 권한을 제공하며 인터페이스 액세스 및 장비 정보 보기에 대한 권한 부여를 제공해야 합니다. 또한, 액세스 및 명령도 editconfigure 거부해야 합니다.

라우터 R1에는 Class1, Class2 및 Class3 로그인 클래스가 각각 서로 다른 3개의 사용자(User1, User2 및 User3)가 할당되어 있습니다.

구성

CLI 빠른 구성

이 예제를 신속하게 구성하려면 다음 명령을 복사하여 텍스트 파일에 붙여넣기하고, 라인 끊기를 제거하고, 네트워크 구성과 일치하는 데 필요한 세부 정보를 변경하고, 계층 수준에서 명령어를 CLI 입력한 다음 구성 모드에서 [edit]commit 입력합니다.

R1

라우터 R1에 대한 인증 매개 변수 구성

단계별 절차

다음 예제에서는 구성 계층의 다양한 수준을 탐색해야 합니다. 네트워크의 네트워크 CLI 대한 자세한 내용은 CLI 사용자 가이드의 CLI 편집기사용 CLI 참조하십시오.

라우터 R1 인증을 구성하는 경우:

  1. R1에 대한 인증 순서를 구성합니다. 이 예에서는 TACACS+ 서버 인증이 먼저, 그 다음으로 RADIUS 서버 인증을 한 다음 로컬 암호를 들 수 있습니다.

  2. TACACS+ 서버로 R1 연결을 설정합니다.

  3. 서버 RADIUS 매개 변수를 구성합니다.

  4. R1 계정 구성 매개변수를 구성합니다.

allow-commands statement only를 사용하는 액세스 권한 구성(Class1)

단계별 절차

명령문만 사용하여 정규 allow-commands 표현식을 지정하는 경우:

  1. Class1 맞춤형 로그인 클래스를 구성하고 운영자 수준 사용자 권한을 할당합니다. 사전 정의한 시스템 로그인 클래스에 대한 정보는 Junos OS 로그인 클래스 개요 를 참조하십시오.

  2. 명령문에서 R1의 재부팅을 활성화하기 위해 명령을 allow-commands 지정합니다.

  3. Class1 로그인 클래스에 대한 사용자 계정을 구성합니다.

deny-commands statement only를 사용하는 액세스 권한 구성(Class2)

단계별 절차

명령문만 사용하여 정규 deny-commands 표현식을 지정하는 경우:

  1. Class2 맞춤형 로그인 클래스를 구성하고 운영자 수준 사용자 권한을 할당합니다. 사전 정의한 시스템 로그인 클래스에 대한 정보는 Junos OS 로그인 클래스 개요 를 참조하십시오.

  2. 명령문에서 모든 세트 명령의 실행을 deny-commands 금지합니다.

  3. Class2 로그인 클래스에 대한 사용자 계정을 구성합니다.

allow-commands 및 deny-commands statements를 모두 사용하는 액세스 권한 구성(Class3)

단계별 절차

명령문과 명령문 모두를 사용하여 정규 allow-commandsdeny-commands 표현식을 지정하는 경우:

  1. Class3 맞춤형 로그인 클래스를 구성하고 Superuser 수준 사용자 권한을 할당합니다. 사전 정의한 시스템 로그인 클래스에 대한 정보는 Junos OS 로그인 클래스 개요 를 참조하십시오.

  2. 명령문에서 명령어만 구성하도록 명령어를 allow-commands 지정합니다.

  3. 명령문에서 모든 명령의 실행을 deny-commands 금지합니다.

  4. Class1 로그인 클래스에 대한 사용자 계정을 구성합니다.

결과

구성 모드에서 명령을 입력하여 구성을 show system 확인 출력이 의도한 구성을 표시하지 않는 경우 이 예제의 지침을 반복하여 구성을 수정합니다.

확인

새 로그인 클래스에 할당된 사용자 이름으로 로그인하고 구성이 제대로 작동하고 있는지 확인합니다.

Class1 구성 검증

목적

Class1 로그인 클래스에서 허용되는 권한 및 명령이 작동하고 있는지 확인

실행

작동 모드에서 명령을 show system users 실행합니다.

작동 모드에서 명령을 request system reboot 실행합니다.

의미

User1에 할당되는 Class1 로그인 클래스는 운영자 수준의 사용자 권한을 부여하고 명령을 실행할 수 request system reboot 있습니다.

사전 정의한 운영자 로그인 클래스에는 다음 권한 플래그가 지정되어 있습니다.

  • clear—명령어를 사용하여 다양한 네트워크 데이터베이스에 저장되는 네트워크에서 학습한 정보를 지우기(삭제)할 clear 수 있습니다.

  • network—, 및 명령어를 사용하여 pingssh 네트워크에 액세스할 수 telnettraceroute 있습니다.

  • reset—명령어를 사용하여 소프트웨어 프로세스를 재시작할 수 있으며, 소프트웨어 프로세스가 계층 수준에서 활성화 또는 restart[edit system processes] 비활성화될지 여부를 구성할 수 있습니다.

  • trace—추적 파일 설정을 보고 추적 파일 속성을 구성할 수 있습니다.

  • view—다양한 명령을 사용하여 현재 시스템 전체의 라우팅 테이블, 프로토콜별 값 및 통계를 표시할 수 있습니다. 비밀 구성은 볼 수 없습니다.

Class1 로그인 클래스의 경우, 위에서 언급한 사용자 권한 이외에도 User1은 해당 명령을 실행할 수 request system reboot 있습니다. 첫 번째 출력은 view 권한을 운영자(operator)로 표시하고, 두 번째 출력은 User1이 오퍼레이터로 실행할 수 있는 유일한 명령어가 명령인 것으로 requestrequest system reboot 나타났습니다.

Class2 구성 검증

목적

Class2 로그인 클래스에 허용되는 권한 및 명령이 작동하고 있는지 확인

실행

작동 모드에서 명령을 ping 실행합니다.

프롬프트에서 CLI 사용 가능한 권한을 확인

CLI 프롬프트에서 모든 set 명령어를 실행합니다.

의미

User2가 할당되는 Class2 로그인 클래스는 운영자 수준의 사용자 권한을 지정하며 모든 명령에 대한 액세스가 set 거부됩니다. 이는 명령 출력에 표시됩니다.

사전 정의한 운영자 로그인 클래스에 대해 지정된 권한 플래그는 Class1과 동일합니다.

Class3 구성 확인

목적

Class3 로그인 클래스에 허용되는 권한 및 명령이 작동하고 있는지 확인

실행

프롬프트에서 CLI 사용 가능한 권한을 확인

운영 모드에서 구성 모드를 입력합니다.

의미

User3에 할당되는 Class3 로그인 클래스는 수퍼서(모든) 사용자 권한을 부여하지만, 명령만 실행하도록 허용되고 다른 모든 운영 모드 명령에 대한 액세스가 configure 거부됩니다. 명령문에 지정된 정규 표현식은 사용자 권한보다 우선하기 때문에 R1의 User3은 구성 모드에만 액세스하고 다른 모든 운영 모드 명령에 대한 액세스가 allow/deny-commands 거부됩니다.

예를 들면 다음과 같습니다. 구성 명령문 및 계층에 대한 액세스 권한을 통해 사용자 권한 구성

이 예에서는 사용자 지정 로그인 클래스를 구성하고 구성 계층의 일부에 액세스 권한을 할당하는 방법을 보여줍니다. 이를 통해 사용자 정의된 로그인 클래스의 사용자는 액세스 권한을 지정한 구성 명령문 및 계층만 실행할 수 있습니다. 인증되지 않은 사용자가 네트워크 손상을 일으킬 수 있는 장치 구성에 액세스하는 것을 방지합니다.

요구 사항

이 예에서는 다음과 같은 하드웨어 및 소프트웨어 구성 요소를 활용합니다.

  • 하나의 주니퍼 네트웍스 디바이스

  • 1대의 TACACS+(RADIUS) 서버

  • Junos OS 디바이스에서 실행되는 주니퍼 네트웍스 구축

시작하기 전에 다음을 할 수 있습니다.

  • 장비와 TACACS+ 서버 간의 TCP 연결을 설정합니다. 서버가 RADIUS 경우 장치와 RADIUS 연결을 설정합니다.

    TACACS+ 서버 구성에 대한 자세한 내용은 TACACS+ 인증 구성을 참조하십시오.

  • 네트워크 디바이스의 로그인 클래스에 할당된 사용자 중 최소 주니퍼 네트웍스 구성합니다. 여러 로그인 클래스가 있을 수 있으며, 각기 다른 권한 구성을 가지며, 디바이스에 하나 이상의 사용자가 있을 수 있습니다.

개요 및 토폴로지

각 상위 수준 명령줄 인터페이스(CLI) 명령어와 각 Junos OS 관련된 액세스 권한 수준이 있습니다. 각 로그인 클래스의 경우, 권한 수준에 따라 허용되거나 허용되지 않는 운영 및 구성 모드 명령의 사용을 명시적으로 거부하거나 허용할 수 있습니다. 사용자는 해당 명령만 실행하고 액세스 권한을 갖는 명령문만 구성하고 볼 수 있습니다. 액세스 권한 수준을 구성하기 위해 계층 수준에서 permissions[edit system login class class-name] 명령문을 포함합니다.

각 로그인 클래스에 대한 액세스 권한은 명령문에 지정된 하나 이상의 권한 플래그로 permissions 정의됩니다. 이 외에도, 다음과 같은 명령문을 사용하여 확장된 정규 표현식을 지정할 수 있습니다.

  • allow-commands 및 —운영 모드 명령에 대한 액세스를 허용하거나 deny-commands 거부합니다.

  • allow-configurationdeny-configuration —구성 계층의 일부에 대한 액세스를 허용하거나 거부합니다.

    이러한 명령문은 특히 와일드카드 매칭에서 더 높은 유연성으로 더 느린 매칭을 수행할 수 있습니다. 그러나 많은 수의 풀 경로 정규 표현식 또는 와일드카드 표현식을 구성하여 성능에 영향을 미치는 경우 가능한 모든 진술을 평가하는 데 오랜 시간이 걸릴 수 있습니다.

  • allow-configuration-regexps 및 —정규 표현식 문자열을 사용하여 특정 구성 계층에 대한 액세스를 deny-configuration-regexps 허용하거나 거부합니다. 이러한 명령문은 명령문에서 문자열이 첫 번째 명령문 집합을 사용할 때 공백을 포함할 수 있는 문자열 집합을 구성할 수 있는 경우를 제외하고, 명령문과 allow-configurationdeny-configurationallow/deny-configuration-regexps 유사합니다.

위 명령문은 개별 운영 모드 명령어, 구성 명령문 및 계층에 대한 사용자의 액세스 권한을 정의합니다. 이러한 명령문은 사용자를 위한 로그인 클래스 권한 비트 세트보다 우선합니다.

Difference between allow/deny-configuration and allow/deny-configuration-regexps statements

allow-configurationdeny-configuration 명령문은 릴리스 7.4에 Junos OS 발표되었습니다. 및 allow-configuration-regexpsdeny-configuration-regexps 명령문은 Junos OS 11.2에서 발표되었습니다. Junos OS Release 11.4에서는 해당 명령문과 명령문이 모두 지원되지 않지만, 이러한 명령문은 단순한 구성을 실행하는 데 유용했기 때문에 Junos OS Release 11.4R6 전례가 없는데다 11.4R6 릴리스와 명령문 모두 allow-configurationdeny-configurationallow/deny-configurationallow/deny-configuration-regexps 지원됩니다.

명령문은 정규 표현식을 토큰으로 분할하고 지정된 구성의 전체 경로의 각 부분에 매칭하는 반면, 명령문은 전체 문자열과 allow/deny-configuration-regexpsallow/deny-configuration 일치합니다. 명령문의 경우, 각 문자열이 문자열의 조건 사이의 공백을 가지며 정규 표현식인 문자열 집합을 allow/deny-configuration-regexps 구성합니다. 이는 매우 빠른 매칭을 제공하지만 유연성은 줄어 습니다. 와일드카드 표현식을 지정하려면 일치해야 하는 공간 격리 문자열의 각 토큰에 와일드카드를 설정해야 하며, 따라서 이러한 명령문에 와일드카드 표현식을 사용하는 것이 더욱 지날 수 있습니다.

몇 가지 예를 들면 다음과 같습니다.

  • 허용 구성-regexps를 사용하는 하나의 토큰에 일치하는 정규 표현식

    이 예에서는 명령문의 첫 번째 토큰과 일치하는 표현만 options 보여줍니다.

    위 구성은 다음과 같은 명령문과 일치합니다.

    • 설정 정책 조건 options동적 db

    • set routing- options static route static-route next-hopnext-hop

    • set event- options generate-event event time-interval seconds

    위 구성은 다음과 같은 명령문과 일치하지 않습니다.

    • 시스템 호스트 이름 호스트-options

    • 인터페이스 인터페이스 이름 설명 options

  • 허용 구성-regexps를 사용한 3개의 토큰에 일치하는 정규 표현식

    이 예에서는 세 번째 명령문 토큰과 일치하는 표현만 ssh 보여줍니다.

    위 예제에서 3가지 토큰은 각각 .*.* , 및 .*ssh 를 포함합니다.

    위 구성은 다음과 같은 명령문과 일치합니다.

    • 시스템 호스트 이름 호스트 이름 -ssh

    • 시스템 서비스 ssh

    • 시스템 서비스 아웃바운드-ssh

    위 구성은 다음 명령문과 일치하지 않습니다.

    • 인터페이스 인터페이스 이름 설명 ssh

명령문을 사용하는 데 비해 명령문을 사용해 손쉽게 구성 액세스를 제한할 수 있습니다. 이를 통해 서로 다른 구성에서 해당 명령문과 명령문을 모두 사용해 특정 에 대한 액세스를 제한하는 동일한 결과를 달성할 수 deny-configurationdeny-configuration-regexps표 6deny-configurationdeny-configuration-regexps 있습니다.

표 6: 거부 구성 및 거부 구성-regexps 명령문을 사용하여 구성 액세스 제한

구성 거부

사용: 거부 구성

사용: 거부-구성-regexps

결과

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"";
    }
}

다음 구성 명령문은 거부됩니다.

  • 시스템 서비스 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";
    }
}

아래 구성 설명은 거부됩니다.

  • 시스템 호스트 이름 호스트 이름-ssh

  • 시스템 서비스 ssh

  • 시스템 서비스 아웃바운드-ssh

  • 보안 ssh-알려진 호스트

명령문은 단순한 구성을 원하는 경우에도 유용하지만, 명령문은 명령문에 설정된 표현식을 결합할 때 더 나은 성능을 제공하고 존재한 모호성을 allow/deny-configurationallow/deny-configuration-regexpsallow/deny-configuration 극복합니다.

주:

명령문은 상호 배타적이기 때문에 로그인 클래스에 대해 함께 구성할 allow/deny-configurationallow/deny-configuration-regexps 수 없습니다. 로그인 클래스는 해당 시점에 명령문 또는 allow/deny-configuration 명령문을 포함할 수 allow/deny-configuration-regexps 있습니다. 명령문을 사용하는 기존 구성이 있는 경우, 명령문과 동일한 구성 옵션을 사용하는 경우, 검색 및 일치 메소드가 이들 명령문의 두 가지 형태로 서로 다르기 때문에 동일한 결과를 생성하지 않을 수 allow/deny-configurationallow/deny-configuration-regexps 있습니다.

Configuration Notes

액세스 권한을 갖는 , 및 명령문을 구성할 때 allow-configurationdeny-configurationallow-configuration-regexpsdeny-configuration-regexps 다음을 고려합니다.

  • 각 로그인 클래스에 하나의 deny-configurationallow-configuration 명령문과 한 문장을 포함할 수 있습니다.

  • 명령문은 상호 배타적이기 때문에 로그인 클래스에 대해 함께 구성할 allow/deny-configurationallow/deny-configuration-regexps 수 없습니다. 로그인 클래스는 해당 시점에 명령문 또는 allow/deny-configuration 명령문을 포함할 수 allow/deny-configuration-regexps 있습니다. 명령문을 사용하는 기존 구성이 있는 경우, 명령문과 동일한 구성 옵션을 사용하는 경우, 검색 및 일치 메소드가 이들 명령문의 두 가지 형태로 서로 다르기 때문에 동일한 결과를 생성하지 않을 수 allow/deny-configurationallow/deny-configuration-regexps 있습니다.

  • 명령문을 사용하여 구성 모드 계층 또는 정규 표현식을 명시적으로 허용합니다. 명령문을 사용하여 설정된 일반 권한에 allow-configurationpermissions 추가합니다. 마찬가지로, 명령문을 사용하여 구성 모드 계층 또는 정규 표현식을 명시적으로 거부하면 명령문에서 제공되는 기본 사용 권한에서 지정된 구성 모드 계층에 대한 권한을 deny-configurationpermissions 제거합니다.

    예를 들어, 다음 구성의 경우, 로그인 클래스 사용자는 계층 수준에서 구성을 편집하고 문제 구성 모드 [edit system services] 명령(예: commitconfigure

    마찬가지로, 다음 구성의 경우, 로그인 클래스 사용자는 구성 모드 명령(예:) 실행 또는 계층 수준에서 구성 수정을 제외하고 모든 권한 플래그에서 허용되는 모든 작업을 수행할 commit[edit system services] 있습니다.

  • 구성 계층의 일부에 대한 액세스 권한을 정의하려면 확장 정규 표현식에서 and statement을 사용하여 전체 경로를 allow-configurationdeny-configuration 지정합니다. 2개 이상의 표현식을 파이프(|) 기호와 연결하는 확장된 정규 표현식을 중심으로 괄호를 사용합니다.

    몇 가지 예를 들면 다음과 같습니다.

  • 명령문과 명령문을 사용하여 확장 정규 표현식을 지정할 때, 파이프(|) 기호로 분리된 각 표현식은 완벽한 독립형 표현식이 되어야 합니다. 괄호 안에 동봉되어야 allow/deny-commandsallow/deny-configuration 합니다. 괄호와 함께 분리되고 파이프(|) 기호와 연결된 정규 표현식 사이의 공백을 사용하지 않습니다.

    몇 가지 예를 들면 다음과 같습니다.

  • 명령문을 사용하여 확장 정규 표현식을 지정할 때, 각 표현식은 따옴표(")에 동봉되어 있으며 공간별로 분리된 각 표현식은 각괄호 안에 allow-deny-configuration-regexps 동봉되어야 합니다[]

    몇 가지 예를 들면 다음과 같습니다.

  • 명령문과 명령문 모두에서 동일한 명령이 구성된 경우, 허용 작업은 deny statement보다 allow-configurationdeny-configuration 우선합니다.

    예를 들어, 로그인 클래스 테스트에 할당된 사용자는 다음과 같은 구성을 통해 구성 계층에 액세스할 수 있습니다. 명령문에는 다음이 포함되어 [edit system services]deny-configuration 있습니다.

    예를 들어, 권한을 모두 사용하는 등 특정 명령 또는 구성이 허용되는 경우 명령을 사용해 특정 계층에 대한 액세스를 deny-configuration 거부할 수 있습니다.

  • set, logcount와 같은 수정자는 일치할 정규 표현식 문자열 내에서 지원되지 않습니다. 수정자를 사용하는 경우, 그 어떤 것도 일치하지 않습니다.

    잘못된 구성:

    올바른 구성:

  • 정규 표현식을 표현할 때 * 와일드카드 문자를 사용할 수 있습니다. 그러나 정규 표현식의 일부로 사용되어야 합니다. [ * 또는 [.* ] 단독으로는 사용할 수 없습니다.

  • 명령문(인터페이스(설명)을 사용하여 구성할 수 allow-configuration|. *)) 정규 표현식을 정규 표현식으로 평가하여 allow-configuration = .* 정규 표현식으로 평가합니다.

  • 허용 또는 거부될 수 있는 많은 정규 표현식을 구성할 수 있습니다. 거부되는 정규 표현식은 허용되는 구성보다 우선합니다.

토폴로지

그림 2: TACACS+ 서버 인증 구성TACACS+ 서버 인증 구성

그림 2 라우터 R1이 주니퍼 네트웍스 TACACS+ 서버와 함께 설정된 TCP 연결을 보여주는 단순한 토폴로지가 설명되어 있습니다.

이 예제에서 R1은 을 사용하여 확장된 정규 표현식을 사용하는 액세스 권한을 지정하기 위해 2개의 사용자 정의 로그인 클래스(Class1 및 Class2)로 allow-configurationdeny-configurationallow-configuration-regexpsdeny-configuration-regexps 구성됩니다.

로그인 클래스의 목적은 다음과 같습니다.

  • Class1—명령문 및 명령문을 사용하여 사용자에 대한 allow-configuration 액세스 권한을 deny-configuration 정의합니다. 이 로그인 클래스는 인터페이스 계층만 구성할 수 있는 액세스를 제공하고 장비의 다른 모든 액세스를 거부해야 합니다. 이를 위해 사용자 권한에는 구성 액세스 제공을 위한 구성이 포함되어야 합니다. 이 외에도, 명령문은 인터페이스 구성을 허용해야 합니다. 명령문은 다른 모든 구성에 대한 액세스를 allow-configurationdeny-configuration 거부해야 합니다. allow statement은 deny statement보다 우선하기 때문에 Class1 로그인 클래스에 할당된 사용자들은 계층 수준만 액세스할 [edit interfaces] 수 있습니다.

  • Class2—명령문 및 명령문을 사용하여 사용자에 대한 allow-configuration-regexps 액세스 권한을 deny-configuration-regexps 정의합니다. 이 로그인 클래스는 수퍼 유저 레벨 사용자 권한을 제공하며 인터페이스에 대해 여러 계층 수준 하의 구성을 명시적으로 허용합니다. 또한 계층 수준과 구성 [edit system][edit protocols] 액세스도 거부합니다.

Router R1에는 Class1 및 Class2 로그인 클래스에 각각 2개의 사용자(User1 및 User2)가 할당되어 있습니다.

구성

CLI 빠른 구성

이 예제를 신속하게 구성하려면 다음 명령을 복사하여 텍스트 파일에 붙여넣기하고, 라인 끊기를 제거하고, 네트워크 구성과 일치하는 데 필요한 세부 정보를 변경하고, 계층 수준에서 명령어를 CLI 입력한 다음 구성 모드에서 [edit]commit 입력합니다.

R1

라우터 R1에 대한 인증 매개 변수 구성

단계별 절차

다음 예제에서는 구성 계층의 다양한 수준을 탐색해야 합니다. 네트워크의 네트워크 CLI 대한 자세한 내용은 CLI 사용자 가이드의 CLI 편집기사용 CLI 참조하십시오.

라우터 R1 인증을 구성하는 경우:

  1. R1에 대한 인증 순서를 구성합니다. 이 예에서 TACACS+ 서버 인증이 먼저 다음으로 RADIUS 서버 인증 다음으로 로컬 암호가 필요합니다.

  2. TACACS+ 서버로 R1 연결을 설정합니다.

  3. 서버 RADIUS 매개 변수를 구성합니다.

  4. R1 계정 구성 매개변수를 구성합니다.

허용 구성 및 거부 구성 명령문을 통해 액세스 권한 구성(Class1)

단계별 절차

및 문을 사용하여 정규 allow-configurationdeny-configuration 표현식을 지정하는 경우:

  1. Class1 맞춤형 로그인 클래스를 구성하고 구성 사용자 권한을 할당합니다.

  2. 명령문의 정규 표현식을 지정하여 계층 수준에서 allow-configuration[edit interfaces] 구성을 허용합니다. 계층 수준에서 set 명령을 [edit interfaces] 허용하기 위해 사용되는 정규 표현식은 interfaces .* unit .* 입니다.

  3. 명령문에 모든 구성 액세스를 deny-configuration 금지하는 정규 표현식을 지정합니다. 모든 구성 액세스를 거부하는 데 사용되는 정규 표현식은 .* 입니다.

  4. Class1 로그인 클래스에 대한 사용자 계정을 구성합니다.

허용 구성-regexps 및 Deny-Configuration-regexps 명령문을 통해 액세스 권한 구성(Class2)

단계별 절차

및 문을 사용하여 정규 allow-configuration-regexpsdeny-configuration-regexps 표현식을 지정하는 경우:

  1. Class2 맞춤형 로그인 클래스를 구성하고 수퍼러(모든) 사용자 권한을 할당합니다. 사전 정의한 시스템 로그인 클래스에 대한 자세한 내용은 Junos OS 로그인 클래스 개요 를 참조하십시오.

  2. 계층 수준에서 여러 계층에 대한 액세스를 허용하도록 정규 표현식을 [edit interfaces] 지정합니다.

  3. 및 계층 수준에서 구성을 거부하기 위해 정규 [edit system][edit protocols] 표현식을 지정합니다.

  4. Class2 로그인 클래스에 대한 사용자 계정을 구성합니다.

결과

구성 모드에서 명령을 입력하여 구성을 show system 확인 출력이 의도한 구성을 표시하지 않는 경우 이 예제의 지침을 반복하여 구성을 수정합니다.

확인

새 로그인 클래스에 할당된 사용자 이름으로 로그인하고 구성이 제대로 작동하고 있는지 확인합니다.

Class1 구성 검증

목적

Class1 로그인 클래스에서 허용되는 권한이 작동하고 있는지 확인

실행

프롬프트에서 CLI 사용 가능한 권한을 확인

구성 모드에서 사용 가능한 구성 권한을 검사합니다.

의미

User1은 첫 번째 출력에서 볼 수 있는 사용자 권한을 구성하며, User1에 대해 허용되는 유일한 구성 액세스는 인터페이스 계층 수준에 있습니다. 두 번째 출력에서와 같은 다른 모든 구성은 거부됩니다.

Class2 구성 검증

목적

Class2 구성이 작동하고 있는지 확인

실행

구성 모드에서 인터페이스 구성에 액세스합니다.

구성 모드에서 시스템 및 프로토콜 구성 계층에 액세스합니다.

의미

User2는 R1의 인터페이스를 구성할 수 있는 권한을 가지고 있지만, 출력에서와 같은 계층 수준과 계층 수준은 [edit system][edit protocols] 액세스가 거부됩니다.