3.6. Ceph 온-선 암호화
enger 버전 2 프로토콜을 사용하여 네트워크를 통한 모든 Ceph 트래픽에 대해 암호화를 활성화할 수 있습니다. v2의 보안
모드 설정은 Ceph 데몬과 Ceph 클라이언트 간의 통신을 암호화하여 엔드 투 엔드 암호화를 제공합니다.
Ceph의 on-wire 프로토콜의 두 번째 버전인 msgr2
에는 몇 가지 새로운 기능이 포함되어 있습니다.
- 네트워크를 통해 이동하는 모든 데이터를 암호화하는 보안 모드입니다.
- 인증 페이로드의 캡슐화 개선
- 광고 및 협상에 대한 개선 사항
Ceph 데몬은 여러 포트에 바인딩되므로 레거시 v1-호환 및 새로운 v2 호환 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
입니다.
msgr2
프로토콜은 다음 두 가지 연결 모드를 지원합니다.
crc
-
cephx
를 사용하여 연결이 설정된 경우 강력한 초기 인증을 제공합니다. -
비트 플립으로부터 보호하기 위해
crc32c
무결성 검사를 제공합니다. - 악의적인 중간자 공격에 대한 보호 기능을 제공하지 않습니다.
- 도청자가 모든 인증 후 트래픽을 보는 것을 방지하지 않습니다.
-
보안
-
cephx
를 사용하여 연결이 설정된 경우 강력한 초기 인증을 제공합니다. - 모든 인증 후 트래픽에 대한 완전한 암호화를 제공합니다.
- 암호화 무결성 검사를 제공합니다.
-
기본 모드는 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
을 사용하여 명령줄에서 주소를 지정하면 새 주소 형식을 지원합니다.
연결 단계
암호화된 연결을 만들기 위한 4단계가 있습니다.
- 배너
-
연결 시 클라이언트와 서버 모두 배너를 보냅니다. 현재 Ceph 배너는
ceph 0n
입니다. - 인증 교환
- 전송 또는 수신되는 모든 데이터는 연결 기간 동안 프레임에 포함됩니다. 서버에서 인증이 완료되었는지와 연결 모드를 결정합니다. 프레임 형식은 고정되어 있으며 사용 중인 인증 플래그에 따라 세 가지 형태로 있을 수 있습니다.
- 메시지 흐름 핸드셰이크 교환
- 피어는 서로를 식별하고 세션을 설정합니다. 클라이언트는 첫 번째 메시지를 보내고 서버는 동일한 메시지로 응답합니다. 클라이언트가 잘못된 데몬과 통신하면 서버가 연결을 닫을 수 있습니다. 새 세션의 경우 클라이언트와 서버는 메시지 교환을 진행합니다. 클라이언트 쿠키는 세션을 식별하는 데 사용되며 기존 세션에 다시 연결할 수 있습니다.
- Message Exchange
- 연결이 닫힐 때까지 클라이언트와 서버는 메시지 교환을 시작합니다.
추가 리소스
-
msgr2
프로토콜 활성화에 대한 자세한 내용은 Red Hat Ceph Storage Data Security and Hardening Guide 를 참조하십시오.