VPN トンネルは、ネットワーク上の 2 つ以上のデバイス間の暗号化された接続です。RDS Custom for Oracle で Oracle Data Guard インスタンスのセキュリティを最高レベルまで高めるために、プライマリインスタンスとスタンバイインスタンス間に VPN トンネルを実装し、通信を暗号化するすることを強くお勧めします。VPN トンネルは、インスタンス間で機密データがネットワークを移動する際のにセキュリティを保護します。この設定はオプションですが、データを保護し、規制に準拠するためのベストプラクティスとしてお勧めします。
次の前提条件を満たしていることを確認します。
-
プライマリホストとスタンバイホストへのルートアクセスがあること。
-
ipsec
コマンドを実行するための技術的な専門知識があること。
RDS Custom for Oracle でプライマリとレプリカ間に VPN トンネルを設定するには
-
次のルールを使用して、プライマリインスタンスとスタンバイインスタンスの両方のセキュリティグループを許可リストに追加します。
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)
-
root ユーザーに切り替えます。
$ sudo su – root
-
プライマリインスタンスとスタンバイインスタンスの両方で次のコマンドを実行して、
root
ユーザーのネットワークセキュリティサービス (NSS) データベースを初期化します。ipsec initnss --nssdir /etc/ipsec.d
-
次のように RSA キーを生成します。
-
プライマリインスタンスで、OS のバージョンに応じて次のいずれかの
ipsec
コマンドを使用し、キーを生成します。ipsec newhostkey --nssdir /etc/ipsec.d ## for Oracle Linux Version 8 ipsec newhostkey --output /etc/ipsec.secrets ## for Oracle Linux version 7.9
-
構成を作成するために必要なパブリックキーを取得します。次の
ipsec
の例では、left
が設定中のデバイスを参照し、right
がトンネルの他方の終端にあるデバイスを参照するため、プライマリインスタンスはleft
になります。ipsec showhostkey --left --ckaid
ckaid-returned-in-last-statement
-
スタンバイインスタンスで、スタンバイインスタンスのキーを生成します。
ipsec newhostkey --nssdir /etc/ipsec.d ## for Oracle Linux Version 8 ipsec newhostkey --output /etc/ipsec.secrets ## for Oracle Linux version 7.9
-
スタンバイ インスタンスの構成を作成するために必要なパブリックキーを取得します。次の例では、トンネルの他方の終端にあるデバイスを参照している
right
がスタンバイインスタンスになります。ipsec showhostkey --right --ckaid
ckaid-returned-in-last-statement
-
-
取得した RSA キーに基づいて、構成を生成します。構成は、プライマリインスタンスとスタンバイインスタンスで同じになります。プライマリインスタンスの IPv4 アドレスも、スタンバイインスタンスの IPv4 アドレスも、AWS コンソールで確認できます。
プライマリインスタンスとスタンバイインスタンスの両方で、次の構成をファイル
/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
-
プライマリインスタンスとスタンバイインスタンスの両方のホストで
ipsec
デーモンを起動します。ipsec setup start
-
プライマリインスタンスまたはスタンバイインスタンスでトンネルを起動します。出力は以下の例のようになります。
[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 ~]#