建立 IKE 原則

您可以使用自訂的網際網路金鑰交換 (IKE) 政策來定義在 IKE 協商第一階段中使用的安全性參數。 在此階段,VPN 和對等裝置交換憑證和安全政策,以驗證彼此,並建立安全通訊通道,用於第二階段協商。

IKEv1 是一個已廢棄的通訊協定,我們強烈建議您使用 IKEv2。 如果您的 VPN 連線使用 IKEv1 政策,則相關的 IPsec 政策也必須只包含一種演算法,因為 IKEv1 只支援單一演算法。 IKEv1 不支援多重演算法的 IPsec 政策。

為了確保一致的演算法選擇,請在 IBM Cloud VPN 閘道和對等閘道上匹配精確的 IKE 和 IPsec 演算法及其優先順序。 如需更多關於哪些因素會影響演算法選擇的資訊,請參閱 如何為站點對站點 VPN 連線中的 IKE 和 IPsec 選擇加密演算法?

在主控台中建立 IKE 政策

若要在主控台中建立 IKE 政策,請遵循下列步驟:

  1. 從 VPC 的 VPN 清單頁面,選擇 Site-to-site gateways > IKE 政策

  2. 按下「建立」,並指定以下資訊:

    • 位置- 選取此 IKE 政策的區域。
    • 名稱- 輸入 IKE 政策的名稱。
    • 資源群組-選取此 IKE 原則的資源群組。
    • IKE 版本- 選擇 IKE 通訊協定版本。 有些廠商不同時支援 IKEv1 和 IKEv2。 檢查對等供應商文檔,確認支援的 IKE 版本。
    • 加密- 選擇 IKE 要使用的加密演算法。 預設情況下,系統會選擇強度最低的演算法。 您可以為每個欄位選擇多個值,並依優先順序重新排序。 VPN 閘道會與對等閘道協商,以選擇最佳的相互支援演算法。
    • 驗證- 選擇 IKE 使用的驗證演算法。 預設情況下,系統會選擇強度最低的演算法。 您可以為每個欄位選擇多個值,並依優先順序重新排序。
    • Diffie-Hellman 群組- 選擇要用於 IKE 的 DH 群組。 預設選取最低的 DH 群組。 您可以選擇多個 DH 群組,並依優先順序重新排序。
    • 金鑰使用期限- 選擇第一階段隧道的使用期限 (以秒為單位)。
  3. 按一下建立

  4. 從「VPN 連線詳細資料」頁面中,設定 IKE 原則 欄位以使用想要的 IKE 原則。

    為了確保 IKE/IPsec 談判成功,請設定兩個對等端在每個類別 (驗證、加密和 DH 群組) 中至少有一個匹配演算法。 在對等端之間對齊這些設定有助於避免連線失敗。

從 CLI 建立 IKE 原則

開始之前,請 設定 CLI 環境

若要從 CLI 建立 IKE 政策,請輸入下列指令:

ibmcloud is ike-policy-create IKE_POLICY_NAME AUTHENTICATION_ALGORITHMS DH_GROUPS ENCRYPTION_ALGORITHMS IKE_VERSION [--key-lifetime KEY_LIFETIME] [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] [--output JSON] [-q, --quiet]

其中:

  • IKE_POLICY_NAME- IKE 政策的名稱。
  • AUTHENTICATION_ALGORITHMS- 驗證演算法。 其中之一:sha256, sha384, sha512,或逗號分隔的驗證演算法清單 (sha512, sha384, sha256,)。演算法的順序決定它們在協商過程中的優先順序。
  • DH_GROUPS- 迪菲-赫爾曼群。 之一:14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 31,或以逗號分隔的 DH 群組清單 (14,15,16,17,18)。群組的順序決定它們在協商過程中的優先順序。
  • ENCRYPTION_ALGORITHMS- 加密演算法。 其中之一:aes128, aes192, aes256,或以逗號分隔的加密演算法清單 (aes256,aes192,aes128)。演算法的順序決定它們在協商過程中的優先順序。
  • IKE_VERSION- IKE 協定版本。 下列其中一項: 12
  • --key-lifetime- 金鑰有效期(以秒為單位)。 最大值: 86400. 最低: 1800. 預設值為 28800
  • --resource-group-id- 資源群組的 ID。 此選項與 --resource-group-name 互斥。
  • --resource-group-name- 資源群組的名稱。 此選項與 --resource-group-id 互斥。
  • --output- 指定 JSON 格式的輸出。
    • q, --quiet- 隱藏詳盡的輸出。

md5 和 認證演算法、和 DH 群組,以及 加密演算法已於 2022 年 9 月 20 日廢棄,主控台不再支援。sha1 2 5 triple_des

從 CLI 更新 IKE 政策

