주:
- 이 사용지침서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 대한 예제 값을 사용합니다. 실습을 마칠 때는 이러한 값을 클라우드 환경과 관련된 값으로 대체하십시오.
Let's Encrypt 인증서로 OCI Network Firewall 및 OCI WAF Edge를 사용하여 애플리케이션 보호
소개
광범위한 디지털 혁신이 지배하는 환경에서 애플리케이션의 보안은 단순한 고려 사항이 아니라 타협 없는 우선 순위입니다. 조직이 워크로드를 Oracle Cloud Infrastructure(OCI)로 마이그레이션함에 따라 사이버 위협에 대한 강력한 방어 전략이 필수가 되었습니다. OCI는 애플리케이션 강화를 위한 포괄적인 도구 모음을 제공하며, 이 자습서에서는 OCI 네트워크 방화벽 및 OCI WAF(Web Application Firewall) 에지를 사용하여 디지털 자산을 보호하는 프로세스를 안내합니다.
이 튜토리얼은 왜 필수적인가?
애플리케이션이 외부 세계와 통신함에 따라 사이버 보안 위협이 직면하고 있습니다. 이 사용지침서에서는 OCI 네트워크 방화벽 및 OCI WAF 에지의 기능을 활용하여 알려진 위협 및 새로운 위협으로부터 애플리케이션을 보호하는 다층 방어 체계를 구축할 수 있습니다. 우리는 다중 도메인 지원 및 표준 도구를 사용하여 X.509 인증서의 생성 또는 갱신을 포함한 중요한 개념을 탐구 할 것입니다. 또한 널리 인정받는 무료 서비스인 Let's Encrypt의 사용도 살펴볼 것입니다. 이를 통해 애플리케이션 보안을 위한 필수 관행을 포괄적으로 이해할 수 있습니다.
이 튜토리얼은 누구를 위한 것입니까?
이 사용지침서에서는 Oracle Cloud Infrastructure 보안 기능에 대한 포괄적인 이해를 모색하는 클라우드 설계자, 보안 전문가 및 개발자를 대상으로 합니다. 노련한 클라우드 실무자이든 클라우드 보안 여정을 시작하는 자습서든 이 자습서에서는 애플리케이션을 강력하게 방어할 수 있는 기술을 습득할 수 있습니다.
OCI 네트워크 방화벽이란?
Oracle Cloud Infrastructure Network Firewall은 Palo Alto Networks를 사용하여 구축된 최첨단 관리형 방화벽 서비스를 나타냅니다. 차세대 방화벽 기술(NGFW) 머신 러닝 기반 방화벽 기능을 제공하여 OCI 워크로드를 보호하고 OCI에서 쉽게 사용할 수 있습니다. OCI 네이티브 서비스형 방화벽인 OCI Network Firewall을 사용하면 추가 보안 인프라를 구성 및 관리할 필요 없이 방화벽 기능을 활용할 수 있습니다. OCI 네트워크 방화벽 인스턴스는 고가용성이 내장된 확장성이 뛰어나며, 사용자가 선택한 VCN(가상 클라우드 네트워크) 및 서브넷에 생성할 수 있습니다.
OCI 네트워크 방화벽 서비스는 클라우드 환경에 유입되는 데이터의 흐름에 대한 심층적인 통찰력을 제공하여 수신 및 서브넷 간 또는 VCN 간 통신을 모두 처리합니다. 본질적으로, 그것은 남북 네트워크 트래픽과 동서 네트워크 트래픽에 대한 가시성을 제공합니다. 자세한 내용은 OCI Network Firewall을 참조하십시오.
OCI Web Application Firewall Edge란?
OCI WAF 에지는 클라우드 기반 웹 애플리케이션 방화벽 서비스입니다. 네트워크 에지에서 악성 트래픽을 필터링하여 SQL 주입 및 DDoS 공격과 같은 온라인 위협으로부터 웹 애플리케이션을 보호함으로써 보안을 강화합니다. 자세한 내용은 OCI 웹 애플리케이션 방화벽을 참조하십시오.
구조
이 제안된 아키텍처에는 다음 구성요소를 사용하여 테넌시 워크로드에 대한 총 보호 기능이 포함됩니다.
-
OCI WAF 에지 정책: 이 WAF는 모든 공용 IP 엔드포인트 및 원본을 보호할 외부 엔티티입니다(WAF 용어에서 대상 웹 서버의 이름은 Origins임).
-
OCI 로드 밸런서: 이 로드 밸런서는 OCI WAF 에지 공용 IP에서만 요청을 수신하므로, OCI WAF 에지 서버의 트래픽을 수락하도록 로드 밸런서, 서버 또는 원본을 구성해야 합니다. OCI WAF 에지 서버의 공용 CIDR 범위인 CIDR 범위가 여기에 있습니다. 이 아키텍처에서는 NSG를 사용하여 해당 CIDR 범위의 공용 트래픽만 수락합니다.
-
OCI 네트워크 방화벽: 차세대 방화벽(Next Generation Firewall), OCI 네트워크 방화벽(OCI Network Firewall), WAF(WAF)로도 알려져 있습니다. 한 계층이 위협을 놓치면 다른 계층은 이를 포착하여 보다 강력한 보안 상태를 제공할 수 있습니다.
데이터 흐름 다이어그램
네트워크 데이터 흐름은 다음 네트워크 다이어그램, 녹색 점선으로 들어오는 요청, 빨간색 점선으로 된 응답에서 쉽게 볼 수 있습니다.
이 다이어그램은 남북 트래픽용 OCI 네트워크 방화벽을 배포하기 위한 모범 사례를 준수합니다. 초기 단계에서는 수신 트래픽(녹색으로 표시되고 계층 7에서 작동)이 OCI WAF 에지 계층 7 방화벽을 통해 지정됩니다. OCI WAF 에지는 TLS/SSL 접속에 대해 종료 및 응답을 수행한 후 OCI에 대한 보조 TLS/SSL 접속을 시작하여 인접(Back-to-Back) 사용자 에이전트 역할을 합니다.
네트워크 흐름에 따라 트래픽은 OCI WAF 에지에서 OCI 인터넷 게이트웨이로 진행됩니다. 인터넷 게이트웨이 내에서 OCI 네트워크 방화벽이 위치한 전용 IP 주소로 트래픽을 재지정하도록 경로 지정 테이블이 구성되었습니다. OCI 네트워크 방화벽이 TLS/SSL 연결을 종료하지 않고 트래픽을 원활하게 수신하는 것은 주목할 만한 일입니다. OCI 네트워크 방화벽은 해독 프로파일을 적용하여 TLS 트래픽을 해독함으로써 심층적인 패킷 검사를 허용합니다. 자세한 내용은 SSL 암호 해독을 위해 OCI 네트워크 방화벽 사용을 참조하십시오.
OCI 네트워크 방화벽이 트래픽을 철저히 검사하면 OCI 로드 밸런서로 진행됩니다. 밸런서는 TLS/SSL 연결 종료 및 응답 작업을 담당합니다. 로드 밸런싱 경로 지정을 실행한 후 선택한 백엔드 서버에 대한 보조 접속을 시작합니다.
백엔드 서버의 반환 트래픽에 대해 백엔드 서버는 처음에 OCI 로드 밸런서에 응답합니다(빨간색으로 표시되고 계층 7에서 작동). 로드 밸런서에 도달하면 로드 밸런서 서브넷 내의 라우팅 테이블이 트래픽을 다시 OCI 네트워크 방화벽이 위치한 전용 IP로 리디렉션합니다. 이렇게 하면 OCI 네트워크 방화벽이 응답을 종합적으로 검사할 수 있습니다. OCI 네트워크 방화벽이 검사를 완료한 후 NGFW(차세대 방화벽) 서브넷과 연관된 경로 지정 테이블 명령을 기반으로 인터넷 게이트웨이로 다시 진행합니다.
그런 다음 반환 트래픽은 최종 응답 검사를 위해 OCI WAF 에지에 도달합니다. OCI WAF 에지가 검사를 완료하면 인터넷에서 사용자에게 트래픽을 안전하게 다시 전달합니다.
목표
이 사용지침서의 주요 목표는 OCI WAF 에지를 OCI Network Firewall과 함께 효과적으로 설정하여 사용자가 클라우드 워크로드를 강화할 수 있도록 지원하는 것입니다. OCI WAF 에지 프런트엔드용 Let's Encrypt의 서명된 X.509 인증서를 통합하면 사용자는 안전하고 검증된 연결을 보장할 수 있습니다. 이 사용지침서에서는 사용자가 남북 트래픽에 대한 OCI 네트워크 방화벽 모범 사례를 구현하고 애플리케이션 OCI 로드 밸런서를 배포하도록 안내합니다. 특히 이 구성은 OCI WAF 에지를 자체 서명되지 않은 인증서를 사용하는 유일한 구성요소로 전략적으로 지정합니다. 인증서를 암호화하겠습니다. 반면 TLS(전송 계층 보안)를 사용하는 다른 요소는 관리하기 쉬운 번거로운 자체 서명 인증서를 사용합니다.
또한 OCI WAF 에지 및 OCI 네트워크 방화벽에서 여러 하위 도메인의 사용법을 시연하고, 와일드 카드 도메인을 수락하고 X.509 인증서에서 와일드 카드 도메인을 사용하도록 OCI WAF 에지를 설정합니다.
-
작업 1: OCI WAF(Web Application Firewall) 에지 배치.
-
작업 2: OCI WAF Edge용 DNS를 구성합니다.
-
작업 3: OCI WAF Edge에 대한 HTTPS 지원을 사용으로 설정합니다.
-
작업 4: Let's Encrypt로 서버 인증서 서명.
-
작업 5: OCI 로드 밸런서를 구성합니다.
-
작업 6: OCI 네트워크 방화벽을 구성합니다.
-
작업 7: OCI 경로 지정을 구성합니다.
필요 조건
-
활성 OCI 테넌시입니다. OCI에서 네트워크 리소스를 생성하고 관리하는 데 필요한 권한이 있어야 합니다.
-
Linux에서 소프트웨어를 설치 및 구성하는 방법을 비롯하여 Linux OS, OCI, Oracle Linux에 대한 기본적인 이해
-
OCI 콘솔 또는 OCI CLI(Oracle Cloud Infrastructure Command Line Interface)를 사용하여 네트워크 리소스를 생성하고 관리하는 방법을 잘 이해할 수 있습니다.
-
OCI Network Firewall 및 OCI WAF 에지 사용 및 구성 방법에 대한 충분한 이해
-
SSL/TLS 기술 및 X.509 디지털 인증서에 대한 이해 자세한 내용은 X.509 인증서(X509 Certificates 및 SSL/TLS: Understand TLS/SSL encryption technology)에 대한 자세한 내용은 이 권장 설명서를 참조하십시오.
작업 1: OCI WAF(Web Application Firewall) 에지 배치
배포할 첫 번째 구성요소는 WAF 에지입니다.
-
OCI 콘솔에 로그인하고 웹 애플리케이션 방화벽을 누릅니다.
-
정책에서 WAF 정책 생성을 누르고 다음 정보를 입력합니다.
OCI WAF 에지를 생성하려면 비OCI 웹 애플리케이션을 보안해야 하는 경우 여기서 레거시 워크플로우 사용을 누르십시오. 기본적으로 로드 밸런서에 연결할 수 있는 로컬 WAF 정책이 생성됩니다. 이 자습서에서는 OCI 및 비OCI 원본(공용 IP 서버)을 보호할 수 있는 OCI의 외부 요소인 OCI WAF 에지(레거시 워크플로우 WAF라고 함)를 중점적으로 다룹니다. OCI WAF 에지는 OCI WAF 로컬 정책과 다른 제품으로, 봇 관리(Captcha 챌린지, JavaScript 챌린지, 사용자 상호작용 챌린지 등) 및 캐싱 규칙(CDN 캐싱 메커니즘과 유사) 등의 기능을 제공합니다.
-
에지 정책 생성에서 필요한 정보를 입력합니다.
이 시점에서 두 가지 중요한 개념은 명확성을 요구합니다.
-
도메인: WAF 에지 도메인은 웹 서비스에 접근하기 위해 공용에서 접근할 수 있는 인터넷 도메인을 나타냅니다(예:
www.myexamplewebshop.com
). 이 도메인은 모바일 장치 및 노트북을 사용하는 사용자를 포함하여 모든 사용자에 대한 기본 연결 지점 역할을 합니다. 이 도메인은 기본 http80
https443
TCP 포트만 지원합니다.도메인에서 웹 사이트의 기본 도메인(예:
www.example.com
)을 추가하고 추가 도메인(app1.example.com
,customer1.example.com
등)을 계속 추가할 수 있습니다. 와일드카드 도메인을 추가하려면 OCI CLI를 사용하여 수동으로 추가해야 합니다. OCI CLI에 액세스하는 가장 빠른 방법은 OCI 개발자 툴인 Cloud Shell을 통해 이루어집니다. 이 툴에서는 OCI 콘솔에서 웹 브라우저 기반 터미널에 액세스할 수 있으며, 최신 버전의 OCI CLI 및 여러 유용한 툴이 포함된 사전 구성된 Linux 셸이 제공됩니다. 자세한 내용은 OCI CLI(명령행 인터페이스) 및 OCI Cloud Shell을 참조하십시오.와일드카드 도메인을 추가 도메인으로 추가하려면 OCI Cloud Shell을 열고 실행합니다.
oci waas waas-policy update --additional-domains '["*.yourmaindomain.xxx"]' --waas-policy-id your-WAF-policy-ID ( You can get your policy ID from OCI Web Console->Web application firewall->Policies->Policy details -> Policy Information Tab -> OCID )
와일드 카드 도메인을 사용하면 WAF 정책이 하위 도메인(예:
\*.example.com
)을 포함한 http 요청을 수신할 수 있습니다. 예를 들면myapp1.example.com
,mycustomer2.example.com
등입니다. -
WAF 원본: WAF 에지 원본이 있습니다. 원본은 WAF 뒤에 있는 실제 웹 서버를 가리킵니다. WAF 용어에서 원본은 보호되는 최종 대상 서버를 나타냅니다. 이러한 원본은 보호를 담당하는 WAF 에지 서버와 독점적으로 통신해야 합니다. 원천 서버에서 이러한 보호가 유지되도록 하는 것은 필수적입니다. 일반적으로 OCI에서 보안 목록 또는 지정된 OCI WAF 에지 소스 IP의 액세스를 독점적으로 허용하는 NSG(네트워크 보안 그룹)를 통해 달성됩니다. 자세한 내용은 Securing Your WAF을 참조하십시오. 일반적으로 실제 웹 서버 또는 원본의 공용 IP 주소 또는 FQDN을 여기에 입력합니다. 그러나 이 자습서에서는 가변 로드 밸런서의 공용 IP 주소를 활용합니다. 로드 밸런서가 이미 생성된 경우 해당 공용 IP 주소를 WAF 원본으로 사용할 수 있습니다. 그렇지 않은 경우 공용 로드 밸런서를 생성한 후 처음에 IP 주소를 추가하고 나중에 업데이트할 수 있습니다.
그룹당 원점이 여러 개인 서로 다른 원점 그룹을 생성하고 주기적 상태 검사를 포함하여 원점 그룹 간에 로드 밸런싱을 수행할 수 있습니다(IP_Hash, Round_robin, Sticky_Cookie). 자세한 내용은 Origin Management를 참조하십시오. 또한 고급 원본 옵션에서 기본 http
80
https443
TCP 포트를 변경할 수 있습니다(도메인이 아닌 원본에만 해당).
-
-
에지 정책 생성을 누릅니다. 2분 정도 걸리며 생성이 표시됩니다. 그러면 ACTIVE가 제공되므로 OCI WAF 설정을 계속할 수 있습니다.
작업 2: OCI WAF 에지용 DNS 구성
이제 OCI WAF 에지의 기본 구성을 작동 및 실행합니다. 기본 및 추가 도메인(와일드카드 포함)이 OCI WAF 에지 서버로 재지정되도록 하려면 콘솔에 표시된 해당 CNAME으로 도메인을 호스트하는 DNS 서버를 구성해야 합니다.
이 자습서에서는 다음 그림과 같이 OCI 공용 DNS 서버를 사용하여 제안된 값에 CNAME을 추가합니다.
구성 및 게시가 완료되면 \*.example.com
에 연결하려는 모든 시도가 www-example-com.o.waas.oci.oraclecloud.net
에서 Layer 7 검사를 위한 OCI WAF 에지 서버로 재지정됩니다. 검사가 완료되면 OCI WAF Edge는 WAF 검사 후 정제된 트래픽으로 구성된 원점으로 로드 밸런싱을 수행합니다.
작업 3: OCI WAF Edge에 대해 HTTPS 지원 사용
이 작업에서는 OCI WAF 에지에서 HTTPS 지원을 사용으로 설정합니다. 요즘 거의 모든 웹 서비스는 SSL/TLS 연결에 의존하여 보안 HTTP 또는 HTTPS 구현이 필요합니다. X.509 관리를 포함한 TLS/SSL 개념을 확실하게 파악하여 OCI WAF 에지뿐만 아니라 이 자습서에 설명된 예정된 소프트웨어 구성요소에서도 HTTPS 지원을 효과적으로 사용으로 설정하는 것이 중요합니다.
-
OCI 콘솔로 이동하고 에지 정책에서 설정을 누릅니다.
-
HTTPS를 사용으로 설정하려면 Enable HTTPS support을 누릅니다.
여기서는 해당 개인 키를 사용하여 서버 인증서를 업로드해야 합니다. 이 인증서는 OCI WAF 에지 생성 중에 선택한 기본 도메인 및 추가 도메인을 나타내므로 인증서의 공통 이름 및 SAN(주체 대체 이름) 필드에 이러한 도메인이 포함되어야 합니다. 자세한 내용은 SSL 인증서 주체 대체 이름이란?을 참조하십시오.
공용 CA가 서명한 인증서가 아닌 자체 서명 인증서를 사용하는 경우 자체 서명 인증서를 선택합니다. 공용 CA에서 서명한 인증서를 업로드할 때는 전체 체인 인증서를 업로드해야 합니다. 체인 인증서는 일반적으로 최종 엔티티 인증서, 서버 인증서 및 해당 공개 키로 시작하는 인증서 목록과 하나 이상의 CA 인증서(중간) 및 선택적으로 루트 CA 인증서(자체 서명)로 끝나는 인증서 목록으로 구성됩니다.
작업 4: Let's Encrypt로 서버 인증서 서명
이 자습서에서는 Let's Encrypt라는 무료 공용 CA 서비스를 사용하여 서버 인증서에 서명합니다. 따라서 체인 인증서는 다음과 같이 나타납니다.
1.-End-user Certificate - Issued to: *.example.com; Issued By: Let’s Encrypt R3
2.-Intermediate Certificate 1 - Issued to: Let’s Encrypt R3 (RSA 2048, O = Let's Encrypt, CN = R3); Issued By: Signed by ISRG Root X1:ISRG Root X1 (RSA 4096, O = Internet Security Research Group, CN = ISRG Root X1)
3.-Root certificate - Issued by and to: ISRG Root X1 (RSA 4096, O = Internet Security Research Group, CN = ISRG Root X1) , Selfsigned
In PEM format:
-----BEGIN CERTIFICATE-----
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
EwJSMzAeFw0yNDAxMTUxNjAyMTNaFw0yNDA0MTQxNjAyMTJaMBgxFjAUBgNVBAMM
DSouZnd0ZXN0LnNpdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1
3NkuEB3r0m/cIWjYBvXEg8QAcib3QjkGO2YwDRu9IwjyxTYTqiWp0F8ZYh2hM1zP
...xxxx
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
oIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw
WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP
R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx
sxPnHKzhm+/b5Dt....XXXX
-----BEGIN CERTIFICATE-----
oOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5
bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y
sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ
Xmidf3LWicUGQSk+WT7dJvUsWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4
FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc
SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql
PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOd....xxx
-----END CERTIFICATE-----
따라서 Let's Encrypt를 사용하기 전에 Let's Encrypt 인증서를 만들거나 서명 할 하나의 CSR에 서명하는 데 도움이되는 특정 소프트웨어를 설치해야합니다. 자세한 내용은 Let's Encrypt을 참조하십시오.
서명하려면 Let's Encrypt의 certbot을 사용합니다. 설정 지침에 대한 자세한 내용은 설정 지침을 참조하십시오. Oracle Linux에 설치하려면 Let's Encrypt - Free Certificates on Oracle Linux (CertBot)을 참조하십시오.
certbot을 설치했으면 다음 명령을 실행하여 서명된 x.509 인증서를 쉽게 만들 수 있습니다.
sudo certbot certonly --manual --preferred-challenges=dns --email YOUR EMAIL ADDRESS --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d *.example.com --key-type rsa
와일드카드 도메인(_.example.com
)을 활용하고 있으므로 certbot은 _.example.com
의 소유권을 확인하기 위해 확인 시도가 필요합니다. DNS 시도는 -preferred-challenges=dns 옵션을 사용하여 선택합니다. certbot 실행 중 다음 이미지와 같이 DNS 문제에 대한 메시지가 표시됩니다.
OCI DNS 서비스를 사용하고 있으므로 example.com
영역에 txt 레코드만 생성합니다.
이제 certbot이 프로세스를 완료하여 최종 사용자 인증서를 획득하고 전체 CA 체인 및 해당 개인 키로 완료할 수 있도록 해야 합니다. 그런 다음 작업 3의 OCI WAF HTTPS 메뉴에 업로드할 수 있습니다.
작업 3에서 바로 서명된 인증서를 업로드하면 게시되지 않은 변경사항이 1개 있습니다라는 메시지가 표시됩니다. 모두 게시를 누르면 대략 20-30분 정도 걸릴 수 있습니다.
이때 OCI WAF 에지는 HTTPS 트래픽을 수신하도록 구성됩니다. 나중에 OCI 로드 밸런서가 생성되면 로드 밸런서 공용 IP를 가져와서 OCI WAF 에지 원본에 설정해야 합니다.
작업 5: OCI 로드 밸런서 구성
OCI WAF 에지 설정을 완료한 후 다음 목표는 OCI Flexible Load Balancer라고도 하는 계층 4 ~ 7의 OCI 로드 밸런서를 배포하여 OCI WAF 에지의 공용 서비스 원본 역할을 하는 것입니다. OCI 로드 밸런서는 WAF 기능을 제공하는 내부 또는 지역 OCI WAF를 사용으로 설정하고 연결할 수 있는 기능을 제공합니다. 그러나 이 OCI WAF 리전은 고유한 기능 세트를 갖춘 고유한 제품이라는 점을 언급할 가치가 있습니다. 이 사용지침서에서는 특히 OCI WAF 에지 구현에 대해 중점적으로 다룹니다.
-
OCI 콘솔을 열고 네트워킹 및 로드 밸런서를 누릅니다.
-
로드 밸런서 생성을 누르고 다음 정보를 입력하고 다음을 누릅니다.
- 로드 밸런서 이름: 로드 밸런서의 이름을 입력합니다.
- 표시 유형 선택: 공용 로드 밸런서를 선택합니다. OCI WAF 에지는 공용 IP 원본만 보호합니다.
- 대역폭: 로드 밸런서 구성 및 기타 구성 세부정보를 선택합니다.
- 네트워킹 선택: OCI 로드 밸런서용 서브넷과 OCI 네트워크 방화벽용 서브넷을 각각 두 개 이상 포함하는 VCN을 선택합니다.
아키텍처에 설명된 대로 로드 밸런서가 OCI WAF 에지 서버 범위의 트래픽만 수락하는지 확인합니다. CIDR 범위를 참조하십시오.
NSG(네트워크 보안 그룹)에서 방화벽 규칙을 적용하고, 네트워크 보안 그룹을 사용하여 트래픽 제어를 누르고, NSG를 활용하거나, 로드 밸런서 서브넷 보안 목록을 구성하여 이 작업을 수행할 수 있습니다.
-
로드 밸런서가 생성된 후 나중에 백엔드 서버를 추가하고 다음을 누르면 백엔드 선택 섹션을 건너뜁니다.
-
리스너 구성에서 다음 정보를 입력하고 다음을 누릅니다.
수신 요청 로드 밸런서 리스너(기본적으로 외부로부터 모든 연결을 수신하는 로드 밸런서의 기본 시작점)를 구성합니다. 기본 포트
443
에서 보안 HTTP에 대해 HTTPS를 설정해야 합니다. 이 경우 X.509 인증서(SSL 인증서)를 사용해야 합니다. HTTPS를 사용하면 모든 연결이 안전하게 암호화됩니다.공용 로드 밸런서가 인터넷에서 일반 사용자를 위한 기본 시작점 역할을 하는 일반적인 시나리오에서는 Digicert, Global Sign, Let's Encrypt 등의 평판이 좋은 공용 CA(인증 기관)에서 서명한 SSL 인증서를 업로드해야 합니다. 또한 인터넷에 노출된 이러한 인증서는 만료 날짜 근처에 갱신해야 고객이 비공개 연결이 아닙니다!! ERR_CERT_DATE_INVALID.
이 자습서에서는 OCI WAF 에지를 인터넷에서 웹 서비스에 액세스하는 사용자를 위한 기본 시작점으로 사용하고 있습니다. Oracle의 서비스가 시작된 공용 로드 밸런서는 OCI WAF 에지 뒤에 배치됩니다. 즉, OCI WAF 에지 노드에서 트래픽만 수신됩니다. 이 설정 때문에 공용 CA의 SSL 인증서를 로드 밸런서로 업로드할 필요가 없습니다. 대신 만료일이 없거나 매우 긴 인증서로 자체 서명된 SSL 인증서를 쉽게 설치할 수 있으므로 관리가 더 간단해집니다.
OCI WAF 에지는 공통 이름 또는 주체 대체 이름과 같은 로드 밸런서에서 수신된 SSL 인증서의 세부정보를 검사하지 않으며 인증서 서명을 검사하지도 않습니다. 그럼에도 불구하고 OCI WAF 에지와 OCI 로드 밸런서의 대상 원본 간에 안전한 암호화된 연결을 설정합니다.
openssl 또는 XCA와 같은 외부 도구를 사용하여 자체 서명된 인증서를 만들었습니다. 또는 OCI 로드 밸런서와 통합된 Oracle 인증서 관리 서비스를 사용할 수 있습니다. 이 자습서에서는 XCA를 사용하여 자체 서명된 인증서를 생성하고 전용 키와 함께 수동으로 OCI 로드 밸런서에 업로드했습니다. 업로드된 자체 서명된 인증서는 모든 공통 이름 또는 SAN을 사용하며 만료 시간이 50년입니다. OCI WAF는 해당 정보를 검사하지 않습니다.
-
로깅 관리는 이 자습서의 범위가 아닌 선택적 구성입니다. 제출을 누릅니다.
-
잠시 후 로드 밸런서가 생성됩니다. 이제 백엔드 서버를 구성해야 합니다. SSL이 백엔드 서버에 사용되므로 먼저 백엔드 서버에 대한 SSL 접속을 설정하는 데 사용할 로드 밸런서의 인증서 섹션에 인증서를 하나 이상 생성해야 합니다. 위에서 설명한 대로 이 인증서 번들은 타사 툴로 수동으로 생성하거나 OCI 인증서 관리 서비스를 사용할 수 있습니다. 이 자습서에서는 XCA 도구를 사용합니다.
네트워킹, 로드 밸런서, 로드 밸런서, 로드 밸런서 세부정보 및 인증서로 이동합니다.
-
인증서 섹션에서 인증서 리소스를 로드 밸런서 인증서 관리로 선택하고 인증서 추가를 누릅니다.
백엔드 서버의 SSL 인증서 서명에 사용한 공용 CA 루트 또는 중간 CA 인증서를 추가합니다. Dell은 만료일 없이 일반적인 이름 및 SAN으로 자체 서명된 인증서를 활용해 왔습니다. 로드 밸런서는 백엔드 서버 인증서 검증을 위해서만 루트 CA를 활용하므로 여기에 서버 인증서를 설치할 필요가 없습니다.
-
백엔드 서버를 생성하려면 BackEnd 집합을 선택하고 백엔드 집합 생성을 누릅니다.
-
백엔드 집합 생성에 다음 정보를 입력합니다.
- 백엔드 집합 이름: 백엔드 집합 이름을 입력합니다.
- SSL을 선택합니다.
- 로드 밸런서 관리 인증서를 선택합니다.
- 7단계에서 만든 인증서를 추가합니다. 로드 밸런서가 수신된 SSL 인증서 서명을 검사하도록 하려면 피어 인증서 확인을 누릅니다.
- 상태 검사:
- 프로토콜:
HTTP
을 선택합니다. - 포트:
443
포트를 선택합니다. - 간격 및 시간 초과: 기본 간격 및 시간 초과(10000 및 3000밀리초)를 유지합니다.
- 건전성 검사의 건전성 응답에 대해 200을 선택합니다.
- URL 경로(URI): 웹 서버에 있는 URL에서 리소스를 추가합니다. 예:
index.html
,mainpage.html
등.
- 프로토콜:
작업 6: OCI 네트워크 방화벽 구성
OCI 로드 밸런서가 설정된 후 우리의 목표는 남북 트래픽을 보호하도록 OCI 네트워크 방화벽을 구성하는 것입니다. 새로 구성된 로드 밸런서와 인터넷 게이트웨이 사이에 방화벽이 배치됩니다. OCI 네트워크 방화벽 설정을 계속하려면 암호 해독 규칙을 사용한 SSL 전달 프록시 및 인바운드 검사에 OCI 네트워크 방화벽 사용을 참조하고 다음을 완료합니다.
-
SSL 인바운드 검사 모드에 대한 OCI 네트워크 방화벽 정책을 배치합니다. 자세한 내용은 SSL 암호 해독을 위해 OCI 네트워크 방화벽 사용을 참조하십시오.
-
해독 프로파일에 대해 매핑된 암호를 생성할 때 이전에 OCI 로드 밸런서 리스너에 업로드된 것과 동일한 자체 서명 인증서(공용 키와 전용 키 모두 포함)를 활용합니다. JSON 파일 생성에 대한 이 자습서를 따르는 것이 좋습니다. Create Fully Compatible JSON Templates from Custom PEM Certificates for OCI Network Firewall를 참조하십시오.
-
이전에 생성된 OCI 네트워크 방화벽 정책을 연결하면서 OCI 네트워크 방화벽을 NGFW Pub 서브넷(192.168.5.0/24)에 배치합니다. 이 작업은 언급된 서브넷의 전용 IP 주소를 OCI 네트워크 방화벽에 할당합니다. 이 주소는 나중에 구성 경로 지정에 필요합니다.
작업 7: OCI 경로 지정 구성
OCI 네트워크 방화벽이 배치되었으므로, 남북 트래픽이 양방향으로 통과하는지 확인해야 합니다. 가장 먼저 해야 할 일은 OCI 네트워크 방화벽이 있는 VCN과 연관된 인터넷 게이트웨이에 대한 전용 경로 지정 테이블을 생성하는 것입니다.
-
VCN에 경로 지정 테이블을 생성하고 대상 유형 항목을
private IP
, 대상을 CIDR 블록으로 추가하여 이 자습서192.168.6.0/24
및 대상에 대해 작업 6에 배치된 OCI 네트워크 방화벽에 지정된 전용 IP로 로드 밸런서 서브넷 CIDR 블록을 도입합니다. -
경로 지정 테이블을 인터넷 게이트웨이에 연관시키고 세 개의 점과 경로 테이블 연관을 누른 다음 경로 지정 테이블을 선택합니다.
-
이 경로 지정 테이블이 인터넷 게이트웨이와 연관되면 공용 로드 밸런서
192.168.6.0/24
로 지정된 모든 트래픽이 처음에 OCI 네트워크 방화벽이 상주하는 전용 IP192.168.5.78
로 재지정됩니다.OCI 네트워크 방화벽 전용 IP
192.168.5.78
에서 OCI 네트워크 방화벽의 패킷 검사 후 패킷이 OCI 로드 밸런서로의 여정을 계속 유지합니다. 여기서 로드 밸런서의 경로 지정 구성에 따라 선택된 백엔드 서버 간의 최종 대상으로 지정됩니다.이제 인터넷 사용자에게 반환되는 패킷이 동일한 경로를 역순으로 따르고 OCI 네트워크 방화벽을 통과하여 응답 검사를 수행하는 것도 필수적입니다. 다음 이미지에 표시된 것처럼 백엔드 서버에서 OCI 네트워크 방화벽 전용 IP
192.168.5.78
를 통해 응답의 경로를 지정하려면 로드 밸런서 공용 서브넷에 대한 경로 지정 테이블을 생성해야 합니다.
OCI 네트워크 방화벽 서브넷에서 인터넷 게이트웨이에 0.0.0.0/0
경로를 추가하여 응답이 인터넷 게이트웨이로 경로 지정되는지 확인해야 합니다.
인터넷 게이트웨이에 도달하면 패키지가 소스인 OCI WAF 에지로 다시 라우팅되어 최종적으로 응답을 검사한 후 인터넷 사용자에게 전달됩니다.
관련 링크
확인
- Authors - Luis Catalán Hernández(OCI Cloud Network Specialist and Multi Cloud), Sachin Sharma(OCI Cloud Network Specialist)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Secure Your Applications using OCI Network Firewall and OCI WAF Edge with Let's Encrypt Certificates
F94469-01
March 2024
Copyright © 2024, Oracle and/or its affiliates.