카우치베이스 클러스터에 IPsec 구성하기

소개

데이터 거버넌스 정책이나 규정 준수와 같은 이유로 인해 네트워크 전반의 노드 간에 보안 통신이 필요한 Couchbase 배포가 있을 수 있습니다.  인터넷 프로토콜 보안(IPsec) 는 인증을 통한 안전한 인터넷 프로토콜(IP) 통신을 위한 프로토콜 제품군입니다.ng 를 암호화하고 IP 패킷 를 보호하는 데 사용할 수 있습니다. IPsec은 한 쌍의 호스트 간의 데이터 흐름을 보호하는 데 사용할 수 있습니다(호스트 대 호스트), 한 쌍의 보안 게이트웨이(네트워크 간 네트워크) 또는 보안 게이트웨이와 호스트 사이(네트워크 대 호스트). 이 문서의 목표는 Couchbase 관리자에게 Couchbase 클러스터의 노드에서 IPsec을 구성하는 방법에 대한 빠른 시작을 제공하기 위한 것입니다.  

IPsec 모드

IPSec에는 터널 모드와 전송 모드의 두 가지 모드가 있습니다. 가장 널리 사용되는 것은 터널 모드로, 일반적으로 VPN 설정(터널 네트워크 장치 생성 중)에 사용됩니다. 터널 모드는 모든 노드 쌍 사이에 터널을 만들고 유지 관리해야 하므로 Couchbase 클러스터에는 실용적이지 않습니다.

전송 모드는 동일한 네트워크의 노드 간 통신을 보호할 때 필요합니다. 이 모드를 사용하면 패킷 단위로 IPsec을 사용할 수 있습니다. 애플리케이션을 완전히 투명하게 보호합니다.

IPSec은 패킷 인증(즉, 수신되는 패킷이 신뢰할 수 있는 노드의 패킷인지 확인) 및 패킷 암호화를 제공할 수 있습니다. 전송 모드 및 관련 보안 정책 데이터베이스 항목을 통해 Couchbase 클러스터에 필요한 동작을 설정할 수 있습니다:

  • 특정 종류의 수신 패킷은 ipsec으로 캡슐화되고 유효한 경우에만 허용됩니다(그렇지 않으면 삭제됨).

  • 특정 종류의 발신 패킷은 ipsec으로 캡슐화해야 합니다.

일반적으로 '특정 종류'는 다음과 같은 의미입니다: 카우치베이스 클러스터 네트워크 세그먼트와 주고받는 모든 패킷. 또는 모두와 같은 것일 수도 있습니다: 카우치베이스 서비스 포트와 주고받는 모든 패킷.

요구 사항

  • Linux 배포판(이 블로그에서는 데비안이 사용됨). Windows는 IPsec을 지원하지만 테스트되지 않았습니다.

  • Linux Openswan U2.6.32/K2.6.32-573.el6.x86_64(netkey) 이상
  • Couchbase 4.1 이상
  • 시스템에 대한 sudo/루트 사용자 액세스

OpenSwan 설치 및 구성

sudo를 사용하여 명령줄에서 각 노드에서 다음 명령을 실행했습니다. 다른 Linux 배포판의 경우 해당 패키지 관리자를 사용하세요.

# sudo apt-get 업데이트

# sudo apt-get 설치 openswan

설치 프로그램에서 사용자에게 x.509 인증서를 만들라는 메시지가 표시될 수 있지만, x.509 인증서를 만들지 마세요. 전송 모드를 위해 IPsec을 구성해야 합니다. 이 블로그를 위해 만든 데모 환경에는 10.0.2.4와 10.0.2.5의 두 노드가 있습니다.  

단계

1 - 각 노드에서 /etc/ipsec.secrets 파일에 다음과 같은 줄을 추가합니다: ipaddress_node1 ipaddress_node2: PSK "일부_키"

2 - ipsec.d 하위 디렉터리에 있는 *.conf 파일을 사용하도록 /etc/ipsec.conf 파일을 수정합니다. 이렇게 하면 클러스터에 노드를 추가해야 하는 경우 쉽게 자동화할 수 있습니다. 각 노드 쌍에는 고유한 항목이 필요합니다.  

3 - /etc/ipsec.d/ 디렉터리에 다음 정보를 사용하여 구성 파일을 만듭니다:

conn 카우치베이스

유형=트랜스포트

authby=비밀

왼쪽=

오른쪽=

pfs=예