開始之前,請 設定 CLI 環境

若要從 CLI 更新 IKE 策略,請輸入下列指令:

ibmcloud is ike-policy-update IKE_POLICY [--name NEW_NAME] [--authentication-algorithms AUTHENTICATION_ALGORITHMS] [--dh-groups DH_GROUPS] [--encryption-algorithms ENCRYPTION_ALGORITHMS] [--authentication-algorithm sha256 | sha384 | sha512] [--dh-group 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 31] [--encryption-algorithm aes128 | aes192 | aes256] [--ike-version 1 | 2] [--key-lifetime KEY_LIFETIME] [--output JSON] [-q, --quiet]

其中:

  • --name- IKE 政策的名稱。

  • -authentication-algorithms- 以逗號分隔的驗證演算法清單 (建議使用)。 演算法的順序決定了它們在協商過程中的優先順序。

  • --authentication-algorithm- 驗證演算法(已廢棄)。 以下其中一個:sha256sha384sha512

  • -dh-groups- 以逗號分隔的 DH 群組清單 (建議使用)。 群組的順序決定它們在協商過程中的優先順序。

  • --dh-組- DH 群組 (已廢棄)。 下列其中一項: 141516171819202122232431

  • --encryption-algorithms- 以逗號分隔的加密演算法清單 (建議使用)。 演算法的順序決定了它們在協商過程中的優先順序。

  • --encryption-algorithm- 加密演算法(已廢棄)。 以下其中一個:aes128aes192aes256

  • --ike-version- IKE 協定版本。 下列其中一項: 12

    請勿在單一指令中混用相同演算法類別的單數和陣列型屬性。

指令範例

authentication algorithms, dh_groups,和 encryption algorithms,用來從 CLI 建立 IKE 策略的單數值已被廢棄。 改用多個逗號分隔值。

  • 使用逗號分隔的驗證演算法 (SHA 512 和 SHA 256)、DH 群組 (14、15、16、17)、加密演算法 (AES 256、AES 192、AES 128) 和 IKE 版本 2 建立 IKE 政策:

    ibmcloud is ike-policy-create my-ike-policy sha512,sha256 14,15,16,17 aes256,aes192,aes128 2
    
  • 使用單一驗證演算法 (SHA 256)、單一加密演算法 (AES 128)、DH Group 14 及 IKE Version 2 建立 IKE 政策:

    ibmcloud is ike-policy-create my-ike-policy sha256 14 aes128 2
    
  • 建立具有相同參數和 3600 秒有效期的 IKE 政策:

    ibmcloud is ike-policy-create my-ike-policy sha256 14 aes128 2 --key-lifetime 3600
    
  • 使用相同參數和特定資源群組 ID 建立 IKE 政策:

    ibmcloud is ike-policy-create my-ike-policy sha256 14 aes128 2 --resource-group-id fee82deba12e4c0fb69c3b09d1f12345 --output JSON
    
  • 更新 IKE 策略,將名稱、驗證演算法變更為 SHA 512 和 SHA 256、加密演算法變更為 AES 256、AES 192,以及 DH 群組變更為 15 和 16。

    ibmcloud is ike-policy-update my-ike-policy --name new-ike-policy --authentication-algorithms sha512,sha256 --encryption-algorithms aes256,aes192 --dh-groups 15,16 --output JSON
    

    為了確保 IKE/IPsec 談判成功,請設定兩個對等端在每個類別 (驗證、加密和 DH 群組) 中至少有一個匹配演算法。 在對等端之間對齊這些設定有助於避免連線失敗。

使用 API 建立 IKE 原則

若要使用陣列型屬性 (建議) 建立具有多種演算法的 IKE 政策,請遵循下列步驟:

  1. 使用正確的變數來設定 API 環境

  2. 儲存要在 API 指令中使用的任何其他變數,例如:

ResourceGroupId-使用 get resource groups 指令尋找資源群組 ID,然後移入變數:

export ResourceGroupId=<your_resourcegroup_id>
  1. 建立 IKE 政策:

       curl -X POST "$vpc_api_endpoint/v1/ike_policies?version=$api_version&generation=2" \
         -H "Authorization: Bearer $iam_token" \
         -d '{
            "name": "my-new-ike-policy",
             "authentication_algorithms": ["sha256","sha384","sha512"],
             "encryption_algorithms": ["aes128","aes256"],
             "dh_groups": [14,15,16],
             "ike_version": 2,
             "resource_group": {
              "id": "'$ResourceGroupId'"
            }
          }'
    

用於 IKE 協商的奇異屬性 authentication_algorithmdh_groupencryption_algorithm 已經廢棄。 使用陣列型屬性建立 IKE 政策。 要瞭解使用 API 時 IKE 策略的單一和陣列型演算法屬性的更多資訊,請參閱 更新為多種 IKE 和 IPsec 演算法

