4장. Ceph 온-wire 암호화
enger 버전 2 프로토콜을 사용하여 네트워크를 통한 모든 Ceph 트래픽에 대해 암호화를 활성화할 수 있습니다. v2의 보안
모드 설정은 Ceph 데몬과 Ceph 클라이언트 간의 통신을 암호화하여 포괄적인 암호화를 제공합니다.
Ceph의 유선 프로토콜의 두 번째 버전인 msgr2
에는 다음과 같은 몇 가지 새로운 기능이 포함되어 있습니다.
- 네트워크를 통해 이동하는 모든 데이터를 암호화하는 보안 모드입니다.
- 인증 페이로드 적용 개선 사항.
- 광고 및 협상의 개선 사항은 다음과 같습니다.
Ceph 데몬은 여러 포트에 바인드되어 legacy, v1-compatible 및 새로운 v2-compatible, Ceph 클라이언트가 동일한 스토리지 클러스터에 연결할 수 있습니다. Ceph Monitor 데몬에 연결된 Ceph 클라이언트 또는 기타 Ceph 데몬은 가능한 경우 v2
프로토콜을 먼저 사용하려고 하지만 그렇지 않은 경우 레거시 v1
프로토콜을 사용합니다. 기본적으로 v1
및 v2
프로토콜 모두 활성화되어 있습니다. 새로운 v2 포트는 3300이며 레거시 v1 포트는 기본적으로 6789입니다.
v2 프로토콜에는 v1 또는 v2 프로토콜 사용 여부를 제어하는 두 가지 구성 옵션이 있습니다.
-
ms_bind_msgr1
- 이 옵션은 데몬이 v1 프로토콜을 알리는 포트에 바인딩되는지 여부를 제어합니다. 기본적으로true
입니다. -
ms_bind_msgr2
- 이 옵션은 데몬이 v2 프로토콜을 알리는 포트에 바인딩되는지 여부를 제어합니다. 기본적으로true
입니다.
마찬가지로 사용되는 IPv4 및 IPv6 주소를 기반으로 하는 두 가지 옵션 제어
-
ms_bind_ipv4
- 이 옵션은 데몬이 IPv4 주소에 바인딩되는지 여부를 제어합니다. 기본적으로true
입니다. -
ms_bind_ipv6
- 이 옵션은 데몬이 IPv6 주소에 바인딩되는지 여부를 제어합니다. 기본적으로true
입니다.
메시징 프로토콜 v1
또는 v2
를 사용하는 Ceph 데몬 또는 클라이언트는 메시지 큐 증가를 제한하는 메커니즘인 제한을 구현할 수 있습니다. 드문 경우지만 데몬 또는 클라이언트는 제한을 초과하여 메시지 처리 지연이 발생할 수 있습니다. 제한에 도달하면 다음과 같은 하위 수준 경고 메시지가 표시됩니다.
Throttler Limit has been hit. Some message processing may be significantly delayed.
msgr2
프로토콜은 다음 두 가지 연결 모드를 지원합니다.
crc
-
wget으로 연결을 설정하는 경우 강력한 초기 인증을
제공합니다
. -
비트 플립으로부터 보호하기 위해
crc32c
무결성 검사를 제공합니다. - 악의적인 메시지 가로채기(man-in-the-middle) 공격에 대한 보호를 제공하지 않습니다.
- 도파이어가 모든 인증 후 트래픽을 볼 수 없도록 하지 않습니다.
-
wget으로 연결을 설정하는 경우 강력한 초기 인증을
보안
-
wget으로 연결을 설정하는 경우 강력한 초기 인증을
제공합니다
. - 모든 인증 후 트래픽에 대한 전체 암호화를 제공합니다.
- 암호화 무결성 검사를 제공합니다.
-
wget으로 연결을 설정하는 경우 강력한 초기 인증을
기본 모드는 crc
입니다.
암호화 오버헤드를 포함하도록 Red Hat Ceph Storage 클러스터를 계획할 때 클러스터 CPU 요구 사항을 고려해야 합니다.
현재 보안
모드 사용은 Red Hat Enterprise Linux에서 CephFS 및 krbd
와 같은 Ceph 커널 클라이언트에서 지원됩니다. 보안
모드를 사용하는 Ceph 클라이언트에서 OpenStack Nova, Glance, Cinder와 같은 librbd
를 사용할 수 있습니다.
주소 변경 사항
이전 프로토콜의 두 버전이 동일한 스토리지 클러스터에 공존하는 경우 주소 형식이 변경되었습니다.
-
이전 주소 형식은
IP_ADDR:PORT/CLIENT_ID
(예:1.2.3.4:5678/91011)입니다
. -
새 주소 형식은
PROTOCOL_VERSION:IP_ADDR:PORT/CLIENT_ID
(예:v2:1.2.3.4:5678/91011
)입니다. 여기서 PROTOCOL_VERSION 은v1
또는v2
일 수 있습니다.
이제 Ceph 데몬이 여러 포트에 바인드되므로 데몬은 단일 주소 대신 여러 주소를 표시합니다. 다음은 모니터 맵 덤프의 예입니다.
epoch 1 fsid 50fcf227-be32-4bcb-8b41-34ca8370bd17 last_changed 2021-12-12 11:10:46.700821 created 2021-12-12 11:10:46.700821 min_mon_release 14 (nautilus) 0: [v2:10.0.0.10:3300/0,v1:10.0.0.10:6789/0] mon.a 1: [v2:10.0.0.11:3300/0,v1:10.0.0.11:6789/0] mon.b 2: [v2:10.0.0.12:3300/0,v1:10.0.0.12:6789/0] mon.c
또한 mon_host
구성 옵션 및 명령줄에서 -m
을 사용하여 주소를 지정하면 새 주소 형식이 지원됩니다.
연결 단계
암호화된 연결을 수행하기 위한 네 가지 단계가 있습니다.
- 배너
-
연결 시 클라이언트와 서버가 배너를 보냅니다. 현재 Ceph 배너는
ceph 0n
입니다. - 인증 교환
- 전송 또는 수신되는 모든 데이터는 연결 기간 동안 프레임에 포함됩니다. 서버는 인증이 완료되었는지와 연결 모드가 될지를 결정합니다. 프레임 형식이 수정되었으며 사용 중인 인증 플래그에 따라 세 가지 형식으로 될 수 있습니다.
- 메시지 흐름 핸드셰이크 교환
- 피어는 서로를 식별하고 세션을 설정합니다. 클라이언트는 첫 번째 메시지를 전송하고 서버는 동일한 메시지로 응답합니다. 클라이언트가 잘못된 데몬과 통신하면 서버를 닫을 수 있습니다. 새로운 세션의 경우 클라이언트와 서버는 메시지 교환을 진행합니다. 클라이언트 쿠키는 세션을 식별하는 데 사용되며 기존 세션에 다시 연결할 수 있습니다.
- 메시지 교환
- 클라이언트와 서버는 연결이 닫힐 때까지 메시지를 교환하기 시작합니다.
추가 리소스
-
msgr2
프로토콜 활성화에 대한 자세한 내용은 Red Hat Ceph Storage Data Security and Hardening Guide 를 참조하십시오.