Oracle® Solaris 11.2의 네트워크 보안

인쇄 보기 종료

업데이트 날짜: 2014년 8월
 
 

자체 서명된 공개 키 인증서로 IKEv2를 구성하는 방법

이 절차에서는 공개 키 인증서를 만들고 이 인증서에 서명합니다. 개인 키와 인증서는 IKEv2의 PKCS #11 softtoken 키 저장소에 저장됩니다. 공개 키 인증서를 IKE 피어로 보내면 IKE 피어에서 자체의 공개 인증서를 보내옵니다.

자체 서명된 인증서를 사용하는 IKE 시스템 모두에서 이 절차를 수행합니다.

시작하기 전에

인증서를 사용하려면 IKEv2 공개 키 인증서에 대한 키 저장소를 만들고 사용하는 방법을 완료해야 합니다.

Network IPsec Management 권한 프로파일에 지정된 관리자여야 합니다. 프로파일 셸을 사용하는 중이어야 합니다. 자세한 내용은 Oracle Solaris 11.2의 사용자 및 프로세스 보안 의 지정된 관리 권한 사용을 참조하십시오.

원격으로 관리하는 경우 Example 7–1Oracle Solaris 11.2의 보안 셸 액세스 관리 의 보안 셸을 사용하여 ZFS를 원격으로 관리하는 방법에서 보안 원격 로그인 지침을 참조하십시오.

  1. 키 저장소에서 자체 서명된 인증서를 만듭니다.

    ikev2cert gencert 명령의 인수에 대한 설명은 pktool(1) 매뉴얼 페이지에서 pktool gencert keystore=pkcs11 하위 명령을 검토하십시오.

    subject 인수의 형식은 IKE에서 공개 키 인증서 사용을 참조하십시오.


    주 -  인증서에 레이블을 지정합니다. 레이블은 로컬 키 저장소에서 인증서와 해당 키를 식별합니다.
    1. 예를 들어, partym 시스템의 명령은 다음과 유사하게 표시됩니다.
      # pfbash
      	# ikev2cert gencert \
      	label="ITpartym" \
      	subject="O=exampleco, OU=IT, C=US, CN=partym" \
      	serial=0x87654321
          keytype=rsa
          keylen=2048
      	Enter PIN for Sun Software PKCS#11 softtoken: xxxxxxxx

      다음 오류 메시지는 PIN을 잘못 입력하거나 키 저장소가 초기화되지 않았음을 나타냅니다.

      Error creating certificate and keypair:
      	keystore error: CKR_PIN_INCORRECT
      	libkmf error: KMF_ERR_AUTH_FAILED
      
      	Error creating certificate and keypair:
      	keystore error: CKR_PIN_EXPIRED: PIN expired and must be changed
      	libkmf error: KMF_ERR_BAD_PARAMETER: invalid parameter

      팁  -  pktool 명령 구문이 표시되면 인증서 항목 일부를 잘못 입력했음을 나타냅니다. 명령을 검토하여 허용되지 않는 알고리즘을 사용하거나, 큰따옴표와 등호가 누락되거나, 기타 오타가 있는지 확인하십시오. 잘못된 인수를 찾는 전략 중 하나로 명령을 검색한 다음 인수를 한 번에 하나씩 제거해 보십시오.
    2. enigma 시스템의 명령은 다음과 유사하게 표시됩니다.
      # ikev2cert gencert \
      	label=ITenigma \
      	subject="O=exampleco, OU=IT, C=US, CN=enigma" \
      	serial=0x86428642
          keytype=rsa
          keylen=2048
      	Enter PIN for Sun Software PKCS#11 softtoken: xxxxxxxx
  2. (옵션) 키 및 인증서를 나열합니다.
    enigma # /usr/sbin/ikev2cert list objtype=both
    	Enter PIN for Sun Software PKCS#11 softtoken: xxxxxxxx
    	No.     Key Type        Key Len.        Key Label
    	----------------------------------------------------
    	Asymmetric private keys:
    	1)      RSA                             ITenigma
    	Asymmetric public keys:
    	1)      RSA                             ITenigma
    	Certificates:
    	1) X.509 certificate
    		Label: ITenigma
    		Subject: C=US, O=exampleco, OU=IT, CN=enigma
    		Issuer: C=US, O=exampleco, OU=IT, CN=enigma
    		Not Before: April 10 21:49:00 2014 GMT
    		Not After: April 10 21:49:00 2015 GMT
    		Serial: 0x86426420
    		Signature Algorithm: sha1WithRSAEncryption
    		X509v3 Subject Key Identifier:
    			34:7a:3b:36:c7:7d:4f:60:ed:ec:4a:96:33:67:f2:ac:87:ce:35:cc
    		SHA1 Certificate Fingerprint:
    			68:07:48:65:a2:4a:bf:18:f5:5b:95:a5:01:42:c0:26:e3:3b:a5:30

    팁  -  기본 해싱 알고리즘은 SHA1입니다. 강력한 서명 알고리즘으로 인증서를 만들려면 keytype 옵션과 다른 해시 알고리즘(예: keytype=rsa hash=sha384)을 사용하십시오. 옵션은 pktool(1) 매뉴얼 페이지를 참조하십시오.
  3. 인증서를 다른 시스템으로 배달합니다.
    1. 각 시스템에서 인증서만 파일로 내보냅니다.

      outformat=pem 옵션을 지정하면 공개 인증서가 직접 가져오기 적합한 형식의 파일에 저장됩니다. 레이블은 키 저장소에서 인증서를 식별합니다.

      # cd /tmp
      	# ikev2cert export objtype=cert outformat=pem outfile=filename label=label
      	Enter PIN for Sun Software PKCS#11 softtoken:xxxxxxxx
    2. 인증서를 전자 메일, sftp 또는 ssh로 다른 시스템에 보냅니다.

      예를 들어, 두 시스템을 모두 관리하는 경우 sftp 명령을 사용하여 다른 시스템에서 인증서를 가져옵니다.

      enigma # sftp jdoe@partym:/tmp/ITpartym.pem /tmp/ITpartym.pem.cert
      	partym # sftp jdoe@enigma:/tmp/ITenigma.pem /tmp/ITenigma.pem.cert

      암호를 입력하라는 메시지가 표시됩니다. 이 예에서 jdoe가 암호를 제공해야 합니다.

  4. 인증서가 동일한지 확인합니다.

    인증서를 키 저장소로 로드하기 에 적절한 인증서를 받았는지 확인하려고 합니다.

    1. 각 시스템에서 내보낸 파일의 다이제스트를 만듭니다.

      예를 들어, partym 관리자는 partym의 인증서가 포함된 파일의 다이제스트를 다른 관리자에게 전자 메일로 보냅니다. enigma 관리자는 enigma 인증서 파일의 다이제스트를 전자 메일로 보냅니다.

      partym # digest -a sha1 /tmp/ITpartym.pem
      	c6dbef4136c0141ae62110246f288e5546a59d86
      
      	enigma # digest -a sha1 ITenigma.pem
      	6b288a6a6129d53a45057065bd02b35d7d299b3a
      	
    2. 다른 시스템에서 첫번째 시스템의 인증서가 포함된 파일에 대해 digest 명령을 실행합니다.
      enigma # digest -a sha1 /tmp/ITpartym.pem.cert
      	c6dbef4136c0141ae62110246f288e5546a59d86
      
      	partym # digest -a sha1 /tmp/ITenigma.pem.cert
      	6b288a6a6129d53a45057065bd02b35d7d299b3a

      다이제스트가 일치해야 합니다. 일치하지 않는 경우 파일을 키 저장소로 가져오지 마십시오. 인증서 유효성을 확인하는 다른 방법은 Example 9–3을 참조하십시오.

  5. 확인 후 다른 시스템의 인증서를 키 저장소로 가져옵니다.

    인증서를 키 저장소로 가져올 때 시스템에서 인증서를 고유하게 식별하는 레이블을 지정해야 합니다. 레이블은 공개 키를 공개 키 인증서와 연결합니다.

    enigma# ikev2cert import label=ITpartym1 infile=/tmp/ITpartym.pem.cert
    partym# ikev2cert import label=ITenigma1 infile=/tmp/ITenigma.pem.cert
  6. (옵션) 키 저장소의 객체를 나열합니다.

    목록을 Step 2의 목록과 비교합니다. 예를 들어, enigma 키 저장소에서는 partym 인증서가 추가되었습니다.

    enigma # /usr/sbin/ikev2cert list objtype=both
    	Enter PIN for Sun Software PKCS#11 softtoken: xxxxxxxx
    	No.     Key Type        Key Len.        Key Label
    	----------------------------------------------------
    	Asymmetric private keys:
    	1)      RSA                             ITenigma
    	Asymmetric public keys:
    	1)      RSA                             ITenigma
    	Certificates:
    	1) X.509 certificate
    		Label: ITenigma
    		Subject: C=US, O=exampleco, OU=IT, CN=enigma
    		Issuer: C=US, O=exampleco, OU=IT, CN=enigma
    		Not Before: April 10 21:49:00 2014 GMT
    		Not After: April 10 21:49:00 2015 GMT
    		Serial: 0x86426420
    		Signature Algorithm: sha1WithRSAEncryption
    		X509v3 Subject Key Identifier:
    			34:7a:3b:36:c7:7d:4f:60:ed:ec:4a:96:33:67:f2:ac:87:ce:35:cc
    		SHA1 Certificate Fingerprint:
    			68:07:48:65:a2:4a:bf:18:f5:5b:95:a5:01:42:c0:26:e3:3b:a5:30
    
    	2) X.509 certificate
    		Label: ITpartym1
    		Subject: C=US, O=exampleco, OU=IT, CN=partym
    		Issuer: C=US, O=exampleco, OU=IT, CN=partym
    		Not Before: April 10 21:40:00 2014 GMT
    		Not After: April 10 21:40:00 2015 GMT
    		Serial: 0x87654321
    		Signature Algorithm: sha1WithRSAEncryption
    		X509v3 Subject Key Identifier:
    			ae:d9:c8:a4:19:68:fe:2d:6c:c2:9a:b6:06:55:b5:b5:d9:d9:45:c6
    		SHA1 Certificate Fingerprint:
    			83:26:44:29:b4:1f:af:4a:69:0d:87:c2:dc:f4:a5:1b:4f:0d:36:3b
  7. 각 시스템에서 인증서를 IKEv2 규칙에 사용합니다.

    pfedit 명령을 사용하여 /etc/inet/ike/ikev2.config 파일을 편집합니다.

    1. 예를 들어, partym 시스템에서 ikev2.config 파일의 규칙은 다음과 비슷하게 표시됩니다.
      ##  ... Global transform that applies to any rule without a declared transform
      	ikesa_xform { dh_group 21 auth_alg sha512 encr_alg aes }
      	##  ... Any self-signed
      	## end-entity certificates must be present in the keystore or
      	## they will not be trusted.
      	{
      	 label "partym-enigma"
      	 auth_method cert
      	 local_id DN = "O=exampleco, OU=IT, C=US, CN=partym"
      	 remote_id DN = "O=exampleco, OU=IT, C=US, CN=enigma"
      	}
      	...
    2. enigma 시스템에서 ikev2.config 파일에서 local_id 값에 enigma 인증서의 DN을 사용합니다.

      원격 매개변수에는 partym 인증서의 DN을 값으로 사용합니다. label 키워드가 로컬 시스템에서 고유한지 확인합니다.

      …
      	ikesa_xform { dh_group 21 auth_alg sha512 encr_alg aes }
      	…
      	{
      	 label "enigma-partym"
      	 auth_method cert
      	 local_id DN = "O=exampleco, OU=IT, C=US, CN=enigma"
      	 remote_id DN = "O=exampleco, OU=IT, C=US, CN=partym"
      	}
      	...
  8. (옵션) 각 시스템에서 ikev2.config 파일의 유효성을 확인합니다.
    # /usr/lib/inet/inikev2.d -c

    계속하기 전에 오타나 오류를 수정합니다.

  9. 각 시스템에서 IKEv2 서비스 인스턴스의 상태를 확인합니다.
    # svcs ikev2
    	STATE          STIME    FMRI
    	disabled       Sep_07   svc:/network/ipsec/ike:ikev2
  10. 각 시스템에서 IKEv2 서비스 인스턴스를 사용으로 설정합니다.
    partym # svcadm enable ipsec/ike:ikev2
    
    	enigma # svcadm enable ipsec/ike:ikev2
