IPsec 정책 작성

사용자 지정 IPsec 정책을 사용하여 협상 2단계에서 사용되는 보안 매개변수를 정의할 수 있습니다. 이 단계에서 VPN 및 피어 디바이스는 1단계 동안 설정된 보안 연관을 사용하여 전송할 트래픽과 해당 트래픽을 인증하고 암호화하는 방법을 협상합니다.

일관된 알고리즘 선택을 보장하려면 IBM Cloud VPN 게이트웨이와 피어 게이트웨이 모두에서 정확한 IKE 및 IPsec 알고리즘과 그 우선 순위를 일치시키세요. 알고리즘 선택에 영향을 미치는 요소에 대한 자세한 내용은 사이트 간 VPN 연결에서 IKE 및 IPsec에 대한 암호화 알고리즘은 어떻게 선택되나요?

콘솔에서 IPsec 정책 만들기

콘솔에서 IPsec 정책을 생성하려면 다음 단계를 따르십시오

  1. ‘VPC용 VPN’ 목록 페이지에서 ‘사이트 간 게이트웨이’ > ‘IPsec 정책’을 선택합니다.

  2. ‘생성’을 클릭하고 다음 정보를 입력하십시오:

    • 위치- 이 IPsec 정책에 적용할 지역을 선택하십시오.
    • 이름 - IPsec 정책의 이름을 입력하십시오.
    • 리소스 그룹 - 이 IPsec 정책에 맞는 리소스 그룹을 선택합니다.
    • 암호화- 2단계에 사용할 암호화 알고리즘을 선택합니다. 기본적으로 가장 낮은 강도의 알고리즘이 선택됩니다. 각 필드에 대해 여러 값을 선택하고 우선순위에 따라 순서를 변경할 수 있습니다. VPN 게이트웨이는 피어 게이트웨이와 협상하여 상호 지원되는 최상의 알고리즘을 선택합니다.
    • 인증- 2단계에 사용할 인증 알고리즘을 선택합니다. 기본적으로 가장 낮은 강도의 알고리즘이 선택됩니다. 여러 인증 알고리즘을 선택하고 우선순위에 따라 순서를 변경할 수 있습니다.
    • 완벽한 순방향 비밀- 이 옵션을 활성화하면 각 2단계 키 재키 중에 새로운 Diffie-Hellman 교환을 수행하여 키가 손상되더라도 이전에 암호화된 트래픽이 안전하게 유지됩니다.
    • 디피-헬만 그룹 (PFS가 활성화된 경우)- 2단계 키 교환에 사용할 DH 그룹을 선택합니다. 기본적으로 가장 낮은 DH 그룹이 선택됩니다. 여러 DH 그룹을 선택하고 우선순위에 따라 그룹을 재정렬할 수 있습니다.
    • 키 수명- 2단계 터널의 수명(초)을 선택합니다.
  3. 작성을 클릭하십시오.

  4. 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 - 상세 출력을 억제합니다.

md5sha1 인증 알고리즘, group_2group_5 DH 그룹, triple_des 암호화 알고리즘은 2022년 9월 20일에 사용 중단되었으며 콘솔에서 더 이상 지원되지 않습니다.

AUTHENTICATION_ALGORITHMSENCRYPTION_ALGORITHMSaes128gcm16, 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,aes256gcm16
    

    encryption_algorithms 목록에 GCM 기반 알고리즘(aes128gcm16, aes192gcm16, 또는 aes256gcm16)이 포함된 경우에만 authentication_algorithmsdisabled 으로 설정해야 합니다. GCM 알고리즘은 암호화와 내장된 데이터 무결성(인증)을 단일 작업의 일부로 제공하므로 별도의 인증 알고리즘(예: sha256 또는 sha512)을 지정하지 않아야 합니다.

API를 사용하여 IPsec 정책 생성하기

IPsec 협상을 위한 단일 속성 authentication_algorithm, dh_group, encryption_algorithm, pfs 은 더 이상 사용되지 않습니다. 배열 기반 속성을 사용하여 IPsec 정책을 생성합니다. API를 사용할 때 IPsec 정책의 단일 및 배열 기반 알고리즘 속성에 대해 자세히 알아보려면 여러 IKE 및 IPsec 알고리즘으로 업데이트하기를 참조하세요.

배열 기반 속성(권장)을 사용하여 여러 알고리즘이 포함된 IPsec 정책을 만들려면 다음 단계를 따르세요:

  1. 올바른 변수를 사용하여 API 환경을 설정하십시오.

  2. 다음과 같이 API 명령에 사용할 추가 변수를 저장하십시오.

ResourceGroupId - get resource groups 명령을 사용하여 리소스 그룹 ID를 찾은 후 변수를 채우십시오.

 export ResourceGroupId=<your_resourcegroup_id>
  1. 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_algorithmsdisabled 으로 설정하여 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 정책을 만들려면 다음 단계를 따르세요:

  1. 올바른 변수를 사용하여 API 환경을 설정하십시오.

  2. 다음과 같이 API 명령에 사용할 추가 변수를 저장하십시오.

ResourceGroupId - get resource groups 명령을 사용하여 리소스 그룹 ID를 찾은 후 변수를 채우십시오.

 export ResourceGroupId=<your_resourcegroup_id>
  1. 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 정책을 업데이트하려면 다음 단계를 따르세요:

  1. 올바른 변수를 사용하여 API 환경을 설정하십시오.

  2. 다음과 같이 API 명령에 사용할 추가 변수를 저장하십시오.

ResourceGroupId - get resource groups 명령을 사용하여 리소스 그룹 ID를 찾은 후 변수를 채우십시오.

export ResourceGroupId=<your_resourcegroup_id>
  1. 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 정책을 업데이트할 수 있습니다. 두 가지 형식 모두 허용되지만 단일 요청에서 동일한 알고리즘 카테고리에 대해 단수 및 배열 기반 속성을 혼합해서는 안 됩니다.

  1. 올바른 변수를 사용하여 API 환경을 설정하십시오.

  2. 다음과 같이 API 명령에 사용할 추가 변수를 저장하십시오.

ResourceGroupId - get resource groups 명령을 사용하여 리소스 그룹 ID를 찾은 후 변수를 채우십시오.

export ResourceGroupId=<your_resourcegroup_id>
  1. 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"
   }
  1. 다음 예제에서는 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"]
   }
  1. 다음 예제에서는 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 정책을 만든 후 필요에 따라 다음 작업을 완료합니다:

관련 링크