쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

인증서 인증을 사용하여 IPsec 구성

포커스 모드
인증서 인증을 사용하여 IPsec 구성 - FSx for ONTAP

다음 항목에서는 ONTAP용 FSx 파일 시스템과 Libreswan IPsec을 실행하는 클라이언트에서 인증서 인증을 사용하여 IPsec 암호화를 구성하는 방법에 대해 설명합니다. 이 솔루션은 AWS Certificate Manager 및 AWS Private Certificate Authority를 사용하여 프라이빗 인증 기관을 생성하고 인증서를 생성합니다.

ONTAP용 FSx 파일 시스템 및 연결된 클라이언트에 대해 인증서 인증을 사용하여 IPsec 암호화를 구성하는 높은 수준의 단계는 다음과 같습니다.

  1. 인증서 발급을 위한 인증 기관 준비

  2. 파일 시스템 및 클라이언트용 CA 인증서 생성 및 내보내기

  3. 클라이언트 인스턴스에 인증서 설치 및 IPsec 구성

  4. 파일 시스템에 인증서 설치 및 IPsec 구성

  5. 보안 정책 데이터베이스(SPD) 정의

  6. 다중 클라이언트 액세스를 위한 IPsec 구성

CA 인증서 생성 및 설치

인증서 인증의 경우 FSx for ONTAP 파일 시스템과, 파일 시스템의 데이터에 액세스할 클라이언트에서 인증 기관의 인증서를 생성하고 설치해야 합니다. 다음 예제에서는 AWS Private Certificate Authority를 사용하여 프라이빗 인증 기관을 설정하고 파일 시스템 및 클라이언트에 설치할 인증서를 생성합니다. AWS Private Certificate Authority를 사용하면 조직 내부에서 사용할 루트 및 하위 CA(인증 기관)의 전체 AWS 호스팅 계층 구조를 생성할 수 있습니다. 이 프로세스에는 다음의 다섯 단계가 있습니다.

  1. AWS Private CA를 사용하여 프라이빗 인증 기관(CA) 생성

  2. 프라이빗 CA에 루트 인증서 발급 및 설치

  3. 파일 시스템 및 클라이언트용 AWS Certificate Manager에서 프라이빗 인증서 요청

  4. 파일 시스템 및 클라이언트용 인증서를 내보냅니다.

자세한 내용은 AWS Private Certificate Authority 사용 설명서의 프라이빗 CA 관리를 참조하세요.

루트 프라이빗 CA 생성
  1. CA를 생성할 때 제공하는 파일에 CA 구성을 지정해야 합니다. 다음 명령은 Nano 텍스트 편집기를 사용하여 다음 정보를 지정하는 ca_config.txt 파일을 생성합니다.

    • 알고리즘의 이름

    • CA가 서명하는 데 사용하는 서명 알고리즘

    • X.500 주체 정보

    $ > nano ca_config.txt

    텍스트 편집기가 표시됩니다.

  2. CA 사양으로 파일을 편집합니다.

    { "KeyAlgorithm":"RSA_2048", "SigningAlgorithm":"SHA256WITHRSA", "Subject":{ "Country":"US", "Organization":"Example Corp", "OrganizationalUnit":"Sales", "State":"WA", "Locality":"Seattle", "CommonName":"*.ec2.internal" } }
  3. 파일을 저장한 후 닫고 텍스트 편집기를 종료합니다. 자세한 내용은 AWS Private Certificate Authority 사용 설명서의 CA 생성 절차를 참조하세요.

  4. create-certificate-authority AWS Private CA CLI 명령을 사용하여 프라이빗 CA를 생성합니다.

    ~/home > aws acm-pca create-certificate-authority \ --certificate-authority-configuration file://ca_config.txt \ --certificate-authority-type "ROOT" \ --idempotency-token 01234567 --region aws-region

    이 명령이 제대로 실행되면 CA의 Amazon 리소스 이름(ARN)을 출력합니다.

    { "CertificateAuthorityArn": "arn:aws:acm-pca:aws-region:111122223333:certificate-authority/12345678-1234-1234-1234-123456789012" }
