IPsec 정책 작성
사용자 지정 IPsec 정책을 사용하여 협상 2단계에서 사용되는 보안 매개변수를 정의할 수 있습니다. 이 단계에서 VPN 및 피어 디바이스는 1단계 동안 설정된 보안 연관을 사용하여 전송할 트래픽과 해당 트래픽을 인증하고 암호화하는 방법을 협상합니다.
일관된 알고리즘 선택을 보장하려면 IBM Cloud VPN 게이트웨이와 피어 게이트웨이 모두에서 정확한 IKE 및 IPsec 알고리즘과 그 우선 순위를 일치시키세요. 알고리즘 선택에 영향을 미치는 요소에 대한 자세한 내용은 사이트 간 VPN 연결에서 IKE 및 IPsec에 대한 암호화 알고리즘은 어떻게 선택되나요?
콘솔에서 IPsec 정책 만들기
콘솔에서 IPsec 정책을 생성하려면 다음 단계를 따르십시오
-
‘VPC용 VPN’ 목록 페이지에서 ‘사이트 간 게이트웨이’ > ‘IPsec 정책’을 선택합니다.
-
‘생성’을 클릭하고 다음 정보를 입력하십시오:
- 위치- 이 IPsec 정책에 적용할 지역을 선택하십시오.
- 이름 - IPsec 정책의 이름을 입력하십시오.
- 리소스 그룹 - 이 IPsec 정책에 맞는 리소스 그룹을 선택합니다.
- 암호화- 2단계에 사용할 암호화 알고리즘을 선택합니다. 기본적으로 가장 낮은 강도의 알고리즘이 선택됩니다. 각 필드에 대해 여러 값을 선택하고 우선순위에 따라 순서를 변경할 수 있습니다. VPN 게이트웨이는 피어 게이트웨이와 협상하여 상호 지원되는 최상의 알고리즘을 선택합니다.
- 인증- 2단계에 사용할 인증 알고리즘을 선택합니다. 기본적으로 가장 낮은 강도의 알고리즘이 선택됩니다. 여러 인증 알고리즘을 선택하고 우선순위에 따라 순서를 변경할 수 있습니다.
- 완벽한 순방향 비밀- 이 옵션을 활성화하면 각 2단계 키 재키 중에 새로운 Diffie-Hellman 교환을 수행하여 키가 손상되더라도 이전에 암호화된 트래픽이 안전하게 유지됩니다.
- 디피-헬만 그룹 (PFS가 활성화된 경우)- 2단계 키 교환에 사용할 DH 그룹을 선택합니다. 기본적으로 가장 낮은 DH 그룹이 선택됩니다. 여러 DH 그룹을 선택하고 우선순위에 따라 그룹을 재정렬할 수 있습니다.
- 키 수명- 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 value - 키 수명 시간(초)입니다. 최대값:
86400, 최소값:1800. 기본값은3600입니다. - --resource-group-id 값- 리소스 그룹의 ID입니다. 이 옵션은 --resource-group-name과 상호 배타적입니다.
- --resource-group-name 값- 리소스 그룹의 이름. 이 옵션은 --resource-group-id와 상호 배타적입니다.
- --output value - JSON 형식으로 출력을 지정합니다.
- -q, --quiet - 상세 출력을 억제합니다.
md5 및 sha1 인증 알고리즘, group_2 및 group_5 DH 그룹, triple_des 암호화 알고리즘은 2022년 9월 20일에 사용 중단되었으며 콘솔에서 더 이상 지원되지 않습니다.
AUTHENTICATION_ALGORITHMS 는 ENCRYPTION_ALGORITHMS 가 aes128gcm16, aes192gcm16 또는 aes256gcm16 일 때만 disabled 이어야 한다.
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-algorithm- 인증 알고리즘 (사용 중단됨). --encryption_algorithm이
aes128gcm16,aes192gcm16또는aes256gcm16인 경우에만 비활성화해야 합니다. 중 하나입니다:disabled,sha256,sha384,sha512 -
-- 암호화 알고리즘- 쉼표로 구분된 암호화 알고리즘 목록(권장). 알고리즘의 순서는 협상 과정에서 해당 알고리즘의 우선순위를 결정합니다.
-
--encryption-algorithm- 암호화 알고리즘 (사용 중단됨).
aes128,aes128gcm16,aes192,aes192gcm16,aes256,aes256gcm16중 하나입니다. -
--pfsgs- 쉼표로 구분된 완전 순방향 비밀 그룹 목록입니다. 그룹의 순서에 따라 협상 중 우선순위가 결정됩니다.
-
--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 그룹 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,aes256gcm16encryption_algorithms목록에 GCM 기반 알고리즘(aes128gcm16,aes192gcm16, 또는aes256gcm16)이 포함된 경우에만authentication_algorithms을disabled으로 설정해야 합니다. 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'" } }'
encryption_algorithms 을 GCM-기반 알고리즘으로 설정하고 authentication_algorithms 을 disabled 으로 설정하여 IPsec 정책을 만듭니다:
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 속성은 encryption_algorithms 목록에 GCM 기반 알고리즘(aes128gcm16, aes192gcm16, 또는 aes256gcm16)이 포함된 경우에만 disabled 으로 설정해야 합니다. 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 연결 유형을 사용하여 라우트를 작성하십시오.