Protección de la red en Oracle® Solaris 11.2

Salir de la Vista de impresión

Actualización: Septiembre de 2014
 
 

Cómo configurar IKEv2 con certificados de claves públicas autofirmados

En este procedimiento, puede crear y firmar un certificado de clave pública. La clave privada y el certificado se almacenan en el almacén de claves softtoken PKCS #11 para IKEv2. Envía el certificado de clave pública a los pares de IKE, quienes a su vez le envían su certificado público.

Realiza este procedimiento en todos los sistemas IKE que usan certificados autofirmados.

Antes de empezar

Para utilizar los certificados, debe haber completado Cómo crear y utilizar un almacén de claves para certificados de clave pública IKEv2.

Debe convertirse en un administrador que tiene asignado el perfil de derechos de gestión de IPsec de red. Debe utilizar un shell de perfil. Para obtener más información, consulte Uso de sus derechos administrativos asignados de Protección de los usuarios y los procesos en Oracle Solaris 11.2 .

Si realiza administraciones remotas, consulte el Example 7–1 y Cómo administrar ZFS con shell seguro de forma remota de Gestión de acceso mediante shell seguro en Oracle Solaris 11.2 para obtener instrucciones para un inicio de sesión remoto seguro.

  1. Cree un certificado autofirmado en el almacén de claves.

    Para obtener una descripción de los argumentos del comando ikev2cert gencert, revise el subcomando pktool gencert keystore=pkcs11 en la página del comando man pktool(1).

    Para obtener el formato del argumento subject, consulte Uso de certificados de claves públicas en IKE.


    Notas -  Proporcione una etiqueta para el certificado. La etiqueta identifica el certificado y sus claves correspondientes en el almacén de claves local.
    1. Por ejemplo, el comando del sistema partym sería como el siguiente:
      # 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

      Los mensajes de error siguientes indican un PIN escrito incorrectamente o un almacén de claves no inicializado:

      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

      Consejo  -  La visualización de la sintaxis del comando pktool indica que parte de la entrada del certificado se ha escrito incorrectamente. Examine el comando para uso de un algoritmo no permitido, comillas dobles y signos de igual faltantes, y otros errores tipográficos. Una estrategia para localizar el argumento no válido es recuperar el comando y, a continuación, eliminar los argumentos uno por uno.
    2. El comando del sistema enigma sería como el siguiente:
      # 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. (Opcional) Muestre las claves y el certificado.
    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

    Consejo  -  El algoritmo de hash de contraseña predeterminada es SHA1. Para crear un certificado con un algoritmo de firma más seguro, utilice la opción keytype y un algoritmo de hash diferente, como keytype=rsa hash=sha384. Para conocer las opciones, consulte la página del comando man pktool(1).
  3. Entregue el certificado al otro sistema.
    1. En cada sistema, exporte solamente el certificado a un archivo.

      La opción outformat=pem garantiza que el certificado público se colocará en el archivo con un formato adecuado para importación directa. La etiqueta identifica el certificado en el almacén de claves.

      # cd /tmp
      	# ikev2cert export objtype=cert outformat=pem outfile=filename label=label
      	Enter PIN for Sun Software PKCS#11 softtoken:xxxxxxxx
    2. Envíe el certificado al otro sistema por correo electrónico, sftp o ssh.

      Por ejemplo, si administra ambos sistemas, use el comando sftp para traer el certificado del otro sistema.

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

      Se le solicitará la contraseña. En este ejemplo, jdoe debe proporcionar una contraseña.

  4. Compruebe que los certificados sean idénticos.

    Desea garantizar que ha recibido el certificado adecuado antes de cargarlo en el almacén de claves.

    1. Cree un resumen del archivo exportado en cada sistema.

      Por ejemplo, el administrador de partym envía por correo electrónico el resumen del archivo que contiene el certificado de partym al otro administrador. El administrador de enigma envía por correo electrónico el resumen del archivo del certificado enigma.

      partym # digest -a sha1 /tmp/ITpartym.pem
      	c6dbef4136c0141ae62110246f288e5546a59d86
      
      	enigma # digest -a sha1 ITenigma.pem
      	6b288a6a6129d53a45057065bd02b35d7d299b3a
      	
    2. En el otro sistema, ejecute el comando digest en el archivo que contiene el certificado del primer sistema.
      enigma # digest -a sha1 /tmp/ITpartym.pem.cert
      	c6dbef4136c0141ae62110246f288e5546a59d86
      
      	partym # digest -a sha1 /tmp/ITenigma.pem.cert
      	6b288a6a6129d53a45057065bd02b35d7d299b3a

      Los resúmenes deben coincidir. Si no coinciden, no importe el archivo al almacén de claves. Para conocer otra manera de verificar la validez del certificado, consulte el Example 9–3.

  5. Una vez completada la verificación, importe el otro certificado del sistema al almacén de claves.

    Cuando importe el certificado al almacén de claves, deberá asignarle una etiqueta que identifique de forma exclusiva el certificado en el sistema. La etiqueta enlaza la clave pública con su certificado de clave pública.

    enigma# ikev2cert import label=ITpartym1 infile=/tmp/ITpartym.pem.cert
    partym# ikev2cert import label=ITenigma1 infile=/tmp/ITenigma.pem.cert
  6. (Opcional) Enumere los objetos del almacén de claves.

    Compare la lista con la lista del Step 2. Por ejemplo, en el almacén de claves enigma, se agrega el certificado 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. En cada sistema, use los certificados en una regla de IKEv2.

    Utilice el comando pfedit para editar el archivo /etc/inet/ike/ikev2.config.

    1. Por ejemplo, en el sistema partym, la regla del archivo ikev2.config tendrá un aspecto similar al siguiente:
      ##  ... 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. En el sistema enigma, use el DN del certificado enigma para el valor de local_id en el archivo ikev2.config.

      Para el parámetro remoto, use el DN del certificado partym como valor. Asegúrese de que el valor de la palabra clave label sea exclusivo en el sistema local.

      …
      	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. (Opcional) En cada sistema, compruebe la validez de los archivos ikev2.config.♠
    # /usr/lib/inet/inikev2.d -c

    Corrija los errores tipográficos o las imprecisiones antes de continuar.

  9. En cada sistema, compruebe el estado de la instancia de servicio IKEv2.
    # svcs ikev2
    	STATE          STIME    FMRI
    	disabled       Sep_07   svc:/network/ipsec/ike:ikev2
  10. En cada sistema, active la instancia del servicio IKEv2.
    partym # svcadm enable ipsec/ike:ikev2
    
    	enigma # svcadm enable ipsec/ike:ikev2
Ejemplo 9-2  Creación de un certificado autofirmado con una duración limitada

En este ejemplo, el administrador especifica que el certificado es válido para dos años.

# 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
Ejemplo 9-3  Verificación de un certificado de clave pública por su huella

En este ejemplo, el administrador utiliza la huella del certificado para verificar el certificado. La desventaja de este método es que el administrador debe importar el certificado del par al almacén de claves antes de visualizar la huella.

El administrador importa el certificado, lo muestra con el comando ikev2cert list objtype=cert y, a continuación, copia la huella del certificado de la salida y la envía al otro administrador del sistema.

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

Si la verificación falla, el administrador que importó el certificado deberá eliminar el certificado y su clave pública del almacén de claves.

# 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

Pasos siguientes

Si no terminó de establecer la política IPsec, regrese al procedimiento IPsec para activar o refrescar la política IPsec. Para ver ejemplos de la política de IPsec para protección de VPN, consulte Protección de una VPN con IPsec. Para ver otros ejemplos de la política de IPsec, consulte Cómo proteger el tráfico de red seguro entre dos servidores con IPsec.