역 프록시를 사용한 보안 배치

포트 번호를 사용하지 않고 Oracle GoldenGate Microservices에 액세스하기 위해 NGINX를 사용하여 역 프록시 서비스를 구성하는 방법을 알아봅니다.

ReverseProxySettings 사용을 위한 필수 조건

MA에서 역 프록시 서비스를 사용할 수 있습니다. 다음 예에서는 프록시 서버에 대한 설명서와 함께 다른 역 프록시 서비스를 구성하기 위해 따라갈 수 있는 프로세스를 제공합니다.

다음 필수 조건은 NGINX Reverse Proxy를 구성하기 위한 최소 요구 사항에 대한 세부 정보를 제공합니다. 프록시 구성에 다른 유틸리티를 사용하는 경우 사용자 환경 및 역 프록시에도 유사한 요구 사항이 필요할 수 있습니다.

주: Oracle Linux 8 또는 RHEL 8에 Oracle GoldenGate 26ai를 설치할 때 적절한 NGINX 모듈 스트림을 사용으로 설정하여 NGINX 버전이 1.24 이상인지 확인하십시오.

  1. NGINX를 설치합니다. Install the NGINX Web Server and Proxy on Oracle Linux를 참조하십시오. Oracle Linux의 경우 NGINX를 설치하는 명령은 다음과 같습니다.

    yum -y install nginx

  2. JRE 버전이 JRE 8 이상인지 확인합니다.

  3. Oracle GoldenGate MA를 설치합니다.

  4. 하나 이상의 활성 MA 배치를 만듭니다.

  5. Oracle 사용자에게 sudo 권한이 있는지 확인합니다.

  6. NGINX 설치 디렉토리 경로를 포함하도록 PATH 환경 변수를 구성합니다.

ReverseProxySettings 유틸리티를 실행하여 NGINX 구성

Oracle GoldenGate Microservices Architecture 설치에는 ReverseProxySettings 유틸리티가 포함됩니다. ReverseProxySettings 유틸리티는 $OGG_HOME/lib/utl/reverseproxy 디렉토리에 있습니다.

ReverseProxySettings 유틸리티와 함께 사용할 수 있는 추가 명령을 식별하려면 --help 옵션을 사용하여 유틸리티를 실행합니다.

$OGG_HOME/lib/utl/reverseproxy/ReverseProxySettings --help

ReverseProxySettings 유틸리티에서 사용할 수 있는 옵션은 다음과 같습니다.

-o 또는 –output

출력 파일 이름입니다. 기본 파일 이름은 ogg.conf입니다.

-P 또는 –password

서비스 관리자 계정의 비밀번호입니다.

-l 또는 –log

로그 파일 이름 및 로깅을 시작합니다. 기본값은 로깅 없음입니다.

–trailOnly

인바운드 추적 데이터에 대해서만 구성합니다.

-t 또는 –type

프록시 서버 유형입니다. 기본값은 Nginx입니다.

-s 또는 –no-ssl

SSL 없이 구성합니다.

-h 또는 –host

역 프록시의 가상 호스트 이름입니다.

-p 또는 –port

역 프록시 포트 번호입니다. 기본값은 80 또는 443입니다.

-? 또는 –help입니다.

사용 정보를 표시합니다.

-u 또는 –user

사용할 서비스 관리자 계정의 이름입니다.

-v 또는 –version

버전을 표시합니다.

ReverseProxySettings 유틸리티 실행

ReverseProxySettings 유틸리티를 사용하려면 다음을 수행합니다.

  1. NGINX 역 프록시용 구성 파일을 생성하려면 ReverseProxySettings 유틸리티의 위치로 이동합니다.

    cd $OGG_HOME/lib/utl/reverseproxy
  2. ReverseProxySetting 유틸리티를 실행합니다.

    ReverseProxySettings -u *adminuser* -P *adminpwd* -o ogg.conf http://localhost:9100

    이 코드 조각에서 adminuser는 배포 사용자 이름이고 adminpwd는 배포에 로그인하는 데 사용되는 배포 사용자 비밀번호입니다.

  3. 2단계에서 생성한 ogg.conf 파일을 /etc/nginx/conf.d 디렉토리에 복사합니다.

    sudo cp ogg.conf /etc/nginx/conf.d/.
  4. 다음 단계를 사용하여 SSL/TLS 설정에 대한 ogg.conf 파일을 업데이트합니다.

    1. ssl_ciphers 행을 찾아 다음으로 바꿉니다.

      ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305;
    2. 이 행 아래에 다른 행을 추가합니다.

      ssl_conf_command Ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256;
    3. 자체 서명된 인증서를 사용하는 경우 다음 샘플에 표시된 것과 같이, 개인 키 및 인증서 pem 파일이 /etc/nginx 디렉토리에 복사되었는지 확인합니다.

      sudo cp ogg.key /etc/nginx/.
      sudo cp ogg.pem /etc/nginx/.

      다음 두 행을 올바른 파일 위치를 가리키도록 변경합니다.

      ssl_certificate          /etc/nginx/ogg.pem;
      ssl_certificate_key      /etc/nginx/ogg.key;
    4. 루트 CA 서명 인증서를 사용하는 경우 모든 중간 CA 인증서가 서버 인증서에 추가되었는지 확인합니다.

      cat server_cert.pem intermediate_ca_cert1.pem intermediate_ca_cert2.pem > ogg_chain.pem

      개인 키 및 인증서 체인을 /etc/nginx에 복사합니다.

      sudo cp ogg_chain.pem /etc/nginx/.
      sudo cp ogg_key /etc/nginx/.

      다음 두 행을 올바른 파일 위치를 가리키도록 변경합니다.

      ssl_certificate         /etc/nginx/ogg_chain.pem;
      ssl_certificate_key     /etc/nginx/ogg.key;
  5. NGINX 구성을 검증합니다.

    sudo nginx -t

    명령이 성공하면 출력에 다음이 표시됩니다.

    NGINX: the configuration file /etc/NGINX/NGINX.conf syntax is ok
    NGINX: configuration file /etc/NGINX/NGINX.conf test is successful
  6. NGINX 서비스 다시 시작:

    sudo systemctl restart nginx

    구성 파일에 대한 변경 사항이 로드되지 않으면 프록시를 중지했다가 다시 시작합니다.

  7. NGINX가 성공적으로 설정된 후 마이크로서비스에 액세스할 수 있는지 테스트하려면 웹 브라우저를 엽니다.

  8. 다음과 유사한 포트 번호 443을 사용하여 Service Manager에 대한 프록시 URL을 입력합니다.

    http://dc.example.com:443

    그러면 다른 마이크로서비스에도 액세스할 수 있는 Service Manager 로그인 페이지가 열립니다. 마이크로서비스에 직접 액세스하려는 경우 이전에 생성된 ogg.conf 파일에 제공된 대로 해당 마이크로서비스에 대한 프록시 URL을 입력할 수 있습니다.

또한 NGINX 역 프록시 구성에 대한 이 비디오를 참조하십시오.

SSL 종료

TLS 기반 연결을 사용하는 역방향 프록시와 원천 서버 간에 비보안 연결이 있는 경우 역방향 프록시 SSL 종료라고 합니다. 주: SSL 종료 시 역 프록시와 원천 서버 간의 연결은 안전하지 않습니다.

그러나 클라이언트와 역 프록시 간의 연결이 보안되고 역 프록시와 원천 서버 간의 연결도 보안되는 경우에도 SSL 브리징이 지원됩니다.

주: 역 프록시가 사용되는 경우 mTLS가 지원되지 않습니다.