참고:

OCI WAF로 Oracle Integration(프로세스) 사용자정의 끝점 구성 및 보호

소개

Oracle Integration은 클라우드 및 온프레미스 애플리케이션을 통합하고, 비즈니스 프로세스를 자동화하고, 비즈니스 프로세스에 대한 통찰력을 얻고, 시각적 애플리케이션을 개발하고, SFTP 호환 파일 서버를 사용하여 파일을 저장 및 검색하고, 비즈니스 문서를 B2B 거래 파트너와 교환할 수 있는 기능을 제공하는 완전 관리형 사전 구성 환경입니다.

Oracle Cloud Infrastructure Web Application Firewall(OCI WAF)을 사용하여 악성 및 원치 않는 인터넷 트래픽으로부터 애플리케이션을 보호합니다. WAF는 인터넷 연결 엔드포인트를 보호할 수 있으며, 고객 애플리케이션 전반에 걸쳐 일관된 규칙을 적용합니다.

목표

OCI 방화벽을 사용하여 인터넷의 악성 트래픽에 대해 사용자정의 끝점을 사용하여 Oracle Integration 인스턴스를 구성하고 보호합니다.

이 사용지침서에서는 설명서에서 권장되는 대로 WAF 및 허용 목록을 사용하기 위한 Oracle Integration 참조 아키텍처 권장 사항을 따릅니다.

솔루션 아키텍처

자세한 내용은 Oracle Integration 2세대 프로비저닝 및 관리에서 확인할 수 있습니다.

필요 조건

작업 1: Oracle Integration 인스턴스 생성

  1. 웹 콘솔을 통해 새 Oracle Integration 인스턴스를 생성하려면 개발자 서비스 메뉴로 이동하여 통합을 누릅니다.

    OCI 통합기 생성

  2. 통합 인스턴스 화면에서 인스턴스가 생성될 구획을 선택하고 인스턴스 생성을 누릅니다.

    구획 선택

  3. 인스턴스 생성 화면이 나타납니다. 인스턴스 이름을 입력하고 Oracle Integration 버전(2세대)을 선택한 다음 생성을 누릅니다.

    필요한 정보 입력

    주: 다른 항목은 사용자 환경의 요구사항에 따라 구성할 수 있습니다. 이 자습서에서는 기본값을 그대로 둡니다.

  4. 생성이 완료되면 인스턴스를 사용할 수 있습니다. 세부정보를 보려면 인스턴스 이름을 누르십시오.

    인스턴스 세부정보 보기

  5. Oracle Integration 인스턴스의 작동을 검증하려면 인스턴스 세부정보에 액세스한 후 서비스 콘솔을 누릅니다.

    인스턴스의 서비스 콘솔을 엽니다.

  6. 새 브라우저 탭이 열리고 Oracle Integration 홈 화면에 액세스할 수 있습니다.

    액세스 확인

작업 2: OCI Vault, DNS 및 SSL 인증서 설정

Oracle Integration 인스턴스가 생성되면 인스턴스에 대한 사용자정의 끝점을 생성합니다. 사용자정의 끝점을 사용하면 전용 도메인을 사용하여 Oracle Integration 인터페이스에 액세스할 수 있습니다. 예를 들면 다음과 같습니다.

https://oic-lab.<exampledomain>.com/ic/home

사용자정의 끝점을 생성하려면 다음 5단계를 따릅니다.

  1. 공용 서브넷으로 VCN 생성
  2. Oracle Integration 끝점을 가리키는 사용자정의 DNS에서 CNAME 항목을 생성합니다.
  3. 새 링크에 대한 SSL 인증서를 생성합니다(예: oic.<exampledomain>.com).
  4. 인증서가 저장될 OCI 저장소 생성
  5. Oracle Integration 인스턴스에서 사용자정의 끝점 구성 수행

