Illumio ASP의 잘 알려지지 않은 기능 — 정책 컴퓨팅 엔진 인증서 검사
이 짧은 시리즈에서 Illumio 제품 관리 팀은 덜 알려져 있지만 그다지 강력하지는 않은 기능을 강조할 것입니다.일루미오 ASP.
TLS (전송 계층 보안) 프로토콜 공개 키 인증서를 활용하여 컴퓨터 네트워크를 통한 통신을 보호하기 위한 암호화 프로토콜입니다.공개 키 인증서의 가장 일반적인 형식은 에 설명된 X.509입니다. RFC 5280.X.509 인증서는 인증, 암호화, 신뢰 등과 같은 다양한 용도에 대한 옵션이 포함된 복잡한 암호화 문서입니다. 업계 모범 사례에 따라 일루미오 ASP 통신은 TLS를 사용하여 보호됩니다.
Illumio ASP에서 통신을 보호하려면 특정 배포 기준과 함께 인증서에 특정 옵션이 있어야 하며 인증서는 인증서에 설치되어야 합니다. 정책 컴퓨팅 엔진 (PCE)가시성과 정책 관리를 중앙 집중화하는 Illumio ASP의 “두뇌”입니다.이러한 기준은 인증서의 일반적인 기준이지만 번거로울 수 있으며 사용자의 세부 사항에 주의를 기울여야 합니다.
이 블로그 게시물에서는 Illumio PCE 인증서의 배포 기준과 잘 알려지지 않은 인증서 검사 기능에 대해 설명하겠습니다.
TLS 프로토콜 및 인증서
TLS는 다음 통신 세션의 보안을 유지하는 데 사용됩니다.
- HTTPS (TLS를 통한 HTTP) 프로토콜을 통한 PCE 웹 콘솔 및 REST API에 대한 사용자 액세스
- HTTPS를 통한 REST API와 TCP를 통한 TLS를 사용하는 사용자 지정 프로토콜인 이벤트 서비스를 통한 PCE와 VEN 간의 통신
- 다중 노드 클러스터의 여러 PCE 노드에 있는 PCE 서비스 간의 통신 (예: 클러스터 관리 및 서비스 검색).
TLS의 경우 설치 중에 각 PCE 노드에 X.509 서버 인증서를 설치해야 합니다.클라이언트 (예: VEN) 가 PCE에 TLS 세션을 열면 PCE는 클라이언트와의 통신을 보호하기 위해 X.509 서버 인증서를 제공합니다.설치 중에 서버 인증서는 인증서 번들의 일부로 PCE에 업로드됩니다. 이 번들에는 서버 인증서와 CA 인증서 세트 (중간 또는 루트) 가 들어 있어 루트 CA에 신뢰 체인을 다시 설정하기 위한 인증서 번들의 일부로 PCE에 업로드됩니다.
X.509 인증서는 일반적으로 Digicert, Verisign, GoDaddy 및 LetsEncrypt와 같은 공공 인증 기관 (CA) 에서 발급합니다.또한 고객은 자체 사설 CA (내부 CA) 에서 발급한 인증서를 사용하거나 자체 서명된 인증서를 사용할 수 있습니다.인증서 발급 방법에 관계없이 클라이언트는 이 인증서에 대해 루트 CA에 대한 신뢰 체인을 다시 검증할 수 있어야 합니다. 그렇지 않으면 TLS 핸드셰이크가 실패하고 보안 통신 채널을 설정할 수 없습니다.
PCE 인증서 확인
PCE를 처음 배포하는 동안 사용자는 일반적으로 다양하고 복잡한 요구 사항이 충족되는지 확인하기 위해 인증서를 검증해야 합니다.Illumio PCE에는 특정 배포 기준에 대한 인증서 검사를 자동화하여 사용자를 지원하는 인증서 검사 도구가 함께 제공됩니다.
Illumio PCE의 인증서 패키지는 다음 기준을 충족해야 합니다.
- PEM으로 인코딩된 인증서를 포함해야 합니다.
- 인증서는 허용 가능한 서명 알고리즘을 사용하여 서명됩니다.
- 패키지에는 루트 CA에 대한 신뢰 체인을 다시 설정하는 데 필요한 모든 CA 인증서 (중간 및/또는 루트) 가 포함되어야 합니다.사설 CA에서 인증서를 생성한 경우 패키지에는 루트 CA로 다시 연결되는 신뢰 체인의 모든 인증서와 모든 중간 CA 인증서가 포함되어야 합니다.
- 서버 인증은 번들의 첫 번째 인증서여야 합니다.
- 번들의 모든 인증서는 현재 날짜에 유효해야 합니다.
- 인증서는 주체 및 SAN (주체 대체 이름) 필드 모두에서 PCE FQDN과 일치해야 합니다.
- 인증서는 서버 인증과 클라이언트 인증을 모두 지원해야 합니다.
마찬가지로 X.509 인증서와 일치하는 개인 키는 다음 기준에 따라 각 PCE 노드에 설치해야 합니다.
- 개인 키는 PEM으로 인코딩되어야 합니다.
- 파일은 DER, PKCS7/P7B, PKCS8 또는 PKCS12/PFX와 같은 다른 방식으로 인코딩해서는 안 됩니다.
- 파일은 암호로 보호되지 않아야 합니다.
시간이 지나면서 Illumio는 기업에서의 PCE 배포가 인증서 생성 및 배포와 관련하여 여러 가지 문제에 직면한다는 사실을 알게 되었습니다.
예를 들어, PCE FQDN에 대한 인증서가 발급되지 않았거나, 여러 노드의 호스트 이름이 SAN 필드에 제대로 포함되지 않았거나, 인증서의 Extended Key Usage 필드에 올바른 옵션 집합이 제공되지 않을 수 있습니다.마찬가지로, 설치 프로세스 중에 파일 또는 디렉터리에 대한 올바른 권한 없이 인증서를 설치하거나 설치 중에 신뢰 체인의 일부가 누락될 수 있습니다.
이러한 문제는 초기 설치 프로세스에만 국한되며 이후에도 계속될 수 있습니다.PCE가 4노드 클러스터에서 6노드 클러스터로 확장되는 경우 새 노드의 FQDN을 SAN 필드에 포함하도록 인증서를 업데이트해야 합니다.인증서를 사용하는 수작업을 줄이기 위해 Illumio는 인증서를 자동으로 검사하는 “illumio-pce-env”라는 관리 명령줄 도구를 제공합니다.
이 도구는 다음과 같은 다양한 사용 사례에 대해 인증서를 검증할 수 있는 몇 가지 옵션을 제공합니다.
- 신뢰 체인 및 기타 측면을 포함한 기본 테스트를 통해 TLS 인증서의 유효성을 검사하려면 다음 명령을 실행합니다.
- 일루미오-pce-env 설정 --list
- “--list” 옵션을 지정하면 구성 및 인증서를 확인하고 반환 코드를 설정하여 발생 가능한 문제를 나타냅니다.이는 문제를 빠르게 확인할 수 있는 방법이며 Chef, Ansible 또는 기타 설치 스크립트의 일부로 호출할 수 있습니다.
- 신뢰 체인 및 기타 측면을 포함한 기본 테스트를 통해 TLS 인증서의 유효성을 검사하려면 다음 명령을 실행합니다.
- 일루미오-pce-env 설정 —목록 —테스트 5
- 이전 명령이 실패할 경우 관리자는 무엇이 잘못되었는지 정확히 찾아내기를 원할 수 있습니다.이를 돕기 위해 --test 옵션을 사용하여 상세도 수준 인수 (1 (최소) ~ 5 (최대)) 를 지정할 수 있습니다.상세 수준 5를 사용하면 명령은 실행된 테스트에 대한 정보 및 각 테스트의 결과를 포함하여 인증서 검증의 각 단계에 대한 세부 결과를 표시합니다.이를 통해 인증서 또는 신뢰 체인의 정확한 문제를 진단할 수 있습니다.
- 대체 도메인 이름으로 인증서를 검증하려면 다음 명령을 실행합니다.
- illumio-pce-env 설정 --list —test 5:some.Alternative.HostandDomainName
- 운영 중인 PCE에 사용할 FQDN 계획이 테스트 배포와 다르거나 PCE를 4노드 클러스터에서 6노드 클러스터로 확장하는 경우 SAN 필드에 올바른 호스트 이름이 포함되어 있는지 확인해야 합니다.SAN 필드에서는 와일드카드를 사용할 수 있으므로 유효한 호스트 이름을 수동으로 확인하기가 약간 까다롭습니다.이 구문은 인증서와 체인을 지정된 some.Alternative.HostandDomainName과 비교하여 검사합니다.
- '+' 구문을 사용하는 엔드 투 엔드 테스트로 인증서를 검증하려면 다음 명령을 실행합니다.
- 일루미오-pce-env 설정 --list --test 5+
- 여기서 테스트할 인수는 “5+”입니다.때때로 인증서의 정적 테스트로는 충분하지 않을 수 있으며 관리자는 운영 체제 TLS 라이브러리를 사용하여 인증서의 전체 종단 간 테스트를 통해 시스템의 유효성을 검사하고자 할 수 있습니다.이는 인증서의 실제 런타임 사용을 에뮬레이션합니다.'+' 구문은 포트 4433에서 실행되는 루프백 OpenSSL 서버를 생성하고 curl 명령을 사용하여 TLS 연결을 설정하려고 시도합니다.
- 인증서를 계획된 생산 위치에 복사하기 전에 인증서의 유효성을 검사하려면 다음 명령을 실행합니다.
- illumio-pce-env 설정 --batch --list\ email=필수 @emailaddress 노드=값\ cert=/path/to/cert\ pkey=/path/to/private_key\ trust=/path/to/certificate_chain\ --test 5
- 관리자가 인증서를 실제로 설치하지 않고 인증서를 확인하려는 경우 이를 허용하는 구문이 있습니다.이 방법은 새 인증서를 배포한 후 관리자가 해당 인증서가 PCE 요구 사항을 충족하는지 확인하려는 경우에 사용됩니다.
illumio-pce-env 도구로 표시되는 전체 메시지 목록과 잠재적 오류 메시지의 전체 목록은 Illumio PCE 설명서를 참조하십시오.
요약하면 TLS와의 통신 보안에 사용되는 X.509 인증서는 요구 사항이 다양하고 복잡하므로 관리자가 검증하기가 부담스러울 수 있습니다.Illumio ASP는 기본 테스트부터 전체 전체 테스트, 배포 전 보다 정확하고 정밀한 테스트에 이르기까지 다양한 요구 사항에 맞게 인증서를 검증할 수 있는 다양한 옵션을 갖춘 명령줄 도구를 제공합니다.
이 블로그 게시물이 Illumio PCE의 잘 알려지지 않은 유용한 기능에 대한 통찰력을 제공하는 데 도움이 되었기를 바랍니다.더 궁금한 점이 있으면 [email protected] 으로 문의하십시오. 이 시리즈의 다음 내용을 다루는 다른 게시물을 확인하는 것도 잊지 마세요.