NETCONF 세션을 위한 SSH 연결 설정
NETCONF 세션을 위한 SSH 연결 설정
SSH 프로토콜을 사용하여 구성 관리 서버와 Junos 디바이스 간의 연결을 설정할 수 있습니다. 구성 관리 서버를 사용하여 Junos 디바이스를 원격으로 구성할 수 있습니다.
다음 옵션을 사용하여 구성 관리 서버와 Junos 디바이스 간에 SSH 연결을 설정할 수 있습니다.
-
SSH - 구성 관리 서버가 Junos 디바이스와 SSH 세션을 시작합니다.
-
아웃바운드 SSH - 네트워크 제한(예: 방화벽)으로 인해 구성 관리 서버가 SSH 연결을 시작할 수 없는 경우 이 옵션을 사용합니다. 이 경우 Junos 디바이스를 구성하여 사전 정의된 구성 관리 서버 세트와의 SSH 연결을 시작, 설정 및 유지합니다.
NETCONF 세션을 위한 SSH 연결 설정을 위한 전제 조건
구성 관리 서버가 Junos 디바이스와 SSH 연결을 설정하기 전에 다음 섹션에서 설명하는 요구 사항을 충족해야 합니다.
- 구성 관리 서버에 SSH 소프트웨어 설치
- SSH를 통한 NETCONF 서비스 활성화
- Junos 디바이스에서 클라이언트 애플리케이션에 대한 사용자 계정 구성
- Junos OS 사용자 계정에 대한 퍼블릭/프라이빗 키 페어 또는 암호 구성
- 클라이언트 응용 프로그램을 사용하여 키 또는 암호에 액세스Access the keys or password with the Client application
구성 관리 서버에 SSH 소프트웨어 설치
구성 관리 서버는 Junos 디바이스와의 SSH 연결을 처리합니다. 따라서 SSH 소프트웨어는 구성 관리 서버에 로컬로 설치해야 합니다. SSH 소프트웨어를 가져오고 설치하는 방법에 대한 자세한 내용은 http://www.ssh.com 및 http://www.openssh.com 를 참조하십시오.
SSH를 통한 NETCONF 서비스 활성화
Junos 디바이스에서 NETCONF 세션을 설정하려면 NETCONF 서비스를 활성화해야 합니다. 다음 포트에서 NETCONF 세션을 수락하도록 NETCONF 서버를 구성할 수 있습니다.
-
기본 NETCONF 포트(830) 또는 사용자 정의 포트
-
기본 SSH 포트(22)
디바이스가 NETCONF 트래픽을 쉽게 식별하고 필터링할 수 있도록 기본 NETCONF 포트를 사용하는 것이 좋습니다. 또는 기본 NETCONF 포트 대신 특정 포트에서 NETCONF 세션을 수락하도록 디바이스를 구성할 수 있습니다. 정의된 포트는 NETCONF-over-SSH 세션만 허용하고 일반 SSH 세션 요청은 거부합니다. 또한 서버에서 SSH 서비스를 활성화하면 디바이스는 기본 SSH 포트와 구성된 NETCONF 포트(기본 또는 사용자 정의 포트) 모두에서 NETCONF 세션을 수락합니다. 보안 강화를 위해 정보를 활용하는 UI_LOGIN_EVENT
이벤트 정책을 구성하여 기본 포트를 효과적으로 비활성화하거나 포트에서 NETCONF 서버 액세스를 추가로 제한할 수 있습니다.
Junos 디바이스에서 SSH를 통한 NETCONF 서비스 활성화:
-
기본 NETCONF 포트(830) 또는 사용자 정의 포트에서 NETCONF 서비스를 활성화합니다.
-
기본 NETCONF 포트(830)를 사용하려면 계층 수준에서 명령문을 포함합니다
netconf ssh
.[edit system services]
[edit system services] user@host# set netconf ssh
-
특정 포트를 사용하려면 [
edit system services netconf ssh
] 계층 수준에서 원하는 포트 번호로 명령문을 구성합니다port
.[edit system services] user@host# set netconf ssh port port-number
캔의
port-number
범위는 1에서 65535까지입니다. 구성된 포트는 NETCONF-over-SSH 세션만 허용하고 일반 SSH 세션 요청은 거부합니다.참고:NETCONF-over-SSH 세션은 1에서 65535까지의 모든 포트에서 구성할 수 있지만, 일반적으로 다른 서비스에 할당된 포트에서 액세스를 구성하지 않아야 합니다. 이렇게 하면 잠재적인 리소스 충돌을 방지할 수 있습니다. FTP와 같은 다른 서비스에 할당된 포트를 구성하고 해당 서비스가 사용 가능한 경우, 은(는
commit check
) 리소스 충돌을 나타내거나 해당 효과에 대한 경고 메시지를 표시하지 않습니다.
-
-
(선택 사항) 또한 기본 SSH 포트(22)를 사용하여 NETCONF SSH 서브시스템에 대한 액세스를 활성화하려면 계층 수준에서 문을
[edit system services]
포함합니다ssh
.[edit system services] user@host# set ssh
이 구성을 통해 모든 사용자 및 애플리케이션이 디바이스에 대한 SSH 액세스를 수행할 수 있습니다.
참고:기본 동작이 루트 사용자가 SSH 서비스를 사용하지 못하도록 제한하는 릴리스에서는 루트 사용자가 SSH를 통해 NETCONF 세션을 열 수 있도록 계층 수준에서 문을
[edit system services ssh]
구성해야root-login allow
합니다. (선택 사항) 응답하지 않는 NETCONF 클라이언트의 연결을 끊도록 디바이스를 구성합니다.
클라이언트로부터 데이터를 수신하지 않은 경우 sshd 프로세스가 응답을 요청하는 시간 초과 간격(초)을 지정합니다. 또한 연결 끊김을 트리거하는 누락된 클라이언트 활성 응답의 임계값을 지정합니다.
[edit system services] user@host# set netconf ssh client-alive-interval 10 user@host# set netconf ssh client-alive-count-max 10
참고:계층 수준에서 구성된 문은 기본 포트(830) 또는 동일한 계층 수준에서 구성된
[edit system services netconf ssh]
사용자 정의 포트를 통해 연결하는 NETCONF 세션에만 적용됩니다.-
구성을 커밋합니다.
[edit] user@host# commit
-
클라이언트 애플리케이션이 NETCONF 세션을 설정하는 Junos OS를 실행하는 각 디바이스에서 이전 단계를 반복합니다.
Junos 디바이스에서 클라이언트 애플리케이션에 대한 사용자 계정 구성
구성 관리 서버는 NETCONF 세션을 설정하기 위해 Junos 디바이스에 로그인해야 합니다. 따라서 구성 관리 서버는 NETCONF 세션을 설정하는 각 디바이스에 사용자 계정이 필요합니다. 다음 지침은 Junos 디바이스에서 로컬 사용자 계정을 만드는 방법을 설명합니다. 또는 이 섹션을 건너뛰고 RADIUS 또는 TACACS+를 통한 인증을 활성화할 수 있습니다.
로컬 사용자 계정을 만들려면,
Junos OS 사용자 계정에 대한 퍼블릭/프라이빗 키 페어 또는 암호 구성
구성 관리 서버는 NETCONF 서버로 인증하기 전에 SSH 퍼블릭/프라이빗 키 쌍, 텍스트 기반 비밀번호 또는 둘 다 필요합니다. 계정이 SSH를 통해 NETCONF 서버에 연결하는 데만 사용되는 경우 퍼블릭/프라이빗 키 쌍으로 충분합니다. 계정이 다른 방법으로도 장치에 액세스하는 데 사용되는 경우(예: 콘솔에서 로그인하는 경우) 텍스트 기반 암호가 있어야 합니다. 키 기반 인증이 구성되었지만 실패하는 경우에도 암호가 사용됩니다(SSH 서버에서 암호를 묻는 메시지를 표시함).
RADIUS 또는 TACACS+를 통해 인증을 활성화하도록 선택한 경우 이 섹션을 건너뛸 수 있습니다.
텍스트 기반 암호를 만들려면,
SSH 퍼블릭/프라이빗 키 쌍을 만들려면 다음 단계를 수행합니다.
클라이언트 응용 프로그램이 실행되는 구성 관리 서버의 표준 명령 셸에서 명령을 실행하고
ssh-keygen
적절한 인수를 제공합니다.% ssh-keygen options
옵션에 대한
ssh-keygen
자세한 정보는 명령의ssh-keygen
매뉴얼 페이지를 참조하십시오.공개 키를 Junos OS 로그인 계정과 연결합니다.
[edit system login user username authentication] user@host# set load-key-file URL
Junos OS는 지정된 파일의 내용을 Junos OS를 실행하는 디바이스에 복사합니다. URL 은(는) 하나 이상의 공개 키를 포함하는 파일의 경로입니다.
ssh-keygen
명령은 기본적으로 각 공개 키를 사용자 홈 디렉토리의 .ssh 하위 디렉토리에 있는 파일에 저장합니다. 파일 이름은 인코딩 및 SSH 버전에 따라 다릅니다 . URL 지정에 대한 정보는 CLI 사용 설명서를 참조하십시오.참고:또는 계층 수준에서 문을
[edit system login user account-name authentication]
포함할ssh-rsa
수 있습니다. 그러나 명령load-key-file
문을 사용하면 명령줄에서 공개 키를 입력하거나 잘라내어 붙여넣을 필요가 없으므로 문을 사용하는 것이 좋습니다.구성을 커밋합니다.
[edit] user@host# commit
클라이언트 애플리케이션이 NETCONF 세션을 설정하는 각 Junos 디바이스에서 2 단계와 3 단계를 반복합니다.
클라이언트 응용 프로그램을 사용하여 키 또는 암호에 액세스Access the keys or password with the Client application
클라이언트 애플리케이션은 구성된 퍼블릭/프라이빗 키 또는 암호에 액세스하고 NETCONF 서버가 프롬프트할 때 제공할 수 있어야 합니다.
응용 프로그램이 키 또는 암호에 액세스할 수 있도록 하는 방법에는 여러 가지가 있습니다.
퍼블릭/프라이빗 키를 사용하는 경우 ssh-agent 프로그램은 클라이언트 애플리케이션이 실행되는 디바이스에서 실행되고 프라이빗 키를 처리합니다.
사용자가 응용 프로그램을 시작하면 응용 프로그램에서는 사용자에게 암호를 입력하라는 메시지를 표시하고 안전한 방식으로 임시로 저장합니다.
암호는 안전한 로컬 디스크 위치 또는 보안 데이터베이스에 암호화된 형태로 저장됩니다.
NETCONF 세션에 대한 아웃바운드 SSH 연결 설정을 위한 사전 요구 사항
구성 관리 서버가 NETCONF 서버에 대한 아웃바운드 SSH 연결을 설정할 수 있도록 하려면 다음 섹션에서 설명하는 요구 사항을 충족해야 합니다.
- 클라이언트에 SSH 소프트웨어 설치
- SSH를 통한 NETCONF 서비스 활성화
- 아웃바운드 SSH를 위한 Junos 디바이스 구성
- 클라이언트에서 아웃바운드 SSH 시작 시퀀스 수신 및 관리Receive and manage the outbound SSH initiation sequence on the client
클라이언트에 SSH 소프트웨어 설치
디바이스가 구성 관리 서버에 SSH 연결을 설정하면 구성 관리 서버가 SSH 세션을 제어합니다. 따라서 SSH 클라이언트 소프트웨어는 구성 관리 서버에 로컬로 설치되어야 합니다. SSH 소프트웨어 가져오기 및 설치에 대한 자세한 내용은 http://www.ssh.com/ 및 http://www.openssh.com/ 참조하십시오.
SSH를 통한 NETCONF 서비스 활성화
Junos 디바이스에서 NETCONF 세션을 설정하려면 NETCONF 서비스를 활성화해야 합니다. 다음 포트에서 NETCONF 세션을 수락하도록 NETCONF 서버를 구성할 수 있습니다.
-
기본 NETCONF 포트(830) 또는 사용자 정의 포트
-
기본 SSH 포트(22)
디바이스가 NETCONF 트래픽을 쉽게 식별하고 필터링할 수 있도록 기본 NETCONF 포트를 사용하는 것이 좋습니다. 또는 기본 NETCONF 포트 대신 특정 포트에서 NETCONF 세션을 수락하도록 디바이스를 구성할 수 있습니다. 정의된 포트는 NETCONF-over-SSH 세션만 허용하고 일반 SSH 세션 요청은 거부합니다. 또한 서버에서 SSH 서비스를 활성화하면 디바이스는 기본 SSH 포트와 구성된 NETCONF 포트(기본 또는 사용자 정의 포트) 모두에서 NETCONF 세션을 수락합니다. 보안 강화를 위해 정보를 활용하는 UI_LOGIN_EVENT
이벤트 정책을 구성하여 기본 포트를 효과적으로 비활성화하거나 포트에서 NETCONF 서버 액세스를 추가로 제한할 수 있습니다.
Junos 디바이스에서 SSH를 통한 NETCONF 서비스 활성화:
-
기본 NETCONF 포트(830) 또는 사용자 정의 포트에서 NETCONF 서비스를 활성화합니다.
-
기본 NETCONF 포트(830)를 사용하려면 계층 수준에서 명령문을 포함합니다
netconf ssh
.[edit system services]
[edit system services] user@host# set netconf ssh
-
특정 포트를 사용하려면 [
edit system services netconf ssh
] 계층 수준에서 원하는 포트 번호로 명령문을 구성합니다port
.[edit system services] user@host# set netconf ssh port port-number
캔의
port-number
범위는 1에서 65535까지입니다. 구성된 포트는 NETCONF-over-SSH 세션만 허용하고 일반 SSH 세션 요청은 거부합니다.참고:NETCONF-over-SSH 세션은 1에서 65535까지의 모든 포트에서 구성할 수 있지만, 일반적으로 다른 서비스에 할당된 포트에서 액세스를 구성하지 않아야 합니다. 이렇게 하면 잠재적인 리소스 충돌을 방지할 수 있습니다. FTP와 같은 다른 서비스에 할당된 포트를 구성하고 해당 서비스가 사용 가능한 경우, 은(는
commit check
) 리소스 충돌을 나타내거나 해당 효과에 대한 경고 메시지를 표시하지 않습니다.
-
-
(선택 사항) 또한 기본 SSH 포트(22)를 사용하여 NETCONF SSH 서브시스템에 대한 액세스를 활성화하려면 계층 수준에서 문을
[edit system services]
포함합니다ssh
.[edit system services] user@host# set ssh
이 구성을 통해 모든 사용자 및 애플리케이션이 디바이스에 대한 SSH 액세스를 수행할 수 있습니다.
참고:기본 동작이 루트 사용자가 SSH 서비스를 사용하지 못하도록 제한하는 릴리스에서는 루트 사용자가 SSH를 통해 NETCONF 세션을 열 수 있도록 계층 수준에서 문을
[edit system services ssh]
구성해야root-login allow
합니다. (선택 사항) 응답하지 않는 NETCONF 클라이언트의 연결을 끊도록 디바이스를 구성합니다.
클라이언트로부터 데이터를 수신하지 않은 경우 sshd 프로세스가 응답을 요청하는 시간 초과 간격(초)을 지정합니다. 또한 연결 끊김을 트리거하는 누락된 클라이언트 활성 응답의 임계값을 지정합니다.
[edit system services] user@host# set netconf ssh client-alive-interval 10 user@host# set netconf ssh client-alive-count-max 10
참고:계층 수준에서 구성된 문은 기본 포트(830) 또는 동일한 계층 수준에서 구성된
[edit system services netconf ssh]
사용자 정의 포트를 통해 연결하는 NETCONF 세션에만 적용됩니다.-
구성을 커밋합니다.
[edit] user@host# commit
-
클라이언트 애플리케이션이 NETCONF 세션을 설정하는 Junos OS를 실행하는 각 디바이스에서 이전 단계를 반복합니다.
아웃바운드 SSH를 위한 Junos 디바이스 구성
아웃바운드 SSH를 위한 Junos 디바이스 구성:
클라이언트에서 아웃바운드 SSH 시작 시퀀스 수신 및 관리Receive and manage the outbound SSH initiation sequence on the client
아웃바운드 SSH를 위해 구성된 경우, Junos 디바이스는 구성 관리 서버와의 지속적인 연결을 유지하려고 시도합니다. 아웃바운드 SSH 세션이 설정되지 않을 때마다 디바이스는 아웃바운드 SSH 시작 시퀀스를 디바이스의 구성 관리 서버 목록에 나열된 구성 관리 서버로 보냅니다. 디바이스와의 연결을 설정하기 전에 이 시작 시퀀스를 수신하고, 디바이스와의 TCP 연결을 설정하고, 디바이스 ID를 다시 디바이스로 전송하도록 각 구성 관리 서버를 설정해야 합니다.
시작 시퀀스는 Junos OS 서버의 공개 키를 처리하기 위해 선택한 방법에 따라 두 가지 형태 중 하나를 취합니다.
공개 키가 구성 관리 서버에 수동으로 설치된 경우 시작 시퀀스는 다음과 같은 형식을 취합니다.
MSG-ID: DEVICE-CONN-INFO\r\n MSG-VER: V1\r\n DEVICE-ID: <device-id>\r\n
초기화 시퀀스 중에 디바이스가 공개 키를 구성 관리 서버로 전달하는 경우 시퀀스는 다음과 같은 형식을 취합니다.
MSG-ID: DEVICE-CONN-INFO\r\n MSG-VER: V1\r\n DEVICE-ID: : <device-id>\r\n HOST-KEY: <pub-host-key>\r\n HMAC: <HMAC(pub-SSH-host-key,<secret>)>\r\n
변경 내역 테이블
기능 지원은 사용 중인 플랫폼 및 릴리스에 따라 결정됩니다. 기능 탐색기 를 사용하여 플랫폼에서 기능이 지원되는지 확인합니다.