작업 2.1: 구획에 VCN 및 공용 서브넷 생성

  1. VCN을 생성하려면 OCI 웹 콘솔의 서비스 메뉴를 열고 가상 클라우드 네트워크를 누릅니다.

    VCN 생성

  2. 네트워킹 페이지 내부에서 올바른 구획에 있는지 확인하고 VCN 마법사 시작을 누릅니다.

    마법사 시작

    • 구축 중인 환경의 요구 사항에 따라 VCN을 생성합니다. Oracle Integration에서는 공용 서브넷을 생성하고 NAT 게이트웨이(서비스 게이트웨이)를 사용할 수 있어야 합니다.

      이에 따라 VCN 생성

    • VCN은 Oracle Integration 사용자정의 끝점 생성 중 사용됩니다.

      중요: Oracle Integration의 WAF 구성에 사용될 VCN의 OCID를 기록해 두십시오.

작업 2.2: Oracle Integration 끝점에 대한 사용자정의 DNS에서 CNAME 항목 생성

이제 Oracle Integration을 가리키는 CNAME 항목을 생성하려면 도메인의 DNS 구성 환경에 액세스해야 합니다. WAF를 구성하는 경우 이 CNAME 항목이 변경되지만, Oracle Integration에 대한 액세스 전송 시 암호화에 사용될 SSL 인증서를 임포트할 수 있도록 지금 생성하는 것이 중요합니다.

  1. OCI 콘솔의 Oracle Integration 서비스 페이지로 돌아갑니다.

    고유 DNS 영역에 CNAME 생성

  2. 인스턴스 세부정보 내에서 Oracle Integration 인스턴스의 서비스 콘솔에 액세스하기 위해 OCI에서 제공한 도메인 FQDN을 확인합니다.

    Oracle Integration FQDN 캡처

    • 이 예에서는 FQDN oic-lab-instance-axyjvqi24eaa-gr.integration.ocp.oraclecloud.com을 사용합니다.
  3. Oracle Integration 사용자정의 끝점의 FQDN을 가리키는 도메인에서 CNAME을 생성합니다.

    주: 이 자습서에서는 DNS 영역 파일에서 CNAME을 구성하는 방법을 보여주지 않습니다.

  4. FQDN이 있으면 고유 도메인의 CNAME을 구성합니다. 구성 후 dig 명령을 사용하여 CNAME이 올바르게 구성되었는지 검증합니다.

    $ dig <oic>.<exampledomain>.com

    dig 명령 실행 예

작업 2.3: 새 도메인에 대한 SSL 인증서 생성

CNAME이 생성된 후에는 인스턴스에 대해 암호화된 인터넷 트래픽을 사용으로 설정하려면 SSL 인증서를 생성해야 합니다. 이 자습서에서는 자체 서명된 SSL 인증서를 만듭니다. 그러나 프로덕션 환경에서는 인증서가 유효해야 합니다.

  1. 자체 서명된 인증서를 만들려면 먼저 개인 키를 만들어 보겠습니다.

    $ openssl genrsa -out oic-lab.key 2048

    • 따라서 이름이 oic-lab.key인 개인 키를 가져옵니다.

    전용 키 생성

  2. 이제 CSR(인증서 서명 요청)을 만듭니다.

    $ openssl req -key oic-lab.key -new -out oic-lab.csr

    • 요청한 정보를 입력하여 .csr 파일을 얻습니다. "공통 이름"은 자습서에 사용되는 FQDN이어야 합니다.

    인증서 서명 요청 생성

  3. 이제 개인 키(oic-lab.key)와 csr(oic-lab.csr)이 있으므로 자체 서명된 SSL 인증서를 생성해 보겠습니다. 이렇게 하려면 아래 명령을 실행하십시오.

    $ openssl x509 -signkey oic-lab.key -in oic-lab.csr -req -days 365 -out oic-lab.crt

    • 이 명령은 365일 동안 유효한 자체 서명된 인증서를 생성합니다.

    자체 서명 인증서 생성

    이제 자체 서명된 인증서가 있으므로 Oracle Integration 내에서 사용하기 위해 이를 OCI Vault로 임포트할 수 있습니다.

작업 2.4: OCI 저장소 생성 및 SSL 인증서 임포트