프라이빗 루트 CA에 대한 인증서 생성 및 설치(AWS CLI)
  1. get-certificate-authority-csr AWS CLI 명령을 사용하여 인증서 서명 요청(CSR)을 생성합니다.

    $ aws acm-pca get-certificate-authority-csr \ --certificate-authority-arn arn:aws:acm-pca:aws-region:111122223333:certificate-authority/12345678-1234-1234-1234-123456789012 \ --output text \ --endpoint https://acm-pca.aws-region.amazonaws.com \ --region eu-west-1 > ca.csr

    base64 형식으로 인코딩된 PEM 파일인 결과 파일 ca.csr은 다음과 같이 표시됩니다.

    -----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE= -----END CERTIFICATE-----

    자세한 내용은 AWS Private Certificate Authority 사용 설명서의 루트 CA 인증서 설치를 참조하세요.

  2. issue-certificate AWS CLI 명령을 사용하여 프라이빗 CA에 루트 인증서를 발급 및 설치합니다.

    $ aws acm-pca issue-certificate \ --certificate-authority-arn arn:aws:acm-pca:aws-region:111122223333:certificate-authority/12345678-1234-1234-1234-123456789012 \ --csr file://ca.csr \ --signing-algorithm SHA256WITHRSA \ --template-arn arn:aws:acm-pca:::template/RootCACertificate/V1 \ --validity Value=3650,Type=DAYS --region aws-region
  3. get-certificate AWS CLI 명령을 사용하여 루트 인증서를 다운로드합니다.

    $ aws acm-pca get-certificate \ --certificate-authority-arn arn:aws:acm-pca:aws-region:111122223333:certificate-authority/12345678-1234-1234-1234-123456789012 \ --certificate-arn arn:aws:acm-pca:aws-region:486768734100:certificate-authority/12345678-1234-1234-1234-123456789012/certificate/abcdef0123456789abcdef0123456789 \ --output text --region aws-region > rootCA.pem
  4. import-certificate-authority-certificate AWS CLI 명령을 사용하여 프라이빗 CA에 루트 인증서를 설치합니다.

    $ aws acm-pca import-certificate-authority-certificate \ --certificate-authority-arn arn:aws:acm-pca:aws-region:111122223333:certificate-authority/12345678-1234-1234-1234-123456789012 \ --certificate file://rootCA.pem --region aws-region
파일 시스템 및 클라이언트 인증서 생성 및 내보내기
  1. request-certificate AWS CLI 명령을 사용하여 파일 시스템 및 클라이언트에서 사용할 AWS Certificate Manager 인증서를 요청합니다.

    $ aws acm request-certificate \ --domain-name *.ec2.internal \ --idempotency-token 12345 \ --region aws-region \ --certificate-authority-arn arn:aws:acm-pca:aws-region:111122223333:certificate-authority/12345678-1234-1234-1234-123456789012

    요청이 성공하면 발급한 인증서의 ARN이 반환됩니다.

  2. 보안을 위해 프라이빗 키를 내보낼 때 프라이빗 키에 암호를 할당해야 합니다. 암호를 생성하여 passphrase.txt라는 이름의 파일에 저장

  3. export-certificate AWS CLI 명령을 사용하여 이전에 발급된 프라이빗 인증서를 내보냅니다. 내보낸 파일에는 인증서, 인증서 체인, 인증서에 내장된 퍼블릭 키와 관련된 암호화된 프라이빗 2048비트 RSA 키가 포함됩니다. 보안을 위해 프라이빗 키를 내보낼 때 프라이빗 키에 암호를 할당해야 합니다. 다음은 Linux EC2 인스턴스의 예제입니다.

    $ aws acm export-certificate \ --certificate-arn arn:aws:acm:aws-region:111122223333:certificate/12345678-1234-1234-1234-123456789012 \ --passphrase $(cat passphrase.txt | base64)) --region aws-region > exported_cert.json
  4. 다음 jq 명령을 사용하여 JSON 응답에서 프라이빗 키와 인증서를 추출합니다.

    $ cat exported_cert.json | jq -r .PrivateKey > prv.key cat exported_cert.json | jq -r .Certificate > cert.pem openssl rsa -in prv.key -passin pass:$passphrase -out decrypted.key
  5. 다음 openssl 명령을 사용하여 JSON 응답에서 프라이빗 키를 복호화합니다. 명령을 입력하고 나면 암호를 입력하라는 메시지가 표시됩니다.

    $ openssl rsa -in prv.key -passin pass:$passphrase -out decrypted.key

Amazon Linux 2 클라이언트에 Libreswan IPsec 설치 및 구성

다음 섹션에서는 Amazon Linux 2를 실행하는 Amazon EC2 인스턴스에서 Libreswan IPsec을 설치하고 구성하기 위한 지침을 제공합니다.

