Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

NETCONF 세션을 위한 SSH 연결 설정

SSH를 통한 NETCONF 세션 이해하기

SSH 프로토콜을 사용하여 구성 관리 서버 (CMS)와 Junos 디바이스 간의 연결을 설정할 수 있습니다. 구성 관리 서버를 사용하여 Junos 디바이스를 원격으로 관리할 수 있습니다.

다음 옵션을 사용하여 구성 관리 서버 및 Junos 디바이스 간에 SSH 연결을 설정할 수 있습니다.

  • SSH - 구성 관리 서버가 Junos 디바이스와의 SSH 세션을 시작합니다.

  • 아웃바운드 SSH - Junos 디바이스는 사전 정의된 구성 관리 서버 집합을 통해 SSH 연결을 시작, 설정 및 유지합니다. 네트워크 제한(예: 방화벽)으로 인해 구성 관리 서버가 SSH 연결을 시작할 수 없는 경우 이 옵션을 사용합니다.

메모:

Junos OS에는 디바이스 관리를 위한 OpenSSH의 사용자 지정 구현이 포함되어 있습니다. 보안 수정 사항은 OpenSSH 버전 번호와 관계없이 필요에 따라 백포트됩니다. CLI 출력에 표시된 버전(예: show version)은 적용된 모든 패치를 반영하지 않을 수 있습니다. 취약점 영향 평가는 항상 주니퍼 보안 권고(JSA)를 참조하십시오.

SSH 또는 아웃바운드 SSH를 통한 NETCONF 세션의 공통 전제 조건

SSH 또는 아웃바운드 SSH를 사용하는 NETCONF 세션의 경우, 구성 관리 서버에 SSH 소프트웨어를 설치하고 Junos 디바이스에서 NETCONF 서비스를 활성화해야 합니다. 자세한 지침은 다음 섹션을 참조하십시오.

구성 관리 서버에 SSH 소프트웨어 설치

SSH 연결의 경우, 구성 관리 서버(CMS)가 Junos 디바이스와의 SSH 연결을 처리합니다. 아웃바운드 SSH 연결의 경우 Junos 디바이스가 구성 관리 서버에 SSH 연결을 설정한 다음 구성 관리 서버가 SSH 세션을 제어합니다.

디바이스와 SSH 또는 아웃바운드 SSH 연결을 설정하려면 구성 관리 서버에 SSH 소프트웨어가 로컬로 설치되어 있어야 합니다. SSH 소프트웨어 확보 및 설치에 대한 정보는 다음을 참조하십시오.

SSH를 통한 NETCONF 서비스 활성화

Junos 디바이스에서 NETCONF 세션을 설정하려면 NETCONF 서비스를 활성화해야 합니다. 다음 포트에서 NETCONF 세션을 수락하도록 NETCONF 서버를 구성할 수 있습니다.

  • 기본 NETCONF 포트(830) 또는 사용자 정의 포트

  • 기본 SSH 포트(22)

디바이스가 NETCONF 트래픽을 보다 효과적으로 식별하고 필터링할 수 있도록 기본 NETCONF 포트를 사용하는 것이 좋습니다. 또는 기본 NETCONF 포트 대신 선택한 포트 번호에서 NETCONF 세션을 수락하도록 디바이스를 구성할 수 있습니다. 정의된 포트는 NETCONF-over-SSH 세션만 허용하고 일반 SSH 세션 요청은 거부합니다.

NETCONF를 활성화하고 디바이스에서 SSH 서비스도 활성화하는 경우, 디바이스는 기본 SSH 포트와 구성된 NETCONF 포트(기본 또는 사용자 정의 포트) 모두에서 NETCONF 세션을 수락합니다. 보안 강화를 위해 정보를 활용하는 UI_LOGIN_EVENT 이벤트 정책을 구성하여 SSH 포트가 수락하는 NETCONF 세션을 효과적으로 비활성화하거나 포트에서 NETCONF 서버 액세스를 추가로 제한할 수 있습니다.