자동=시작

  • conn couchbase -connection: 연결에 대한 임의의 레이블을 지정합니다. 원하는 모든 것을 입력할 수 있습니다.
  • type=transport: 이 연결에 전송 모드를 사용하려고 합니다.authby=비밀: 이 연결에는 사전 공유 키(PSK)를 사용합니다.
  • 왼쪽=10.0.2.4: 이 줄과 다음 줄은 이 IPsec 연결에 관련된 IP 주소를 나타냅니다. 어떤 IP가 "왼쪽"이고 어떤 IP가 "오른쪽"인지는 중요하지 않습니다.
  • 오른쪽=10.0.2.5: 위 글머리 기호 참조.
  • pfs=yes: 이 연결에 대해 완전 전달 비밀을 사용하도록 설정합니다. 간단히 말해, 보안이 크게 향상됩니다. I자동=시작: 선제적으로 IPsec 연결을 즉시 시작하려고 합니다. 자동=시작으로 설정할 수도 있는데, 이 경우 연결의 다른 쪽 끝에서 트래픽이 시작될 때까지 기다립니다.

4 - 두 노드 모두에서 새 구성을 사용하도록 IPSec을 활성화합니다: 1TP5서비스 ipsec 재시작

설정 테스트

한 노드의 명령줄에서 다음 명령을 입력합니다:  

#ping

다른 노드에서 명령줄을 사용하여 다음을 입력합니다. (원하는 결과) 메시지가 나타나지 않으면 설정을 디버그해야 합니다(아래 나열된 IPsec 가이드를 참조하세요).

#sudo tcpdump esp

참고: ESP = 보안 페이로드 캡슐화

카우치베이스 구성

각 노드에 Couchbase를 설치합니다(간단한 2노드 구성). 클러스터를 설정합니다. 두 노드 간의 모든 통신은 위의 샘플은 두 Couchbase 노드 간의 통신을 문서화한 것으로, tcpdump esp 명령을 사용하여 추적할 수 있습니다.

카우치베이스 테스트 클러스터:

Couchbase Test Cluster

스크린샷 - #sudo tcpdump esp

참조

IPsec 개요 https://en.wikipedia.org/wiki/IPsec

IPsec 전송 모드 구현하기 - 2.  http://andersonfam.org/2014/04/02/ipsec-transport-mode/

StrongSwan 사용(3노드 예시) - - http://blog.sprinternet.at/2016/03/ipsec-transport-mode-with-strongswan-on-debian-jessie/

이 테스트에 사용된 샘플 구성 파일

/etc/ipsec.conf

# /etc/ipsec.conf - Openswan IPsec 구성 파일

#

# 매뉴얼: ipsec.conf.5

#

# .conf로 끝나는 /etc/ipsec.d/에 자체 설정 파일을 배치하세요.

버전 2.0       #는 두 번째 버전의 ipsec.conf 사양을 준수합니다.

# 기본 구성

구성 설정

           # 디버그 로깅 컨트롤: (거의) 없는 경우 "없음", 많은 경우 "모두".

           # 클립 디버그=없음

           # 플루토데버그="제어 구문 분석"

           # 레드햇 엔터프라이즈 리눅스 및 페도라의 경우, 프로토스택=넷키를 그대로 둡니다.

           프로토스택=넷키

           nat_traversal=yes

           가상_개인=

           oe=off

           # "사용 가능한 작업자를 찾지 못했습니다"가 표시되면 이 옵션을 활성화합니다.

           # n헬퍼=0

#설정(.conf) 파일을 "/etc/ipsec.d/"에 넣고 주석 처리를 해제할 수 있습니다.

include /etc/ipsec.d/*.conf

/etc/ipsecrets

include /etc/ipsec.d/*.secrets

# 사용자 환경의 IP 주소 사용

10.0.2.4 10.0.2.5: PSK "공유 키"

 

/etc/ipsec.d/couchbase.conf

conn 카우치베이스

       유형=트랜스포트

       authby=비밀

          왼쪽=10.0.2.4

          오른쪽=10.0.2.4

       pfs=y

       자동=시작

 

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 팀 웡

Tim은 샌프란시스코 베이 지역의 고객을 지원하는 Couchbase의 수석 솔루션 컨설턴트입니다. 그는 20년 이상 데이터베이스, 엔터프라이즈 데이터 통합(배치, 실시간, 클라우드) 및 비즈니스 인텔리전스 기술 분야에서 일해 왔으며 Oracle, TIBCO, Informatica에서 근무한 경력이 있습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.