Libreswan 설치 및 구성
  1. SSH를 사용하여 EC2 인스턴스에 연결합니다. 이 작업을 수행하는 방법에 대한 구체적인 지침은 Linux 인스턴스용 Amazon Elastic Compute Cloud 사용 설명서의 SSH 클라이언트를 사용하여 Linux 인스턴스에 연결을 참조하세요.

  2. libreswan을 설치하려면 다음 명령을 실행합니다.

    $ sudo yum install libreswan
  3. (선택 사항) 이후 단계에서 IPsec을 확인할 때 이러한 설정이 없으면 이러한 속성에 플래그가 지정될 수 있습니다. 먼저 이러한 설정을 사용하지 않고 설정을 테스트해 보는 것이 좋습니다. 연결에 문제가 있는 경우 이 단계로 돌아가서 다음과 같이 변경합니다.

    설치가 완료되면 선호하는 텍스트 편집기를 사용하여 /etc/sysctl.conf 파일에 다음 항목을 추가합니다.

    net.ipv4.ip_forward=1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.secure_redirects = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.lo.accept_redirects = 0 net.ipv4.conf.lo.send_redirects = 0 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.eth0.rp_filter = 0

    파일을 저장하고 텍스트 편집기를 종료합니다.

  4. 변경 사항을 적용합니다.

    $ sudo sysctl -p
  5. IPsec 구성을 확인합니다.

    $ sudo ipsec verify

    설치한 Libreswan 버전이 실행 중인지 확인합니다.

  6. IPsec NSS 데이터베이스를 초기화합니다.

    $ sudo ipsec checknss
클라이언트에 인증서 설치
  1. 클라이언트용으로 생성한 인증서를 EC2 인스턴스의 작업 디렉터리에 복사합니다. 사용자

  2. 이전에 생성한 인증서를 libreswan과 호환 가능한 형식으로 내보냅니다.

    $ openssl pkcs12 -export -in cert.pem -inkey decrypted.key \ -certfile rootCA.pem -out certkey.p12 -name fsx
  3. 포맷이 변경된 키를 가져오고, 메시지가 표시되면 암호를 입력합니다.

    $ sudo ipsec import certkey.p12
  4. 선호하는 텍스트 편집기를 사용하여 IPsec 구성 파일을 생성합니다.

    $ sudo cat /etc/ipsec.d/nfs.conf

    다음 항목을 구성 파일에 추가합니다.

    conn fsxn authby=rsasig left=172.31.77.6 right=198.19.254.13 auto=start type=transport ikev2=insist keyexchange=ike ike=aes256-sha2_384;dh20 esp=aes_gcm_c256 leftcert=fsx leftrsasigkey=%cert leftid=%fromcert rightid=%fromcert rightrsasigkey=%cert

파일 시스템에서 IPsec을 구성한 후 클라이언트에서 IPsec을 시작합니다.

파일 시스템에서 IPsec 구성

이 섹션에서는 FSx for ONTAP 파일 시스템에 인증서를 설치하고 IPsec을 구성하는 방법에 대한 지침을 제공합니다.