若要使用 API 來建立 IKE 政策,請遵循下列步驟:使用單一的屬性 (已廢棄):

  1. 使用正確的變數來設定 API 環境

  2. 儲存要在 API 指令中使用的任何其他變數,例如:

ResourceGroupId-使用 get resource groups 指令尋找資源群組 ID,然後移入變數:

export ResourceGroupId=<your_resourcegroup_id>
  1. 建立 IKE 政策:

       curl -X POST "$vpc_api_endpoint/v1/ike_policies?version=$api_version&generation=2" \
         -H "Authorization: Bearer $iam_token" \
         -d '{
            "name": "my-new-ike-policy",
            "dh_group": 14,
            "authentication_algorithm": "sha256",
            "encryption_algorithm": "aes128",
            "ike_version": 2,
            "resource_group": {
              "id": "'$ResourceGroupId'"
            }
          }'
    

使用 API 更新 IKE 政策

若要使用基於陣列的屬性 (建議) 以 API 更新 IKE 政策,請遵循下列步驟:

  1. 使用正確的變數來設定 API 環境

  2. 儲存要在 API 指令中使用的任何其他變數,例如:

ResourceGroupId-使用 get resource groups 指令尋找資源群組 ID,然後移入變數:

export ResourceGroupId=<your_resourcegroup_id>
  1. 更新 IKE 政策:

       curl -X PATCH "$vpc_api_endpoint/v1/ike_policies/$ike_policy_id?version=$api_version&generation=2" \
         -H "Authorization: Bearer $iam_token" \
         -d '{
             "name": "my-updated-ike-policy",
             "authentication_algorithms": ["sha512","sha384","sha256"],
             "encryption_algorithms": ["aes256","aes128"],
             "dh_groups":[15,16,14],
             "ike_version": 2,
             "key_lifetime": 3600,
             "resource_group": {
              "id": "'$ResourceGroupId'"
            }
          }'
    

若要使用 API 更新 IKE 策略,請遵循下列步驟:使用單元屬性 (已停用):

您可以使用已廢棄的單一式屬性或陣列式屬性來更新 IKE 策略。 這兩種形式都可以接受,但您不可以在單一請求中混用同一演算法類別的單一和陣列型屬性。

  1. 使用正確的變數來設定 API 環境

  2. 儲存要在 API 指令中使用的任何其他變數,例如:

ResourceGroupId-使用 get resource groups 指令尋找資源群組 ID,然後移入變數:

export ResourceGroupId=<your_resourcegroup_id>
  1. 更新 IKE 政策:

       curl -X PATCH "$vpc_api_endpoint/v1/ike_policies/$ike_policy_id?version=$api_version&generation=2" \
         -H "Authorization: Bearer $iam_token" \
         -d '{
             "name": "my-updated-ike-policy",
             "authentication_algorithm": "sha384",
             "encryption_algorithm": "aes256",
             "dh_group": 15,
             "ike_version": 2,
             "key_lifetime": 3600,
             "resource_group": {
              "id": "'$ResourceGroupId'"
            }
          }'
    

若要檢視站點對站點 VPN 閘道的完整 API 集,請參閱 VPC API 參考資料

使用 Terraform 建立 IKE 政策

在以下範例中,您可以使用 Terraform 建立一個 IKE 政策:

   resource "ibm_is_ike_policy" "is_ike_policy" {
     name                     = "my-ike-policy"
     authentication_algorithm = "sha256"
     encryption_algorithm     = "aes128"
     dh_group                 = 14
     ike_version              = 2
   }
  1. 在以下範例中,您可以使用 Terraform 建立一個具有陣列型屬性的 IKE 政策(建議採用):

       resource "ibm_is_ike_policy" "is_ike_policy" {
         name                     = "my-ike-policy"
         authentication_algorithms = ["sha512", "sha384"]
         encryption_algorithms     = ["aes192", "aes128"]
         dh_groups                 = [15, 16]
         ike_version              = 2
         key_lifetime             = 1800
       }
    
  2. 在以下範例中,您可以使用 Terraform 建立一個具有單一屬性的 IKE 政策(已廢棄):

       resource "ibm_is_ike_policy" "is_ike_policy" {
         name                     = "my-ike-policy"
         authentication_algorithm = "sha256"
         encryption_algorithm     = "aes128"
         dh_group                 = 14
         ike_version              = 2
       }
    

    請勿在單一請求中,將同一演算法類別的單一屬性與基於陣列的屬性混用。

如需更多資訊,請參閱 Terraform 註冊表

下一步

建立 IKE 政策後,請視需要完成下列工作: