3.6. Ceph 온-유선 암호화
지저 버전 2 프로토콜을 사용하여 네트워크를 통해 모든 Ceph 트래픽에 대해 암호화를 활성화할 수 있습니다. v2의 보안
모드 설정은 Ceph 데몬과 Ceph 클라이언트 간의 통신을 암호화하여 엔드 투 엔드 암호화를 제공합니다.
Ceph의 유선 프로토콜인 msgr2
의 두 번째 버전에는 몇 가지 새로운 기능이 포함되어 있습니다.
- 보안 모드는 네트워크를 통해 이동하는 모든 데이터를 암호화합니다.
- 인증 페이로드의 캡슐화 개선
- 광고 및 협상 기능 개선
Ceph 데몬은 기존, v1-호환 및 새로운 v2-호환 Ceph 클라이언트를 모두 동일한 스토리지 클러스터에 연결할 수 있도록 여러 포트에 바인딩합니다. Ceph Monitor 데몬에 연결하는 Ceph 클라이언트 또는 기타 Ceph 데몬에서는 가능한 경우 v2
프로토콜을 먼저 사용하려고 하지만 그렇지 않은 경우 기존 v1
프로토콜이 사용됩니다. 기본적으로, 메시징 프로토콜인 v1
및 v2
가 모두 활성화됩니다. 새로운 v2 포트는 3300이며 레거시 v1 포트는 기본적으로 6789입니다.
동작 v2 프로토콜에는 v1 또는 v2 프로토콜 사용 여부를 제어하는 두 가지 구성 옵션이 있습니다.
-
ms_bind_msgr1
- 이 옵션은 데몬이 v1 프로토콜이라는 포트에 바인딩하는지 여부를 제어합니다. 기본적으로마찬가지입니다
. -
ms_bind_msgr2
- 이 옵션은 데몬이 v2 프로토콜이라는 포트에 바인딩하는지 여부를 제어합니다. 기본적으로마찬가지입니다
.
마찬가지로, 사용된 IPv4 및 IPv6 주소를 기반으로 두 가지 옵션을 제어합니다.
-
ms_bind_ipv4
- 이 옵션은 데몬이 IPv4 주소에 바인딩하는지 여부를 제어합니다. 기본적으로true
입니다. -
ms_bind_ipv6
- 이 옵션은 데몬이 IPv6 주소에 바인딩하는지 여부를 제어합니다. 기본적으로true
입니다.
msgr2
프로토콜은 두 가지 연결 모드를 지원합니다.
crc
-
cephx
로 연결이 설정된 경우 강력한 초기 인증을 제공합니다. -
비트로부터 보호하기 위해
crc32c
무결성 검사를 제공합니다. - 악의적인 man-in-the-middle 공격에 대한 보호 기능을 제공하지 않습니다.
- eavesdropper가 모든 인증 후 트래픽을 보는 것을 방지하지는 않습니다.
-
보안
-
cephx
로 연결이 설정된 경우 강력한 초기 인증을 제공합니다. - 모든 인증 후 트래픽에 대한 완전한 암호화를 제공합니다.
- 암호화 무결성 검사를 제공합니다.
-
기본 모드는 crc
입니다.
암호화 오버헤드를 포함하도록 Red Hat Ceph Storage 클러스터를 계획할 때 클러스터 CPU 요구 사항을 고려해야 합니다.
보안
모드를 사용하는 것은 현재 Red Hat Enterprise Linux에서 CephFS 및 CephFS d와
같은 Ceph 커널 클라이언트에서 지원됩니다. 보안
모드 사용은 OpenStack Nova, Glance, Cinder와 같은 librbd
를 사용하여 Ceph 클라이언트에서 지원합니다.
주소 변경
동일한 스토리지 클러스터에서 공존하기 위한 메시지 프로토콜의 두 버전 모두에 대해 주소 형식이 변경되었습니다.
-
이전 주소 형식은
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
을 사용하여 명령줄에서 주소를 지정하면 새 주소 형식을 지원합니다.
연결 단계
암호화된 연결을 만드는 4 단계가 있습니다.
- Banner
-
연결 시 클라이언트와 서버는 모두 배너를 보냅니다. 현재 Ceph 배너는
ceph 0 0 0n
입니다. - 인증 교환
- 전송 또는 수신되는 모든 데이터는 연결 기간 동안 프레임에 포함됩니다. 서버는 인증이 완료되었는지, 연결 모드가 무엇인지 결정합니다. 프레임 형식은 고정되어 있으며 사용 중인 인증 플래그에 따라 세 가지 형식일 수 있습니다.
- 메시지 Flow Handshake Exchange
- 피어는 서로를 확인하고 세션을 설정합니다. 클라이언트는 첫 번째 메시지를 전송하고 서버는 동일한 메시지로 응답합니다. 클라이언트가 잘못된 데몬과 통신하면 서버에서 연결을 닫을 수 있습니다. 새로운 세션의 경우 클라이언트 및 서버는 메시지 교환을 진행합니다. 클라이언트 쿠키는 세션을 식별하는 데 사용되며 기존 세션에 다시 연결할 수 있습니다.
- 메시지 교환
- 클라이언트와 서버는 연결이 닫힐 때까지 메시지 교환을 시작합니다.
추가 리소스
-
msgr2
프로토콜 활성화에 대한 자세한 내용은 Red Hat Ceph Storage Data Security and Hardening Guide 를 참조하십시오.