파일 시스템에 인증서 설치
  1. 루트 인증서(rootCA.pem)), 클라이언트 인증서(cert.pem) 및 복호화된 키(decrypted.key) 파일을 파일 시스템에 복사합니다. 인증서의 암호를 알아야 합니다.

  2. NetApp ONTAP CLI에 액세스하려면 다음 명령을 실행하여 Amazon FSx for NetApp ONTAP 파일 시스템의 관리 포트에 SSH 세션을 설정합니다. management_endpoint_ip를 파일 시스템의 관리 포트의 IP 주소로 바꿉니다.

    [~]$ ssh fsxadmin@management_endpoint_ip

    자세한 내용은 ONTAP CLI를 사용한 파일 시스템 관리 단원을 참조하십시오.

  3. (파일 시스템이 아니라) 클라이언트에서 cat를 사용하여 rootCA.pem, cert.pem, decrypted.key 파일의 내용을 나열하여 다음 단계에서 메시지가 표시되면 각 파일의 출력을 복사하여 붙여넣을 수 있습니다.

    $ > cat cert.pem

    인증서 내용을 복사합니다.

  4. (ONTAP 자체 서명 루트 CA의 경우처럼) ONTAP 측 CA 및 클라이언트 측 CA를 포함하여 상호 인증 중에 사용되는 모든 CA 인증서를 ONTAP 인증서 관리에 설치해야 합니다.

    security certificate install NetApp CLI 명령을 사용하여 다음과 같이 클라이언트 인증서를 설치합니다.

    FSxID123:: > security certificate install -vserver dr -type client -cert-name ipsec-client-cert
    Please enter Certificate: Press <Enter> when done

    이전에 복사한 cert.pem 파일의 내용을 붙여넣고 Enter 키를 누릅니다.

    Please enter Private Key: Press <Enter> when done

    decrypted.key 파일의 내용을 붙여넣고 Enter 키를 누릅니다.

    Do you want to continue entering root and/or intermediate certificates {y|n}:

    n을 입력하여 클라이언트 인증서 입력을 완료합니다.

  5. SVM에서 사용할 인증서를 생성하고 설치합니다. 이 인증서의 발급자 CA가 이미 ONTAP에 설치되어 있고 IPsec에 추가되어 있어야 합니다.

    다음 명령을 사용하여 루트 인증서를 설치합니다.

    FSxID123:: > security certificate install -vserver dr -type server-ca -cert-name ipsec-ca-cert
    Please enter Certificate: Press <Enter> when done

    rootCA.pem 파일의 내용을 붙여넣고 Enter 키를 누릅니다.

  6. 인증 중에 설치된 CA가 IPsec CA 검색 경로 내에 있는지 확인하려면 “security ipsec ca-certificate add” 명령을 사용하여 ONTAP 인증서 관리 CA를 IPsec 모듈에 추가합니다.

    다음 명령을 입력하여 루트 인증서를 추가합니다.

    FSxID123:: > security ipsec ca-certificate add -vserver dr -ca-certs ipsec-ca-cert
  7. 다음 명령을 입력하여 보안 정책 데이터베이스(SPD)에 필요한 IPsec 정책을 생성합니다.

    security ipsec policy create -vserver dr -name policy-name -local-ip-subnets 198.19.254.13/32 -remote-ip-subnets 172.31.0.0/16 -auth-method PKI -action ESP_TRA -cipher-suite SUITEB_GCM256 -cert-name ipsec-client-cert -local-identity "CN=*.ec2.internal" -remote-identity "CN=*.ec2.internal"
  8. 다음 명령을 사용하여 확인할 파일 시스템에 대한 IPsec 정책을 표시합니다.

    FSxID123:: > security ipsec policy show -vserver dr -instance Vserver: dr Policy Name: promise Local IP Subnets: 198.19.254.13/32 Remote IP Subnets: 172.31.0.0/16 Local Ports: 0-0 Remote Ports: 0-0 Protocols: any Action: ESP_TRA Cipher Suite: SUITEB_GCM256 IKE Security Association Lifetime: 86400 IPsec Security Association Lifetime: 28800 IPsec Security Association Lifetime (bytes): 0 Is Policy Enabled: true Local Identity: CN=*.ec2.internal Remote Identity: CN=*.ec2.internal Authentication Method: PKI Certificate for Local Identity: ipsec-client-cert

클라이언트에서 IPsec 시작

이제 FSx for ONTAP 파일 시스템 및 클라이언트 모두에 IPsec이 구성되었으므로 클라이언트에서 IPsec을 시작할 수 있습니다.

  1. SSH를 사용하여 클라이언트 시스템에 연결합니다.

  2. IPsec을 시작합니다.

    $ sudo ipsec start
  3. IPsec의 상태를 확인합니다.

    $ sudo ipsec status
  4. 파일 시스템에 볼륨을 마운트합니다.

    $ sudo mount -t nfs 198.19.254.13:/benchmark /home/ec2-user/acm/dr
  5. FSx for ONTAP 파일 시스템에 암호화된 연결을 표시하여 IPsec 설정을 확인합니다.

    FSxID123:: > security ipsec show-ikesa -node FsxId123 FsxId08ac16c7ec2781a58::> security ipsec show-ikesa -node FsxId08ac16c7ec2781a58-01 Policy Local Remote Vserver Name Address Address Initator-SPI State ----------- ------ --------------- --------------- ---------------- ----------- dr policy-name 198.19.254.13 172.31.77.6 551c55de57fe8976 ESTABLISHED fsx policy-name 198.19.254.38 172.31.65.193 4fd3f22c993e60c5 ESTABLISHED 2 entries were displayed.

다중 클라이언트에 대한 IPsec 설정