자체 서명된 SSL 인증서가 이미 있으므로 Oracle Integration이 실행 중인 구획 내에 OCI Vault를 생성해야 합니다.

  1. OCI Vault를 생성하려면 OCI 웹 콘솔에서 서비스 메뉴에 액세스합니다.

    OCI 저장소 생성

  2. Vault 화면이 로드되면 올바른 구획에 있는지 확인하고 저장소 생성을 누릅니다.

    구획을 확인하고 [저장소 생성] 단추를 누르십시오.

  3. 저장소를 올바르게 생성하기 위한 정보를 입력하고 저장소 생성을 누릅니다.

    저장소 생성 페이지에 필요한 올바른 정보를 입력합니다.

  4. 저장소를 생성한 후 마스터 암호화 키를 생성합니다.

    마스터 암호화 키 생성

    • 자체 서명된 인증서를 포함할 저장소 암호를 만들기 전에 저장소에 저장할 인증서의 형식을 조정해야 합니다. 이 적합성은 인증서, 키, 중간 인증서(있는 경우) 및 인증서 문장암호(있는 경우)의 연결에 불과합니다. 아래 모델에 표시된 것처럼 최종 파일 형식은 JSON 형식입니다.

      ```
      {
          "key": "-----BEGIN PRIVATE KEY-----\n…..-----END PRIVATE KEY-----\n",
          "cert": "-----BEGIN CERTIFICATE-----\n….-----END CERTIFICATE-----\n",
          "intermediates": [
              "-----BEGIN CERTIFICATE-----\n….-----END CERTIFICATE-----\n",
              "-----BEGIN CERTIFICATE-----\n….-----END CERTIFICATE-----\n"
          ],
          "passphrase": "<private key password if encrypted key is provided>"
      }
      ```
      
      • 우리의 인증서 및 키 세트로이 형식을 얻으려면, 당신이 볼 수 있듯이, 키 또는 인증서 또는 문장암호에 줄 바꿈이 없어야하기 때문에 약간의 처리가 필요합니다.
  5. 아래 명령을 사용하여 키를 조정하십시오.

    `awk -v RS= '{gsub(/\n+/, "\\n")}1' <seu\_arquivo.key>`
    

    Vault에서 비밀로 저장하기 전에 데이터를 올바르게 포맷하기 위해 개인 키를 확인하십시오.

  6. 이 값을 복사하여 위의 JSON 예의 "key" 항목에 삽입하십시오. crt 파일에 대해 이 프로세스를 반복합니다.

    Vault에서 비밀로 저장하기 전에 데이터를 올바르게 포맷하기 위해 crt 파일을 확인하십시오.

  7. OCI 웹 콘솔로 돌아가서 OCI 저장소의 비밀 메뉴를 누르고 비밀 생성을 누릅니다.

    암호 생성

  8. 필드를 올바르게 입력하고 보안 콘텐츠 필드에 위 단계에서 생성된 JSON을 삽입합니다.

    정확한 정보 입력

    1. 암호 생성 양식에 필요한 정보를 입력하고 마스터 암호화 키를 선택한 다음 보안 콘텐츠 필드에 JSON 암호를 붙여 넣습니다. 암호가 생성되면 Oracle Integration 사용자정의 끝점을 생성하겠습니다.

태스크 2.5: Oracle Integration 인스턴스에 대한 사용자정의 끝점 구성

  1. Oracle Integration 사용자정의 끝점을 구성하려면 OCI 웹 콘솔의 통합 페이지로 돌아가서 인스턴스에 액세스하십시오.

    Oracle Integration 사용자정의 끝점 구성

  2. 편집을 누릅니다.

    Edit를 누릅니다.

  3. Oracle Integration 설정 편집 페이지에서 고급 설정 표시를 눌러 사용자정의 끝점 구성 항목을 봅니다.

    Show Advanced Settings를 누릅니다.

  4. 구성을 계속하려면 사용자정의 끝점의 이름을 입력하고 저장소 내에 저장된 SSL 인증서가 포함된 암호를 선택합니다. 마지막으로 변경사항 저장을 누릅니다.

    사용자정의 끝점 이름을 입력하고 변경사항을 저장합니다.

    • Oracle Integration 인스턴스가 UPDATING 상태로 변경됩니다. 다시 활성화될 때까지 기다립니다.
  5. 인스턴스가 ACTIVE 상태로 돌아오면 Service Console을 눌러 새 사용자정의 끝점에 대한 액세스를 테스트합니다.

    서비스 콘솔 다시 열기

    • 모든 항목이 올바르게 구성된 경우 DNS CNAME에 구성된 FQDN(작업 2.2의 단계 2)을 사용하여 서비스 콘솔이 열립니다.
  6. 이 자습서와 마찬가지로 자체 서명된 SSL 인증서를 사용 중이므로 브라우저에서 인증서를 확인할 수 없음을 알리는 경보를 표시해야 합니다. 그러나 사용자정의 끝점의 FQDN이 이미 사용 중입니다.

    고유 DNS를 사용하여 사용자정의 끝점에 액세스합니다.

  7. 액세스한 후에는 Oracle Integration 콘솔이 표시되어야 합니다. 이는 사용자정의 끝점이 올바르게 작동하고 있음을 나타냅니다.

    성공

: 유효한 SSL 인증서를 사용하는 경우 인증서 유효성에 대한 브라우저 경고 메시지가 발행되지 않습니다.

작업 3: WAF 및 Oracle Integration 구성 AllowList

이제 Custom Endpoint가 작동 및 실행 중이므로 Layer 7 공격으로부터 액세스를 보호하도록 WAF 규칙 및 Oracle Integration 허용 목록을 구성해 보겠습니다.

외부 공격으로부터 Oracle Integration을 보호하도록 OCI WAF를 생성 및 구성하기 전에 먼저 Oracle Integration 허용 목록을 구성하여 방금 생성한 사용자정의 끝점에 액세스할 수 있는 소스 IP 주소를 제한해 보겠습니다. 아이디어는 WAF OCI CIDR에만 액세스 권한이 있다는 것입니다. 이렇게 하면 Oracle Integration 인스턴스에 대한 외부 액세스를 제한하여 WAF를 통해서만 모든 외부 액세스를 터널링할 수 있습니다.

허용 목록을 올바르게 생성하려면 먼저 Oracle Integration을 구성하는 지역에서 WAF OCI가 사용하는 서비스 CIDR을 캡처해야 합니다.

작업 3.1: OCI 영역의 CIDR 찾기

작업 3.2: 해당 지역의 WAF CIDR 찾기

이제 이러한 레코드를 Oracle Integration 허용 목록에 포함할 수 있도록 찾은 주소를 기록해 두십시오.

작업 3.3: Oracle Integration에서 AllowList 구성

  1. 이제 WAF OCI 공용 주소가 있으므로 Oracle Integration 내에서 허용 목록을 생성하겠습니다. 이렇게 하려면 인스턴스 화면으로 돌아가서 네트워크 액세스 메뉴를 누른 다음 편집을 누릅니다.

    Oracle Integration에서 허용 목록 생성

  2. 이전 단계에서 얻은 CIDR 및 작업 2.2.1에서 생성된 VCN의 OCID로 정보를 입력합니다.

    필요한 정보 입력

  3. 허용 목록이 구성되면 WAF CIDR만 콘솔에 직접 액세스할 수 있습니다. 인터넷을 통해 오는 다른 모든 액세스는 WAF를 통과해야 합니다.

  4. 이를 검증하려면 Oracle Integration Service 콘솔에 액세스해 보십시오. 모든 항목이 올바르게 구성된 경우 브라우저에 403 Forbidden 메시지가 표시됩니다.

    403 금지된 메시지

이 액세스를 모니터하고 보호할 수 있도록 WAF를 구성해 보겠습니다.

작업 3.4: OCI WAF 에지 규칙 구성