Junos 디바이스에서 SSH를 통한 NETCONF 서비스 활성화:

  1. 기본 NETCONF 포트(830) 또는 사용자 정의 포트에서 NETCONF 서비스를 활성화합니다.

    • 기본 NETCONF 포트(830)를 사용하려면 계층 수준에서 문을 포함 netconf ssh 해야 [edit system services] 합니다.

    • 특정 포트를 사용하려면 계층 수준에서 포트 번호 [edit system services netconf ssh] 로 문을 구성합니다port.

      캔의 port-number 범위는 1에서 65535까지입니다. 구성된 포트는 NETCONF-over-SSH 세션만 허용하고 일반 SSH 세션 요청은 거부합니다.

      메모:

      1에서 65535까지 모든 포트에서 NETCONF를 구성할 수 있지만, 일반적으로 다른 서비스에 할당된 포트에서 액세스를 구성해서는 안 됩니다. 이렇게 하면 잠재적인 리소스 충돌을 방지할 수 있습니다. FTP와 같은 다른 서비스에 할당된 포트를 구성하고 해당 서비스가 활성화된 경우 은( commit check 는) 리소스 충돌을 나타내거나 경고 메시지를 표시하지 않습니다.

  2. (선택 사항) 또한 기본 SSH 포트(22)를 사용하여 NETCONF SSH 서브시스템에 대한 액세스를 활성화하려면 계층 수준에서 문을 [edit system services] 포함합니다ssh.

    이 구성은 모든 사용자 및 애플리케이션의 디바이스에 대한 SSH 액세스를 활성화합니다.

    메모:

    루트 사용자가 SSH 서비스를 사용하지 못하도록 제한하는 것이 기본 동작인 릴리스에서는 루트 사용자가 SSH를 통해 NETCONF 세션을 열 수 있도록 계층 수준에서 문을 [edit system services ssh] 구성해야 root-login allow 합니다.

  3. (선택 사항) 응답하지 않는 NETCONF 클라이언트의 연결을 끊도록 디바이스를 구성합니다.

    클라이언트로부터 수신된 데이터가 없는 경우 sshd 프로세스가 응답을 요청하는 시간 초과 간격(초)을 지정합니다. 또한 연결 끊기를 트리거하는 누락된 클라이언트 활성 응답의 임계값을 지정합니다.

    메모:

    계층 수준에서 구성된 [edit system services netconf ssh] 문은 기본 포트(830) 또는 동일한 계층 수준에서 구성된 사용자 정의 포트를 통해 연결하는 NETCONF 세션에만 적용됩니다.

  4. 구성을 커밋합니다.

  5. 클라이언트 애플리케이션이 NETCONF 세션을 설정하는 각 Junos 디바이스에서 앞의 단계를 반복합니다.

NETCONF 세션을 위한 SSH 연결 설정을 위한 전제 조건

구성 관리 서버가 Junos 디바이스와 SSH 연결을 설정하려면 먼저 에서 설명하는 공통 요구 사항을 충족해야 합니다.

또한 다음 섹션에서 설명하는 요구 사항도 충족해야 합니다.

Junos 디바이스에서 클라이언트 애플리케이션에 대한 사용자 계정 구성

구성 관리 서버는 NETCONF 세션을 설정하기 위해 Junos 디바이스에 로그인해야 합니다. 따라서 구성 관리 서버는 NETCONF 세션을 설정하는 각 디바이스에 사용자 계정이 필요합니다. 다음 지침은 Junos 디바이스에서 로컬 사용자 계정을 만드는 방법을 설명합니다. 또는 이 섹션을 건너뛰고 RADIUS 또는 TACACS+를 통해 인증을 활성화할 수 있습니다.

로컬 사용자 계정을 만들려면:

  1. user 문을 구성하고 사용자 이름을 지정합니다. class 문을 포함하고, 애플리케이션이 수행할 모든 작업에 필요한 권한이 있는 로그인 클래스를 지정합니다.
  2. 선택적으로 계층 수준에서 및 uid 문을 [edit system login user username] 포함합니다full-name.
  3. 구성을 커밋하여 디바이스에서 사용자 계정을 활성화합니다.
  4. 클라이언트 애플리케이션이 NETCONF 세션을 설정하는 각 Junos 디바이스에서 앞의 단계를 반복합니다.

Junos OS 사용자 계정에 대한 퍼블릭/프라이빗 키 페어 또는 패스워드 구성

구성 관리 서버는 NETCONF 서버를 인증하기 위해 SSH 퍼블릭/프라이빗 키 쌍, 텍스트 기반 비밀번호 또는 둘 다 필요합니다. 계정이 SSH를 통해 NETCONF 서버에 연결하는 데만 사용되는 경우 키 쌍으로 충분합니다. 계정이 다른 방법(예: 콘솔에서 로그인)으로 디바이스에 액세스하는 데에도 사용되는 경우 텍스트 기반 암호가 있어야 합니다. 키 기반 인증이 구성되었지만 실패하는 경우에도 암호가 사용됩니다(SSH 서버에서 암호를 입력하라는 메시지가 표시됨).

메모:

RADIUS 또는 TACACS+를 통한 인증을 활성화하도록 선택한 경우 이 섹션을 건너뛸 수 있습니다.

텍스트 기반 암호를 만들려면:

  1. 계층 수준에서 또는 encrypted-password 명령문 [edit system login user username authentication] 중 하나를 plain-text-password 포함합니다.

    암호를 텍스트로 입력하려면 다음 명령을 실행합니다. 암호를 입력하라는 메시지가 표시되며, 장치는 저장하기 전에 암호를 암호화합니다.

    이전에 만들고 MD5 또는 SHA-1을 사용하여 해시한 암호를 입력하려면 다음 명령을 실행합니다.

  2. 구성을 커밋합니다.
  3. 클라이언트 애플리케이션이 NETCONF 세션을 설정하는 각 디바이스에서 앞의 단계를 반복합니다.

