이 블로그 게시물에서는 관리자가 Couchbase Server를 안전하게 배포하는 데 도움이 되는 Couchbase Server 7.0.2("Server")의 새로운 기능 세 가지를 소개합니다: TLS, HSTS 및 IP 주소군 적용.
Couchbase Server 클러스터를 배포할 때는 서버 노드가 인터넷에 직접 연결되지 않도록 하는 것이 가장 좋습니다. 고객은 클러스터의 네트워크 경계에 방화벽을 배포하고 각 Server 노드에 방화벽을 배포하는 것이 좋습니다. 이러한 방화벽은 안전하지 않은 모든 포트, 사용하지 않는 서비스용 포트, 사용하지 않는 전체 IP 주소군을 차단하도록 구성해야 합니다.
이 세 가지 새로운 기능이 바로 이 부분에서 중요한 역할을 합니다. 관리자는 방화벽을 배포하고 필요에 따라 특정 포트만 허용해야 합니다. 새로운 설정은 동일한 목표를 달성하는 추가적인 보호 기능을 제공하며, 이를 보완 제어라고도 합니다.
TLS 적용
첫 번째 새로운 기능은 TLS 네트워크 암호화 적용입니다. Couchbase Server 6.5.0에서는 다음을 도입했습니다. 노드 간 암호화. 노드 간 암호화를 사용하도록 설정하면 Couchbase Server 노드 간에 데이터가 처리되는 방식을 구성할 수 있습니다.
선택적으로 제어 데이터를 암호화하도록 구성하거나 노드 간의 모든 데이터를 암호화할 수 있습니다. 이렇게 하면 노드 간 클러스터 네트워크 트래픽이 안전하게 보호되며, 관리자가 암호화된 네트워크 연결을 통해서만 클러스터에 연결하도록 애플리케이션을 배포하면 네트워크의 모든 데이터베이스 데이터가 암호화됩니다. 이 때 관리자는 방화벽을 배포하여 암호화되지 않은 네트워크 트래픽 또는 일반 텍스트 네트워크 트래픽을 처리하는 네트워크 포트를 차단합니다.
새로운 TLS 적용 기능으로 클러스터 암호화 설정에 세 번째 옵션을 추가하여 더욱 엄격하게 설정할 수 있습니다. 이 옵션을 활성화하면 클러스터 전체에서 허용되는 네트워크 트래픽만 안전하게 암호화됩니다. 이는 웹 UI, 명령줄 도구, 애플리케이션 액세스 및 클러스터 내 노드 간의 네트워크 트래픽 등 모든 것에 적용되지만 로컬 루프백 인터페이스에는 적용되지 않습니다.
TLS 적용은 CLI 명령을 사용하여 쉽게 구현할 수 있습니다:
couchbase-cli 설정 -보안 -클러스터-암호화 수준 엄격
HTTP 보안 전송 헤더(HSTS)
TLS 적용 설정과 함께 선택적으로 HTTP 보안 전송 헤더(HSTS)를 활성화하는 새로운 설정도 있습니다. HTTP 엄격한 전송 보안 헤더는 사용자의 웹 브라우저에 HTTP를 사용하여 사이트를 로드해서는 안 되며, HTTP를 사용하여 사이트에 액세스하려는 모든 시도를 HTTPS 요청으로 자동 변환해야 함을 알립니다. 이 헤더는 모든 UI 액세스가 HTTPS를 통해서만 이루어지도록 하려는 경우에 유용합니다.
브라우저는 도메인이 HSTS를 사용하도록 설정한 것을 알면 두 가지 작업을 수행합니다:
- 항상 https:// 연결을 클릭하는 경우에도 http:// 링크를 클릭하거나 프로토콜을 지정하지 않고 위치 표시줄에 도메인을 입력한 후 입력합니다.
- 사용자가 유효하지 않은 인증서에 대한 경고를 클릭할 수 있는 기능을 제거합니다.
카우치베이스 서버에 대해 기억해야 할 한 가지는 기본적으로 UI의 비-TLS 포트는 다음과 같습니다. 8091 인 반면, TLS 포트는 18091. HSTS를 사용하도록 설정하면 http://cluster:8091 은 자동으로 https://cluster:8091가 아닌 18091 포트.
HSTS는 CLI 명령으로 활성화할 수 있습니다:
couchbase-cli 설정-보안 -hsts-max-age
구성 최대 연령 설정을 초 단위로 설정하여 브라우저가 HTTPS를 통해서만 카우치베이스 UI에 액세스하도록 기억해야 하는 시간으로 설정할 수 있습니다.
선택적으로 HSTS를 활성화/비활성화하도록 선택할 수도 있습니다. 사전 로드 그리고 포함 하위 도메인 지시어.
IP 주소 제품군 적용
또한 방화벽을 사용하여 전체 IP 주소군을 포함하여 필요하지 않은 포트 및 프로토콜에 대한 모든 네트워크 트래픽을 차단할 것을 고객에게 권장합니다. 예를 들어, 조직에서 IPv4 주소만 사용하는 경우 방화벽 수준에서 Couchbase Server 노드에서 IPv6 주소에 대한 모든 액세스를 차단해야 합니다. 몇 가지 보완 제어를 추가하기 위해 IP 주소 패밀리 설정에 옵션을 추가했습니다.
앞의 예에서 조직이 IPv4 주소만 사용하고 CLI 명령을 사용한 경우:
couchbase-cli ip-family -set -ipv4
...클러스터는 노드 간 통신에 IPv4를 사용하지만 방화벽이 설치되어 있지 않으면 클라이언트에서 IPv6를 통해 트래픽이 이동할 수 있습니다. IPv4 주소가 바인딩되지 않으면 노드는 자동으로 페일오버됩니다. 새로운 -ipv4only 옵션을 사용하면 클러스터가 IPv4 인터페이스에만 바인딩을 시도하고 IPv6 네트워크 통신은 허용하지 않도록 지시합니다.
또는 다음과 같은 방법도 있습니다. -ipv6 그리고 -ipv6only 옵션을 사용하면 동일한 결과를 얻을 수 있지만 IPv4 주소 계열 대신 IPv6 주소 계열을 사용할 수 있습니다. 만약 -ipv4 그리고 -ipv6 가 모두 설정되어 있으면 두 인터페이스가 모두 바인딩되어야 하며, 둘 중 하나라도 사용 가능한 경우 시스템이 이를 사용하고 시작해야 합니다.
결론
이 글에서는 TLS, HSTS 및 IP 주소군 적용에 대해 설명했습니다. 이러한 모든 보안 기능은 시스템을 침해하려는 공격자에게 강력한 방어벽을 만드는 것입니다. 보안이 중요하다면 Couchbase 데이터를 보호하는 데 도움이 되는 보안 기능에 대한 몇 가지 추가 블로그 게시물을 읽어보시기 바랍니다.