처음에는 WAF에서도 Oracle Integration 콘솔에 대한 보안 HTTPS 액세스를 제공하는 데 사용할 SSL 인증서 레코드를 생성해야 합니다.

  1. OCI 웹 콘솔 메뉴에서 에지 정책 리소스를 누릅니다.

    에지 정책 리소스로 이동

  2. 서비스 페이지에서 인증서 생성을 누릅니다.

    인증서 생성

  3. 디지털 인증서 구성 페이지가 열립니다. 요청된 정보를 입력하고 위의 2.2.3단계에서 생성한 .crt 및 .key 파일을 업로드합니다.

    정확한 정보 입력

    : 생성한 SSL 인증서는 자체 서명되었으므로 자체 서명된 인증서 옵션이 선택됩니다. 유효한 인증서를 사용하려는 경우 이 옵션을 선택 해제해야 합니다.

  4. 인증서가 생성되면 Web Application Firewall 메뉴로 돌아가서 이미 구성된 Oracle Integration 끝점을 보호하는 WAF 정책을 생성합니다. 이렇게 하려면 정책 메뉴에서 WAF 정책 생성을 누릅니다.

    WAF 정책 생성

  5. 생성할 "레거시 워크플로우" 규칙에 대한 링크를 누르십시오.

    레거시 워크플로우 링크를 누릅니다.

  6. 새 메뉴가 열리고 요청된 정보를 올바르게 입력해야 합니다.

    요청된 정보 입력

    설명:

    1. 이름: 정책의 이름을 입력합니다.
    2. WAF 정책 구획: 정책이 생성될 구획을 선택합니다.
    3. 기본 도메인: DNS에서 만든 인스턴스의 FQDN입니다.
    4. 원본 이름: WAF가 외부 사용자 액세스를 보낼 URL을 식별하는 이름입니다.
    5. URI: Oracle Integration 인스턴스의 FQDN입니다(위 2.2.2단계의 CNAME에 구성된 것과 동일).
    6. 항목을 채운 후 에지 정책 생성을 누릅니다. 정책 세부정보가 포함된 새 화면이 나타납니다. 정책 상태가 "ACTIVE"가 될 때까지 기다립니다.

이제 WAF 보호 규칙 구성을 수행하고 WAF 인프라에 속한 FQDN에 DNS CNAME을 재구성해야 합니다.

작업 3.5: OCI WAF 보호 규칙 구성

  1. 에지 정책이 생성되면 WAF를 통해 Oracle Integration 인스턴스에 대한 액세스를 보호하기 위해 일부 매개변수를 설정해야 합니다. 이렇게 하려면 WAF 정책 내에서 설정 메뉴를 누른 다음 일반 설정 탭에서 편집을 누릅니다.

    올바른 매개변수 설정

  2. Enable HTTPS Support 옵션을 선택하고 3.3단계에서 만든 인증서를 선택합니다. 변경사항 저장을 누릅니다.

    HTTPS 지원 사용

  3. SSL 인증서를 사용하도록 WAF를 구성한 후 "액세스 제어" 정책 및 "보호 규칙"을 구성할 수 있습니다. 이러한 규칙은 Oracle Integration 콘솔에 대한 액세스가 보호되도록 필요한 보안을 제공합니다. WAF OCI는 사전 결정된 규칙을 구성 초기에 사용할 수 있으며 비즈니스 요구사항에 따라 규칙을 사용자정의할 수도 있습니다. WAF 규칙 사용자정의는 이 절차의 범위에 있지 않습니다.

    • 액세스 제어 생성

      1. 액세스 제어를 구성하려면 액세스 제어 메뉴를 누르고 액세스 규칙 추가를 누릅니다.

        액세스 제어 구성

      2. 액세스 제어 구성 화면에서 항목을 올바르게 입력하고 액세스 규칙 추가를 누릅니다. 이 자습서에서는 브라질에서 들어오는 IP 주소에서만 Oracle Integration 콘솔 페이지에 대한 액세스를 허용하는 규칙을 생성합니다.

        액세스 규칙 추가

    • 보호 규칙 만들기

      1. 구성을 수행하려면 Protection Rules(보호 규칙) 메뉴를 누른 다음 Rules(규칙) 탭을 누르고 원하는 정책을 사용으로 설정합니다. 각 규칙의 서비스 메뉴를 눌러 블록에 배치합니다.

        보호 규칙 생성

        • 필요한 만큼 규칙을 선택합니다. 이 자습서에서는 데모용으로 XSS(교차 사이트 스크립팅) 규칙만 사용으로 설정합니다.
      2. WAF 보호 규칙이 사용으로 설정되면 게시되지 않은 변경사항 메뉴를 누르고 모두 게시를 누릅니다.

        변경사항 게시

WAF 규칙을 적용하는 데는 10-15분 정도 걸립니다.