예 9-2  수명이 제한된 자체 서명된 인증서 만들기

이 예에서 관리자는 인증서가 2년간 유효하도록 지정합니다.

# ikev2cert gencert \
	 > label=DBAuditV \
	 > serial=0x12893467235412 \
	 > subject="O=exampleco, OU=DB, C=US, CN=AuditVault" \
	 > altname=EMAIL=auditV@example.com \ 
	 > keytype=ec curve=secp521r1 hash=sha512 \
     > lifetime=2-year
예 9-3  지문으로 공개 키 인증서 확인

이 예에서 관리자는 인증서 지문을 사용하여 인증서를 확인합니다. 이 방법의 단점은 관리자가 피어의 인증서를 키 저장소로 가져와야만 지문을 볼 수 있다는 점입니다.

관리자는 인증서를 가져오고, ikev2cert list objtype=cert 명령으로 인증서를 나열한 다음 인증서 지문을 출력에서 복사하여 다른 시스템 관리자에게 보냅니다.

SHA1 Certificate Fingerprint:
             83:26:44:29:b4:1f:af:4a:69:0d:87:c2:dc:f4:a5:1b:4f:0d:36:3b

확인에 실패하는 경우 인증서를 가져온 관리자가 인증서와 인증서의 공개 키를 키 저장소에서 제거해야 합니다.

# ikev2cert delete label=label-name
       Enter PIN for Sun Software PKCS#11 softtoken: xxxxxxxx
       1 public key(s) found, do you want to delete them (y/N) ? y
       1 certificate(s) found, do you want to delete them (y/N) ? y

다음 단계

IPsec 정책 설정을 완료하지 않았으면 IPsec 정책을 사용으로 설정하거나 새로 고치는 IPsec 절차로 돌아가십시오. VPN을 보호하는 IPsec 정책의 예는 IPsec를 사용하여 VPN 보호를 참조하십시오. 다른 IPsec 정책 예는 IPsec을 사용하여 두 서버 간의 네트워크 트래픽을 보호하는 방법을 참조하십시오.