建立 IPsec 原則
您可以使用自訂 IPsec 政策來定義在協商階段 2 中使用的安全性參數。 在此階段中,VPN 及對等裝置會使用在「階段 1」期間建立的安全關聯,來協議要傳送哪些資料流量,以及如何鑑別及加密該資料流量。
為了確保一致的演算法選擇,請在 IBM Cloud VPN 閘道和對等閘道上匹配精確的 IKE 和 IPsec 演算法及其優先順序。 如需更多關於哪些因素會影響演算法選擇的資訊,請參閱 如何為站點對站點 VPN 連線中的 IKE 和 IPsec 選擇加密演算法?
在主控台中建立 IPsec 政策
若要在主控台中建立 IPsec 政策,請遵循下列步驟:
-
從 VPC 的 VPN 清單頁面,選擇 Site-to-site gateways > IPsec 政策。
-
按下「建立」,並指定以下資訊:
- 位置- 選取此 IPsec 政策的區域。
- 名稱- 輸入 IPsec 原則的名稱。
- 資源群組-選取此 IPsec 原則的資源群組。
- 加密- 選擇第二階段要使用的加密算法。 預設情況下,系統會選擇強度最低的演算法。 您可以為每個欄位選擇多個值,並依優先順序重新排序。 VPN 閘道會與對等閘道協商,以選擇最佳的相互支援演算法。
- 驗證- 選擇第二階段要使用的驗證演算法。 預設情況下,系統會選擇強度最低的演算法。 您可以選擇多種驗證演算法,並依優先順序重新排序。
- Perfect Forward Secrecy- 啟用此選項可在每個 Phase 2 重新鑰匙期間執行新的 Diffie-Hellman 交換,因此如果金鑰遭到洩露,先前加密的通訊仍會安全。
- Diffie-Hellman 群組 (如果啟用 PFS)- 選擇要用於 Phase 2 金鑰交換的 DH 群組。 預設選取最低的 DH 群組。 您可以選擇多個 DH 群組,並依優先順序重新排序。
- 金鑰使用期限- 選擇 Phase 2 通道的使用期限 (以秒為單位)。
-
按一下建立。
-
從 VPN 連線詳細資料 頁面中,設定 IPsec 原則 欄位以使用想要的 IPsec 原則。
為了確保 IKE/IPsec 談判成功,請設定兩個對等端在每個類別 (驗證、加密和 PF 群組) 中至少有一個匹配演算法。 在對等端之間對齊這些設定有助於避免連線失敗。
從 CLI 建立 IPsec 原則
開始之前,請 設定 CLI 環境。
若要從 CLI 建立 IPsec 原則,請輸入下列指令:
ibmcloud is ipsec-policy-create IPSEC_POLICY_NAME AUTHENTICATION_ALGORITHMS ENCRYPTION_ALGORITHMS PFSGS [--key-lifetime KEY_LIFETIME] [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] [--output JSON] [-q, --quiet]
其中:
- IPSEC_POLICY_NAME- IPsec 政策的名稱。
- AUTHENTICATION_ALGORITHMS- 驗證演算法。 只有當 ENCRYPTION_ALGORITHMS 包含合併模式演算法 (
aes128gcm16,aes192gcm16,aes256gcm16) 時,才必須停用。其中之一:disabled,sha256,sha384,sha512,或以逗號分隔的驗證演算法清單 (sha384,sha256,sha512)。演算法的順序決定它們在協商過程中的優先順序。 - ENCRYPTION_ALGORITHMS- 加密演算法。 之一:
aes128,aes128gcm16,aes192,aes192gcm16,aes256,aes256gcm16,或以逗號分隔的加密演算法清單 (aes128,aes192,aes256)。演算法的順序決定它們在協商過程中的優先順序。 - PFSGS — 完美前向保密群組。 之一:
disabled,group_14,group_15,group_16,group_17,group_18,group_19,group_20,group_21,group_22,group_23,group_24,group_31,或以逗號分隔的 PFS 群組清單 (group_14,group_15,group_16)。群組的順序決定它們在協商過程中的優先順序。 - --key-lifetime 值 —— 金鑰有效期(以秒為單位)。 最大值:
86400,最小值:1800。 預設值為3600。 - --resource-group-id 值 —— 資源群組的 ID。 此選項與 --resource-group-name 互斥。
- --resource-group-name 值- 資源群組的名稱。 此選項與 --resource-group-id 互斥。
- -- output value-以 JSON 格式指定輸出。
-
- q, --quiet- 隱藏詳盡的輸出。
md5 和 認證演算法、和 DH 群組,以及 加密演算法已於 2022 年 9 月 20 日廢棄,主控台不再支援。sha1 group_2 group_5 triple_des
AUTHENTICATION_ALGORITHMS 必須等於 disabled,且僅當 ENCRYPTION_ALGORITHMS 等於 aes128gcm16、aes192gcm16 或 aes256gcm16 時才成立。
從 CLI 更新 IPsec 政策
開始之前,請 設定 CLI 環境。
若要從 CLI 更新 IPsec 政策,請輸入下列指令:
ibmcloud is ipsec-policy-update IPSEC_POLICY [--name NEW_NAME] [--authentication-algorithms AUTHENTICATION_ALGORITHMS] [--pfsgs PFSGS] [--encryption-algorithms ENCRYPTION_ALGORITHMS] [--authentication-algorithm AUTHENTICATION_ALGORITHM] [--pfs disabled | group_14 | group_15 | group_16 | group_17 | group_18 | group_19 | group_20 | group_21 | group_22 | group_23 | group_24 | group_31] [--encryption-algorithm aes128 | aes128gcm16 | aes192 | aes192gcm16 | aes256 | aes256gcm16] [--key-lifetime KEY_LIFETIME] [--output JSON] [-q, --quiet]
其中:
-
--name- IPsec 政策的名稱。
-
--authentication-algorithms(驗證演算法)--以逗號分隔的驗證演算法清單(建議使用)。 演算法的順序決定了它們在協商過程中的優先級。
-
--authentication-algorithm- 驗證演算法(已廢棄)。 僅當 --encryption_algorithm 的值為
aes128gcm16、aes192gcm16或aes256gcm16時,才必須停用此功能。 之一:disabled,sha256,sha384、sha512 -
--encryption-algorithms- 以逗號分隔的加密演算法清單 (建議使用)。 演算法的順序決定了它們在協商過程中的優先級。
-
--encryption-algorithm- 加密演算法(已廢棄)。 下列其中一項:
aes128、aes128gcm16、aes192、aes192gcm16、aes256、aes256gcm16。 -
-pfsgs- 以逗號分隔的 Perfect Forward Secrecy 群組清單。 群組的順序決定它們在協商過程中的優先順序。
-
--pfs- 完美前向保密群組 (已棄用)。 其中之一:殘障人士,
group_14,group_15,group_16,group_17,group_18,group_19,group_20,group_21,group_22,group_23,group_24,group_31。請勿在單一指令中混用相同演算法類別的單數和陣列型屬性。
指令範例
authentication algorithms, pfsgs,和 encryption algorithms,從 CLI 建立 IPsec 策略的單數值已被廢棄。 改用多個逗號分隔值。
-
使用以逗號分隔的驗證演算法 (SHA 512 和 SHA 256)、加密演算法 (AES 256、AES 192 和 AES 128) 和完美前向保密群組 ( group_14 和 group_15 ) 建立 IPsec 政策:
ibmcloud is ipsec-policy-create my-ipsec-policy sha512,sha256 aes256,aes192,aes128 group_14,group_15 -
使用單一驗證演算法 (SHA 256)、單一加密演算法 (AES 128) 及 DH Group 14 建立 IPsec 政策:
ibmcloud is ipsec-policy-create my-ipsec-policy sha256 aes128 group_14 -
建立具有相同參數及 3600 秒生命期限的 IPsec 原則:
ibmcloud is ipsec-policy-create my-ipsec-policy sha256 aes128 group_14 --key-lifetime 3600 -
建立具有相同參數及資源群組 ID 的 IPsec 原則:
ibmcloud is ipsec-policy-create my-ipsec-policy sha256 aes128 group_14 --resource-group-id fee82deba12e4c0fb69c3b09d1f12345 --output JSON -
更新 IPsec 政策,將名稱、驗證演算法變更為 SHA 512 和 SHA 256、加密演算法變更為 AES 256 和 AES 192,以及完美前向保密群組變更為 group_15 和。group_16:
ibmcloud is ipsec-policy-update my-ipsec-policy --name new-ipsec-policy --authentication-algorithms sha512,sha256 --encryption-algorithms aes256,aes192 --pfsgs group_15,group_16 --output JSON -
使用 GCM 加密更新 IPsec 政策(關閉驗證):
ibmcloud is ipsec-policy-update $ipsec_policy \ --authentication-algorithms disabled \ --encryption-algorithms aes128gcm16,aes256gcm16authentication_algorithms必須設定為disabled,當且僅當encryption_algorithms清單包含任何基於 GCM 的演算法 (aes128gcm16,aes192gcm16, 或aes256gcm16)。 GCM 演算法同時提供加密和內建的資料完整性 (驗證) 作為單一作業的一部分,因此不必指定單獨的驗證演算法 (例如sha256或sha512)。
使用 API 建立 IPsec 原則
用於 IPsec 協商的奇異屬性 authentication_algorithm, dh_group, encryption_algorithm,和 pfs 已經廢棄。 使用基於陣列的屬性建立 IPsec 政策。 要瞭解使用 API 時 IPsec 策略的單一和陣列型演算法屬性的更多資訊,請參閱 更新為多重 IKE 和 IPsec 演算法。
若要使用陣列式屬性 (建議) 建立具有多種演算法的 IPsec 政策,請遵循下列步驟:
-
使用正確的變數來設定 API 環境。
-
儲存要在 API 指令中使用的任何其他變數,例如:
ResourceGroupId-使用 get resource groups 指令尋找資源群組 ID,然後移入變數:
export ResourceGroupId=<your_resourcegroup_id>
-
建立 IPsec 政策:
curl -X POST "$vpc_api_endpoint/v1/ipsec_policies?version=$api_version&generation=2" \ -H "Authorization: Bearer $iam_token" \ -d '{ "name": "my-new-ipsec-policy", "authentication_algorithms": ["sha256", "sha512"], "encryption_algorithms": ["aes128", "aes256"], "pfs_groups": ["group_14", "group_15", "group_16", "group_17", "group_18"], "resource_group": { "id": "'$ResourceGroupId'" } }'
建立 IPsec 政策,將 encryption_algorithms 設定為 GCM-based 演算法,將 authentication_algorithms 設定為 disabled:
curl -X POST "$vpc_api_endpoint/v1/ipsec_policies?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token" \
-d '{
"name": "gcm-ipsec-policy",
"encryption_algorithms": ["aes128gcm16","aes192gcm16","aes256gcm16"],
"authentication_algorithms": ["disabled"],
"pfs_groups": ["group_14","group_15","group_16","group_17","group_18"],
"resource_group": {
"id": "'$ResourceGroupId'"
}
}'
authentication_algorithms 屬性必須設定為 disabled,當且僅當 encryption_algorithms 清單包含任何基於 GCM 的演算法 (aes128gcm16, aes192gcm16, 或 aes256gcm16)。 GCM 演算法同時提供加密和內建的資料完整性 (驗證) 作為單一作業的一部分,因此不必指定單獨的驗證演算法
(例如 sha256 或 sha512)。
若要透過 API 使用單一的屬性(已停用)建立 IPsec 政策,請遵循下列步驟:
-
使用正確的變數來設定 API 環境。
-
儲存要在 API 指令中使用的任何其他變數,例如:
ResourceGroupId-使用 get resource groups 指令尋找資源群組 ID,然後移入變數:
export ResourceGroupId=<your_resourcegroup_id>
- 建立 IPsec 政策:
curl -X POST "$vpc_api_endpoint/v1/ipsec_policies?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token" \
-d '{
"name": "my-new-ipsec-policy",
"authentication_algorithm": "sha256",
"encryption_algorithm": "aes128",
"pfs": "group_14",
"resource_group": {
"id": "'$ResourceGroupId'"
}
}'
使用 API 更新 IPsec 政策
若要使用陣列式內容 (建議) 以 API 更新 IPsec 政策,請遵循下列步驟:
-
使用正確的變數來設定 API 環境。
-
儲存要在 API 指令中使用的任何其他變數,例如:
ResourceGroupId-使用 get resource groups 指令尋找資源群組 ID,然後移入變數:
export ResourceGroupId=<your_resourcegroup_id>
- 更新 IPsec 政策:
curl -X PATCH "$vpc_api_endpoint/v1/ipsec_policies/$ipsec_policy_id?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token" \
-d '{
"name": "my-updated-ipsec-policy",
"authentication_algorithms": ["sha512", "sha384", "sha256"],
"encryption_algorithms": ["aes256", "aes128"],
"pfs_groups": ["group_18", "group_17", "group_16", "group_15", "group_14"],
}'
若要使用 API 更新 IPsec 策略,請遵循下列步驟:使用單元屬性(已停用):
您可以使用已被廢棄的單元內容或以陣列為基礎的內容來更新 IPsec 政策。 這兩種形式都可以接受,但您不可以在單一請求中混用同一演算法類別的單一和陣列型屬性。
-
使用正確的變數來設定 API 環境。
-
儲存要在 API 指令中使用的任何其他變數,例如:
ResourceGroupId-使用 get resource groups 指令尋找資源群組 ID,然後移入變數:
export ResourceGroupId=<your_resourcegroup_id>
- 更新 IPsec 政策:
curl -X PATCH "$vpc_api_endpoint/v1/ipsec_policies/$ipsec_policy_id?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token" \
-d '{
"name": "my-updated-ipsec-policy",
"authentication_algorithm": "sha512",
"encryption_algorithm": "aes256",
"pfs": "group_18",
}'
若要檢視站點對站點 VPN 閘道的完整 API 集,請參閱 VPC API 參考資料。
使用 Terraform 建立 IPsec 政策
在以下範例中,您可以使用 Terraform 建立一個 IPsec 政策:
resource "ibm_is_ipsec_policy" "is_ipsec_policy" {
name = "my-ipsec-policy"
authentication_algorithm = "sha256"
encryption_algorithm = "aes128"
pfs = "group_14"
}
- 在以下範例中,您可以使用 Terraform 建立一個具有陣列型屬性的 IPsec 政策(建議採用):
resource "ibm_is_ipsec_policy" "is_ipsec_policy" {
name = "my-ipsec-policy"
authentication_algorithms = ["sha512", "sha384"]
encryption_algorithms = ["aes128", "aes192"]
pfs_groups = ["group_14", "group_15"]
}
- 在以下範例中,您可以使用 Terraform 建立具有單一屬性的 IPsec 政策(已廢棄):
resource "ibm_is_ipsec_policy" "is_ipsec_policy" {
name = "my-ipsec-policy"
authentication_algorithm = "sha256"
encryption_algorithm = "aes128"
pfs = "group_14"
}
請勿在單一請求中,將同一演算法類別的單一屬性與基於陣列的屬性混用。
如需更多資訊,請參閱 Terraform 註冊表。
下一步
建立 IPsec 政策後,請視需要完成下列工作:
- 如果您決定使用自訂 IKE 政策而非自動協商 IKE 政策,請 建立 IKE 政策。
- 如果您在建立 VPN 閘道時沒有建立 VPN 連線,您可以在閘道佈建完成後再建立。 如需相關資訊,請參閱 新增連線至 VPN 閘道。
- 若為路由型 VPN,請選取或 建立路由表。 然後,使用 VPN 連線類型建立路由。