소수의 클라이언트가 IPsec을 활용해야 하는 경우 각 클라이언트에 대해 단일 SPD 항목을 사용하는 것으로 충분합니다. 그러나 수백 또는 수천 개의 클라이언트가 IPsec을 활용해야 하는 경우에는 IPsec 다중 클라이언트 구성을 사용하는 것이 좋습니다.

FSx for ONTAP은 IPsec이 활성화된 상태에서 여러 네트워크의 여러 클라이언트를 단일 SVM IP 주소에 연결할 수 있도록 지원합니다. 다음 절차에 설명된 subnet 구성 또는 Allow all clients 구성을 사용하여 이 작업을 수행할 수 있습니다.

서브넷 구성을 사용하여 여러 클라이언트에 IPsec 구성

특정 서브넷(예: 192.168.134.0/24)의 모든 클라이언트가 단일 SPD 정책 항목을 사용하여 단일 SVM IP 주소에 연결할 수 있도록 하려면 remote-ip-subnets를 서브넷 형식으로 지정해야 합니다. 또한 올바른 클라이언트측 자격 증명으로 remote-identity 필드를 지정해야 합니다.

중요

인증서 인증을 사용하는 경우 각 클라이언트는 고유한 인증서 또는 공유 인증서를 사용하여 인증할 수 있습니다. FSx for ONTAP IPsec은 로컬 신뢰 저장소에 설치된 CA를 기반으로 인증서의 유효성을 확인합니다. FSx for ONTAP에서는 인증서 취소 목록(CRL) 검사도 지원합니다.

  1. NetApp ONTAP CLI에 액세스하려면 다음 명령을 실행하여 Amazon FSx for NetApp ONTAP 파일 시스템의 관리 포트에 SSH 세션을 설정합니다. management_endpoint_ip를 파일 시스템의 관리 포트의 IP 주소로 바꿉니다.

    [~]$ ssh fsxadmin@management_endpoint_ip

    자세한 내용은 ONTAP CLI를 사용한 파일 시스템 관리 단원을 참조하십시오.

  2. 다음과 같이 security ipsec policy create NetApp ONTAP CLI 명령을 사용하여 샘플 값을 특정 값으로 바꿉니다.

    FsxId123456::> security ipsec policy create -vserver svm_name -name policy_name \ -local-ip-subnets 192.168.134.34/32 -remote-ip-subnets 192.168.134.0/24 \ -local-ports 2049 -protocols tcp -auth-method PSK \ -cert-name my_nfs_server_cert -local-identity ontap_side_identity \ -remote-identity client_side_identity
모든 클라이언트 구성 허용을 사용하여 여러 클라이언트에 IPsec 구성

소스 IP 주소와 관계없이 모든 클라이언트가 SVM IPsec 지원 IP 주소에 연결할 수 있도록 하려면 remote-ip-subnets 필드를 지정할 때 0.0.0.0/0 와일드카드를 사용합니다.

또한 올바른 클라이언트측 자격 증명으로 remote-identity 필드를 지정해야 합니다. 인증서 인증의 경우 ANYTHING을 입력할 수 있습니다.

또한 0.0.0.0/0 와일드카드를 사용하는 경우 사용할 특정 로컬 또는 원격 포트 번호를 구성해야 합니다. NFS 포트 2049를 예로 들 수 있습니다.

  1. NetApp ONTAP CLI에 액세스하려면 다음 명령을 실행하여 Amazon FSx for NetApp ONTAP 파일 시스템의 관리 포트에 SSH 세션을 설정합니다. management_endpoint_ip를 파일 시스템의 관리 포트의 IP 주소로 바꿉니다.

    [~]$ ssh fsxadmin@management_endpoint_ip

    자세한 내용은 ONTAP CLI를 사용한 파일 시스템 관리 단원을 참조하십시오.

  2. 다음과 같이 security ipsec policy create NetApp ONTAP CLI 명령을 사용하여 샘플 값을 특정 값으로 바꿉니다.

    FsxId123456::> security ipsec policy create -vserver svm_name -name policy_name \ -local-ip-subnets 192.168.134.34/32 -remote-ip-subnets 0.0.0.0/0 \ -local-ports 2049 -protocols tcp -auth-method PSK \ -cert-name my_nfs_server_cert -local-identity ontap_side_identity \ -local-ports 2049 -remote-identity client_side_identity
프라이버시사이트 이용 약관쿠키 기본 설정
© 2024, Amazon Web Services, Inc. 또는 계열사. All rights reserved.