SNMPv3 구성
QFX3500 스위치는 SNMP 버전 3(SNMPv3)을 지원합니다. SNMPv3는 사용자 인증 및 데이터 암호화를 지원하여 SNMPv1 및 SNMPv2c의 기능을 향상시킵니다. SNMPv3는 USM(user-based security model)을 사용하여 SNMP 메시지에 대한 보안을 제공하며, 사용자 액세스 제어를 위한 VACM(view-based access control model)을 사용합니다.
SNMPv3의 기능은 다음과 같습니다.
-
USM을 사용하면 SNMP 관리자와 에이전트 간 SNMP 메시지의 메시지 소스를 인증하고 데이터 무결성을 확인할 수 있습니다. USM은 시간초과 제한을 적용하고 중복된 메시지 요청 ID를 확인하여 메시지 지연 및 메시지 반복을 줄입니다.
-
VACM은 SNMP 쿼리에 대한 사용자 액세스 제어를 에이전트에 제공하여 USM을 보완합니다. 사용자는 한 명 이상의 사용자 그룹으로 확장하려는 액세스 권한을 정의합니다. 액세스 권한은 보안 모델 매개변수(
usm
,v1
, 또는v2
) 및 보안 수준 매개변수(authentication
,privacy
, 또는none
)에 따라 결정됩니다. 각 보안 수준에 대해 하나의 MIB 뷰를 그룹에 연결해야 합니다. MIB 뷰를 그룹과 연결하면 그룹의 MIB 개체 집합에 대한 읽기, 쓰기, 또는 알림 권한이 부여됩니다. -
사용자는 사용자 이름, 인증 유형 및 인증 비밀 번호를 비롯한 각 사용자의 보안 매개변수를 구성합니다. 각 사용자에게 지정된 사용자 이름은 해당 사용자에 대해 구성된 보안 모델에 따라 달라지는 형식으로 되어 있습니다.
-
메시징 보안을 보장하기 위해 로컬 SNMP 서버와 대상 SNMP 간에 전송되는 메시징 데이터에 보안 이름이라는 다른 유형의 사용자 이름이 포함되어 있습니다. 각 사용자 이름은 보안 이름에 매핑되지만 보안 이름은 보안 모델과는 독립적인 형식입니다.
-
SNMPv3의 트랩 항목은 알림, 알림 필터, 대상 주소, 및 대상 매개변수를 구성하여 생성됩니다.
notify
문은 알림 유형(트랩)을 지정하며 트랩을 수신할 대상 주소 집합을 정의하는 단일 태그를 포함합니다. 알림 필터는 트랩 개체 식별자((OID) 집합에 대한 액세스를 정의합니다. 대상 주소는 알림을 전송하는 데 사용되는 SNMP 관리 애플리케이션의 주소 및 기타 속성을 정의합니다. 대상 매개변수는 특정 대상에 알림을 전송하는 데 사용되는 메시지 처리 및 보안 매개변수를 정의합니다.
SNMPv3을 구성하려면 다음 작업을 수행하십시오.
SNMPv3은 인증 및 암호화 키와 함께 USM을 사용하여 SNMP 메시지에 대한 보안을 강화합니다. 따라서 SNMPv3를 사용하여 라우터 또는 스위치를 쿼리할 때 외부 시스템을 제한할 필요가 없습니다. 따라서 Junos OS 또는 Junos OS Evolved의 SNMPv3 구성은 액세스 제한을 위한 클라이언트 목록을 지원하지 않습니다.
그러나 SNMPv2는 커뮤니티 문자열 기반 액세스에 의존하므로 특정 클라이언트 시스템이 SNMP 쿼리를 보낼 수 있도록 클라이언트 목록을 사용해야 합니다.
SNMPv3 사용자 생성
각 SNMPv3 사용자에 대해 사용자 이름, 인증 유형, 인증 패스워드, 개인 정보 보호 유형 및 개인 정보 보호 암호를 지정할 수 있습니다. 사용자가 패스워드에 입력한 후 엔진 ID 및 패스워드를 기반으로 한 키가 생성되고 구성 파일에 써집니다. 키 생성 후에는 이 구성 파일에서 패스워드를 삭제할 수 있습니다.
각 SNMPv3 사용자에 대해 한 개의 암호화 형식만 구성할 수 있습니다.
사용자를 생성하려면 user
명령문을 [edit snmp v3 usm local-engine]
계층 수준에 포함합니다.
사용자 인증 및 암호화를 구성하려면 [edit snmp v3 usm local-engine user username]
계층 수준에 다음 명령문을 포함합니다.
Junos OS를 실행하는 디바이스의 최소 SNMPv3 구성
SNMPv3에 대한 최소 요구 사항을 구성하려면 [edit snmp v3]
및 [edit snmp]
계층 수준에 다음 명령문을 포함합니다.
[edit snmp view-name]
계층 레벨에서 하나 이상의 보기(알림, 읽기 또는 쓰기)를 구성해야 합니다.
참조
예: SNMPv3 구성
SNMPv3 구성을 정의합니다.
[edit snmp] engine-id { use-mac-address; } view jnxAlarms { oid 1.3.6.1.4.1.2636.3.4 include; } view interfaces { oid 1.3.6.1.2.1.2 include; } view ping-mib { oid 1.3.6.1.2.1.80 include; } [edit snmp v3] notify n1 { tag router1; # Identifies a set of target addresses type trap;# Defines type of notification } notify n2 { tag host1; type trap; } notify-filter nf1 { oid .1 include; # Defines which traps to send } # In this case, includes all traps notify-filter nf2 { oid 1.3.6.1.4.1 include; # Sends enterprise-specific traps only } notify-filter nf3 { oid 1.3.6.1.2.1.1.5 include; # Sends BGP traps only } snmp-community index1 { community-name "$9$JOZi.QF/AtOz3"; # SECRET-DATA security-name john; # Matches the security name at the target parameters tag host1; # Finds the addresses that are allowed to be used with } target-address ta1 {# Associates the target address with the group # san-francisco. address 10.1.1.1; address-mask 255.255.255.0; # Defines the range of addresses port 162; tag-list router1; target-parameters tp1; # Applies configured target parameters } target-address ta2 { address 10.1.1.2; address-mask 255.255.255.0; port 162; tag-list host1; target-parameters tp2; } target-address ta3 { address 10.1.1.3; address-mask 255.255.255.0; port 162; tag-list “router1 host1”; target-parameters tp3; } target-parameters tp1 { # Defines the target parameters notify-filter nf1; # Specifies which notify filter to apply parameters { message-processing-model v1; security-model v1; security-level none; security-name john; # Matches the security name configured at the } # [edit snmp v3 snmp-community community-index hierarchy level. } target-parameters tp2 { notify-filter nf2; parameters { message-processing-model v1; security-model v1; security-level none; security-name john; } } target-parameters tp3 { notify-filter nf3; parameters { message-processing-model v1; security-model v1; security-level none; security-name john; } } usm { local-engine { # Defines authentication and encryption for SNMPv3 users user john { # security-name john is defined here authentication-md5 { authentication-password authentication-password; } privacy-des { privacy-password privacy-password; } } user bob { # security-name bob is defined here authentication-sha { authentication-password authentication-password; } privacy-none; } user julia { # security-name julia is defined here authentication-none; privacy-none; } user lauren { # security-name lauren is defined here authentication-sha { authentication-password authentication-password; } privacy-aes128 { privacy-password privacy-password; } } user richard { # security-name richard is defined here authentication-sha { authentication-password authentication-password; } privacy-none; } } } vacm { access { group san-francisco { #Defines the access privileges for the group default-context-prefix { # called san-francisco security-model v1 { security-level none { notify-view ping-mib; read-view interfaces; write-view jnxAlarms; } } } } } security-to-group { security-model v1 { security-name john { # Assigns john to security group san-fancisco group san-francisco; } security-name bob { # Assigns bob to security group new-york group new-york; } security-name julia {# Assigns julia to security group chicago group chicago; } security-name lauren {# Assigns lauren to security group paris group paris; } security-name richard {# Assigns richard to security group geneva group geneva; } } } }