SSH 공개/개인 키 쌍을 생성하려면 다음 단계를 수행합니다.

  1. 클라이언트 응용 프로그램이 실행되는 Configuration Management Server에서 표준 명령 셸로 명령을 실행하고 ssh-keygen 적절한 인수를 제공합니다.

    예를 들어:

    옵션에 대한 ssh-keygen 자세한 내용은 명령의 ssh-keygen 매뉴얼 페이지를 참조하십시오.

  2. 공개 키를 Junos OS 로그인 계정과 연결합니다.

    Junos OS는 지정된 파일의 내용을 디바이스에 복사합니다. URL 은 하나 이상의 공개 키가 포함된 파일의 경로입니다. ssh-keygen 명령은 기본적으로 각 공개 키를 사용자 홈 디렉토리의 .ssh 하위 디렉토리에 있는 파일에 저장합니다. 파일 이름은 인코딩 및 SSH 버전에 따라 다릅니다. URL 지정에 대한 정보는 CLI 사용자 가이드를 참조하세요.

    메모:

    또는 계층 수준에서 문을 [edit system login user account-name authentication] 포함할 ssh-rsa 수 있습니다. 그러나 명령문을 사용하면 명령줄에서 공개 키를 입력하거나 잘라내어 붙여넣을 필요가 없으므로 문을 사용하는 load-key-file 것이 좋습니다.

  3. 구성을 커밋합니다.

  4. 클라이언트 애플리케이션이 NETCONF 세션을 설정하는 각 Junos 디바이스에서 2 단계와 3 단계를 반복합니다.

클라이언트 응용 프로그램을 사용하여 키 또는 암호에 액세스Access the Keys or Password with the Client Application

클라이언트 애플리케이션은 구성된 키 쌍 또는 암호에 액세스하고 NETCONF 서버가 이를 요청하는 메시지를 표시할 때 이를 제공할 수 있어야 합니다.

응용 프로그램이 키 또는 암호에 액세스할 수 있도록 하는 방법에는 여러 가지가 있습니다.

  • 퍼블릭/프라이빗 키를 사용하는 경우 ssh-agent 프로그램은 클라이언트 애플리케이션이 실행되는 디바이스에서 실행되며 프라이빗 키를 처리합니다.

  • 사용자가 응용 프로그램을 시작하면 응용 프로그램은 사용자에게 암호를 묻는 메시지를 표시하고 암호를 안전한 방식으로 임시로 저장합니다.

  • 암호는 안전한 로컬 디스크 위치 또는 보안 데이터베이스에 암호화된 형태로 저장됩니다.

NETCONF 세션에 대한 아웃바운드 SSH 연결 설정을 위한 전제 조건

구성 관리 서버가 NETCONF 서버에 대한 아웃바운드 SSH 연결을 설정할 수 있도록 하려면 에서 논의된 공통 요구 사항을 충족해야 합니다.

또한 다음 섹션에서 설명하는 요구 사항도 충족해야 합니다.

아웃바운드 SSH를 위한 Junos 디바이스 구성

아웃바운드 SSH를 위한 Junos 디바이스 구성:

  1. [edit system services ssh] 계층 수준에서 SSH protocol-version 를 v2로 설정합니다.
  2. Junos 디바이스에 대한 퍼블릭/프라이빗 키 쌍을 생성하거나 가져옵니다. 이 키 쌍은 SSH 연결을 통해 전송되는 데이터를 암호화하는 데 사용됩니다.
  3. 구성 관리 서버에 공개 키를 수동으로 설치하는 경우 공개 키를 CMS로 전송합니다.
  4. [edit system services] 계층 수준에서 구성 계층과 모든 필수 문을 포함합니다outbound-ssh.

    각 옵션에 대한 자세한 내용은 outbound-ssh를 참조하세요.

  5. 구성을 커밋합니다.

클라이언트에서 아웃바운드 SSH 시작 시퀀스 수신 및 관리

아웃바운드 SSH용 Junos 디바이스를 구성할 때 디바이스는 구성 관리 서버와의 지속적인 연결을 유지하려고 시도합니다. 아웃바운드 SSH 세션이 설정되지 않을 때마다 디바이스는 디바이스의 구성 관리 서버 목록에 나열된 구성 관리 서버로 아웃바운드 SSH 시작 시퀀스를 보냅니다. 디바이스와의 연결을 설정하기 전에 이 시작 시퀀스를 수신하고, 디바이스와의 TCP 연결을 설정하고, 디바이스 ID를 디바이스로 다시 전송하도록 각 구성 관리 서버를 설정해야 합니다.

시작 시퀀스는 Junos OS 서버의 공개 키를 처리하도록 선택한 방식에 따라 두 가지 형식 중 하나를 취합니다.

공개 키가 구성 관리 서버에 수동으로 설치된 경우 시작 시퀀스는 다음과 같은 형식을 취합니다.

초기화 시퀀스 동안 디바이스가 구성 관리 서버에 공개 키를 전달하는 경우 시퀀스는 다음과 같은 형식을 취합니다.

변경 내역 표

기능 지원은 사용 중인 플랫폼과 릴리스에 따라 결정됩니다. 기능 탐색기 를 사용하여 플랫폼에서 기능이 지원되는지 확인하세요.

석방
묘사
15.1
Junos OS 릴리스 15.1부터 Junos OS는 IPv6 주소가 있는 디바이스와의 아웃바운드 SSH 연결을 지원합니다.