작업 3.6: CNAME을 WAF의 FQDN으로 설정

WAF의 "보호 규칙"이 구성되면 전용 도메인의 CNAME을 변경하여 해당 CNAME에 지정된 모든 요청이 WAF로 전달되고 더 이상 Oracle Integration의 사용자정의 끝점으로 전달되지 않도록 할 수 있습니다.

  1. 이렇게 하려면 WAF 정책 페이지로 이동하여 DNS에서 구성해야 하는 CNAME 주소를 복사합니다.

    WAF FQDN을 복사하여 고유 DNS 영역의 CNAME 구성에 붙여넣습니다.

  2. 이 주소를 복사하고 영역 내에서 가리키는 DNS를 변경합니다. DNS를 변경한 후 아래 명령을 실행하여 구성이 올바른지 검증하십시오.

    $ dig <oic>.<exampledomain>.com

    dig 명령의 예

작업 3.7: Oracle Integration 애플리케이션 롤 구성

WAF를 통해 Oracle Integration에 대한 액세스를 테스트하기 전 마지막 한 단계는 Oracle Integration의 애플리케이션 롤을 변경하여 사용자에게 정확하게 액세스 권한을 부여하는 것입니다. 이 권한이 없으면 사용자가 Oracle Integration 콘솔에 액세스할 수 없습니다.

  1. OCI 웹 콘솔에서 도메인을 누르고 ID 도메인 구성에 액세스합니다.

Oracle Integration 구성에서 애플리케이션 롤 변경

주: 사용자정의 ID 도메인을 설정하지 않은 경우 default라는 도메인을 사용합니다. 이 자습서에서는 기본 도메인을 사용합니다.

  1. Domains(도메인) 페이지에서 default를 누릅니다.

    ID 도메인 링크를 누릅니다.

  2. 기본 도메인 페이지에서 "Oracle Cloud Services" 메뉴를 누른 다음 ICO 인스턴스에 대한 링크를 누릅니다.

    Oracle Cloud Services 링크를 누릅니다.

  3. 인스턴스의 구성 페이지에서 애플리케이션 롤 메뉴를 눌러 Oracle Integration 애플리케이션 내의 기존 롤을 봅니다. 각 역할에서 사용자 또는 사용자 그룹을 할당하여 접근 프로필을 Oracle Integration 환경에 세부적으로 관리할 수 있습니다.

    애플리케이션 롤을 누릅니다

작업 4: 테스트 및 검증

WAF 정책 적용 및 WAF의 FQDN을 가리키도록 도메인의 CNAME 구성을 완료한 후 마지막으로 모든 항목이 제대로 작동하는지 테스트할 수 있습니다.

  1. 도메인의 FQDN을 통해 끝점의 URL에 액세스합니다. Oracle Integration 콘솔 페이지가 표시되어야 합니다.

    Oracle Integration URL에 다시 액세스

  2. WAF에서 수행한 필터링을 검증하려면 정책 구성 페이지에 액세스하고 Logs 메뉴를 누릅니다.

    WAF가 올바르게 작동하는지 검증

  3. WAF의 작동을 검증하기 위해 브라우저의 URL을 통해 간단한 XSS 공격을 테스트할 수 있습니다.

    https://<oic>.<exampledomain>.com/ic/home/?default=<script>alert(document.cookie)</script>

    간단한 XSS 공격

  4. 마지막으로 WAF 로그에 액세스하고 XSS 공격으로 인해 발생하는 무단 액세스 차단 레코드를 확인합니다.

    WAF 로그 확인

    이제 인터넷에서 사용할 수 있고 OCI WAF로 보호되는 Oracle Integration 환경이 제공됩니다.

이 자료를 사용하기 전에 Oracle 클라우드 환경 관리를 위한 참조 링크와 공식 설명서를 읽어볼 것을 권장합니다.

승인

작성자 - Rodrigo Pace de Barros(Oracle LAD A-Team Cloud Security 솔루션 엔지니어)

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스할 수 있습니다. 또한 education.oracle.com/learning-explorer을 방문하여 Oracle Learning Explorer가 됩니다.

제품 설명서는 Oracle Help Center를 참조하십시오.