

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 RDS Custom for Oracle 主要執行個體和複本執行個體之間設定 VPN 通道
<a name="cfo-standby-vpn-tunnel"></a>

VPN 通道是網路中兩個或多個裝置之間的加密連線。為了確保 RDS Custom for Oracle 中 Oracle Data Guard 執行個體的最高安全性層級，強烈建議您實作 VPN 通道來加密主要和待命執行個體之間的通訊。通道在敏感資料於執行個體之間的網路傳輸時，可做為敏感資料的保護機制。雖然此組態是選用的，但建議您將其做為最佳實務，以達到資料安全和法規合規。

請確定您符合下列先決條件：
+ 您具備主要和待命主機的根存取權。
+ 您具備執行 `ipsec` 命令的技術專業知識。

**在 RDS Custom for Oracle 中設定主要和複本之間的 VPN 通道**

1. 使用下列規則，將主要執行個體和待命執行個體的安全群組新增至允許清單：

   ```
   ACTION FLOW SOURCE PROTO PORT
   
   ALLOW ingress this-SG 50 (ESP) all (N/A)
   ALLOW egress this-SG 50 (ESP) all (N/A)
   
   ALLOW ingress this-SG 17 (UDP) 500 (IKE)
   ALLOW egress this-SG 17 (UDP) 500 (IKE)
   ```

1. 切換至根使用者。

   ```
   $ sudo su – root
   ```

1. 在主要執行個體和待命執行個體上執行下列命令，以在使用者 `root` 下初始化網路安全服務 (NSS) 資料庫。

   ```
   ipsec initnss --nssdir /etc/ipsec.d
   ```

1. 產生 RSA 金鑰，如下所示：

   1. 在主要執行個體上，根據您的作業系統版本，使用下列任一 `ipsec` 命令產生金鑰。

      ```
      ipsec newhostkey --nssdir /etc/ipsec.d       ## for Oracle Linux Version 8
      ipsec newhostkey --output /etc/ipsec.secrets ## for Oracle Linux version 7.9
      ```

   1. 取得建立組態所需的公有金鑰。在下列範例中，主要執行個體是 `left`，因為以 `ipsec` 術語來說，`left` 是指您目前設定的裝置，而 `right` 是指通道另一端的裝置。

      ```
      ipsec showhostkey --left --ckaid ckaid-returned-in-last-statement
      ```

   1. 在待命執行個體上，產生待命執行個體的金鑰。

      ```
      ipsec newhostkey --nssdir /etc/ipsec.d       ## for Oracle Linux Version 8
      ipsec newhostkey --output /etc/ipsec.secrets ## for Oracle Linux version 7.9
      ```

   1. 取得建立組態所需的待命執行個體的公有金鑰。在下列範例中，待命執行個體是 `right`，因為它是指通道另一端的裝置。

      ```
      ipsec showhostkey --right --ckaid ckaid-returned-in-last-statement
      ```

1. 根據您取得的 RSA 金鑰來產生組態。主要執行個體和待命執行個體的組態都相同。您可以在 AWS 主控台中找到主要執行個體 IPv4 地址和待命執行個體 IPv4 地址。

   在主要執行個體和待命執行個體上，將下列組態儲存至檔案 `/etc/ipsec.d/custom-fb-tunnel.conf`。

   ```
   conn custom-db-tunnel
    type=transport
    auto=add
    authby=rsasig
    left=IPV4-for-primary 
    leftrsasigkey=RSA-key-generated-on-primary
    right=IPV4-for-standby
    rightrsasigkey=RSA-key-generated-on-standby
   ```

1. 在主要執行個體和待命執行個體上，在兩部主機上啟動 `ipsec` 常駐程式。

   ```
   ipsec setup start
   ```

1. 在主要執行個體或待命執行個體上啟動通道。輸出應看起來如下列內容。

   ```
   [root@ip-172-31-6-81 ~]# ipsec auto --up custom-db-tunnel
   181 "custom-db-tunnel" #1: initiating IKEv2 connection
   181 "custom-db-tunnel" #1: sent IKE_SA_INIT request to 172.31.32.196:500
   182 "custom-db-tunnel" #1: sent IKE_AUTH request {cipher=AES_GCM_16_256 integ=n/a prf=HMAC_SHA2_512 group=DH19}
   003 "custom-db-tunnel" #1: initiator established IKE SA; authenticated peer '3584-bit PKCS#1 1.5 RSA with SHA1' signature using preloaded certificate '172.31.32.196'
   004 "custom-db-tunnel" #2: initiator established Child SA using #1; IPsec transport [172.31.6.81-172.31.6.81:0-65535 0] -> [172.31.32.196-172.31.32.196:0-65535 0] {ESP/ESN=>0xda9c4815 <0xb742ca42 xfrm=AES_GCM_16_256-NONE DPD=passive}
   [root@ip-172-31-6-81 ~]#
   ```