Configuración de IPsec mediante la autenticación PSK - FSx para ONTAP

Configuración de IPsec mediante la autenticación PSK

En los siguientes temas, se proporcionan instrucciones para configurar el cifrado de IPsec mediante la autenticación por certificado en un sistema de archivos de FSx para ONTAP y en un cliente que ejecute Libreswan IPsec. Esta solución usa AWS Certificate Manager y AWS Private Certificate Authority para crear una autoridad de certificación privada y generar los certificados.

Los pasos de alto nivel para configurar el cifrado de IPsec mediante la autenticación con certificado tanto en sistemas de archivos de FSx para ONTAP como para clientes conectados son los siguientes:

  1. Disponga de una autoridad de certificación para emitir certificados.

  2. Genere y exporte certificados de CA para el sistema de archivos y el cliente.

  3. Instale el certificado y configure IPsec en la instancia del cliente.

  4. Instale el certificado y configure IPsec en el sistema de archivos.

  5. Defina la base de datos de políticas de seguridad (SPD).

  6. Configure IPsec para el acceso de varios clientes.

Creación e instalación del certificado para una CA

Para la autenticación de certificados, debe generar e instalar los certificados de una autoridad de certificación en su sistema de archivos de FSx para ONTAP y de los clientes que accederán a los datos de su sistema de archivos. En el siguiente ejemplo, AWS Private Certificate Authority se configura una autoridad de certificación privada y se generan los certificados que se van a instalar en el sistema de archivos y en el cliente. Con AWS Private Certificate Authority, puede crear una jerarquía de autoridades de certificación (CA) de raíz y subordinados totalmente alojados en AWS para su uso interno por parte de su organización. Este proceso consta de cinco pasos:

  1. Crear una autoridad de certificación (CA) privada mediante AWS Private CA

  2. Emita e instale el certificado raíz en la CA privada

  3. Solicite un certificado privado a AWS Certificate Manager para su sistema de archivos y sus clientes

  4. Exporte el certificado para el sistema de archivos y los clientes.

Para más información, consulte Administración de CA privadas en la Guía del usuario de AWS Private Certificate Authority.

Para crear la CA privada raíz
  1. Al crear una CA, debe especificar la configuración de la CA en un archivo que suministre. El siguiente comando utiliza el editor de texto Nano para crear el archivo ca_config.txt, que especifica la siguiente información:

    • El nombre del algoritmo

    • El tipo de algoritmo de firma que la CA utiliza para firmar

    • La información del sujeto de X.500

    $ > nano ca_config.txt

    Aparece el editor de texto.

  2. Edite el archivo con las especificaciones de su CA.

    { "KeyAlgorithm":"RSA_2048", "SigningAlgorithm":"SHA256WITHRSA", "Subject":{ "Country":"US", "Organization":"Example Corp", "OrganizationalUnit":"Sales", "State":"WA", "Locality":"Seattle", "CommonName":"*.ec2.internal" } }
  3. Guarde el archivo y salga del editor de texto. Para obtener más información, consulte Procedimiento para crear una CA en la Guía del usuario de AWS Private Certificate Authority.

  4. Utilice el comando CLI de AWS Private CA create-certificate-authority para crear una CA privada.

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

    Si se ejecuta correctamente, este comando devuelve el nombre de recurso de Amazon (ARN) de la CA.

    { "CertificateAuthorityArn": "arn:aws:acm-pca:aws-region:111122223333:certificate-authority/12345678-1234-1234-1234-123456789012" }
Para crear e instalar un certificado para su CA raíz privada (AWS CLI)
  1. Genere una solicitud de firma de certificado (CSR) mediante el comando CLI de AWS get-certificate-authority-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

    El archivo resultante ca.csr, un archivo PEM codificado en formato base64, tiene el siguiente aspecto.

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

    Para obtener más información, consulte Instalación de un certificado CA raíz en la Guía del usuario de AWS Private Certificate Authority.

  2. Utilice el comando AWS CLI issue-certificate para emitir e instalar el certificado raíz en su CA privada.

    $ 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. Descargue el certificado raíz mediante el comando AWS CLI get-certificate.

    $ 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. Instale el certificado raíz en su CA privada mediante el comando AWS CLI import-certificate-authority-certificate.

    $ 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
Genere y exporte el sistema de archivos y el certificado de cliente
  1. Utilice el comando AWS CLI request-certificate para solicitar un certificado AWS Certificate Manager para usarlo en el sistema de archivos y en los clientes.

    $ 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

    Si la solicitud se realiza correctamente, se devuelve el ARN del certificado emitido.

  2. Por motivos de seguridad, debe asignar una contraseña a la clave privada al exportarla. Cree una contraseña y guárdela en un archivo llamado passphrase.txt

  3. Utilice el comando AWS CLI export-certificate para exportar el certificado privado emitido anteriormente. El archivo exportado contiene el certificado, la cadena de certificados y la clave RSA privada cifrada de 2048 bits asociada a la clave pública que está incrustada en el certificado. Por motivos de seguridad, debe asignar una contraseña a la clave privada al exportarla. A continuación se muestra un ejemplo para una instancia EC2 Linux.

    $ 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. Utilice los siguientes comandos jq para extraer la clave privada y el certificado de la respuesta en formato 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. Utilice los siguientes comandos openssl para descifrar la clave privada de la respuesta en formato JSON. Después de introducir el comando, se le solicitará la contraseña.

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

Instalación y configuración de Libreswan IPsec en un cliente de Amazon Linux 2

En las siguientes secciones se proporcionan instrucciones para instalar y configurar Libreswan IPsec en una instancia de Amazon EC2 que ejecute Amazon Linux 2.

Para instalar y configurar Libreswan
  1. Conéctese a la instancia EC2 mediante SSH. Para obtener instrucciones específicas sobre cómo hacerlo, consulte Conectarse a la instancia de Linux mediante un cliente SSH en la Guía del usuario de Amazon Elastic Compute Cloud para las instancias de Linux.

  2. Ejecute el siguiente comando para instalar libreswan:

    $ sudo yum install libreswan
  3. (Opcional) Al verificar IPsec en un paso posterior, es posible que estas propiedades se marquen sin estos ajustes. Le sugerimos que primero pruebe la configuración sin estas configuraciones. Si tiene problemas de conexión, vuelva a este paso y realice los siguientes cambios.

    Una vez completada la instalación, utilice el editor de texto que prefiera para añadir las siguientes entradas al archivo /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

    Guarde el archivo y salga del editor de texto.

  4. Implemente los cambios:

    $ sudo sysctl -p
  5. Compruebe la configuración de IPsec.

    $ sudo ipsec verify

    Compruebe que la versión de Libreswan que ha instalado se esté ejecutando.

  6. Inicialice la base de datos NSS de IPsec.

    $ sudo ipsec checknss
Para instalar los archivos de certificado en el cliente.
  1. Copie el certificado que generó para el cliente en el directorio de trabajo de la instancia EC2. Usted

  2. Exporte el certificado generado anteriormente a un formato compatible conlibreswan.

    $ openssl pkcs12 -export -in cert.pem -inkey decrypted.key \ -certfile rootCA.pem -out certkey.p12 -name fsx
  3. Importe la clave reformateada y proporcione la contraseña cuando se le solicite.

    $ sudo ipsec import certkey.p12
  4. Cree un archivo de configuración de IPsec mediante el editor de texto preferido.

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

    Agregue lo siguiente al archivo de configuración:

    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

Iniciará IPsec en el cliente después de configurar IPsec en su sistema de archivos.

Configuración de IPsec en el sistema de archivos

En esta sección se proporcionan instrucciones sobre la instalación del certificado en el sistema de archivos de FSx para ONTAP y la configuración de IPsec.

Para instalar el certificado en su sistema de archivos
  1. Copie los archivos del certificado raíz (rootCA.pem)), el certificado de cliente (cert.pem) y la clave descifrada (decrypted.key) en su sistema de archivos. Necesitará saber la contraseña del certificado.

  2. Para acceder a la CLI de NetApp ONTAP, establezca una sesión SSH en el puerto de gestión del sistema de archivos Amazon FSx para NetApp ONTAP ejecutando el siguiente comando. Reemplace management_endpoint_ip con la dirección IP del puerto de gestión del sistema de archivos.

    [~]$ ssh fsxadmin@management_endpoint_ip

    Para obtener más información, consulte Administración de sistemas de archivos con la CLI de ONTAP.

  3. Utilice cat en un cliente (no en su sistema de archivos) para mostrar el contenido de los archivos rootCA.pem, cert.pem y decrypted.key de forma que pueda copiar el resultado de cada archivo y pegarlo cuando se le solicite en los siguientes pasos.

    $ > cat cert.pem

    Copie el contenido del certificado.

  4. Debe instalar todos los certificados de CA utilizados durante la autenticación mutua, incluidas las CA del lado de ONTAP y del lado del cliente, en la gestión de certificados ONTAP, a menos que ya esté instalada (como es el caso de una CA raíz autofirmada de ONTAP).

    Utilice el comando CLI de NetApp security certificate install de la siguiente manera para instalar el certificado de cliente:

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

    Pegue el contenido del archivo cert.pem que copió anteriormente y pulse Entrar.

    Please enter Private Key: Press <Enter> when done

    Pegue el contenido del archivo decrypted.key y pulse Entrar.

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

    Introduzca n para completar la introducción del certificado de cliente.

  5. Cree e instale un certificado para que lo utilice la SVM. La CA emisora de este certificado ya debe estar instalada en ONTAP y agregada a IPSec.

    Utilice el siguiente comando para instalar el certificado raíz.

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

    Pegue el contenido del archivo rootCA.pem y pulse Entrar.

  6. Para asegurarse de que la CA instalada se encuentra dentro de la ruta de búsqueda de la CA de IPsec durante la autenticación, agregue las CA de gestión de certificados ONTAP al módulo de IPsec mediante el comando “security IPsec ca-certificate add”.

    Introduzca el siguiente comando para instalar el certificado raíz.

    FSxID123:: > security ipsec ca-certificate add -vserver dr -ca-certs ipsec-ca-cert
  7. Introduzca el siguiente comando para crear la política de IPsec requerida en la base de datos de políticas de seguridad (SPD).

    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. Utilice el siguiente comando para mostrar la política de IPsec para que el sistema de archivos la confirme.

    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

Inicie IPsec en el cliente

Ahora que IPsec está configurado tanto en el sistema de archivos de FSx para ONTAP como en el cliente, puede iniciar IPsec en el cliente.

  1. Conéctese al sistema cliente mediante SSH.

  2. Inicie Eclipse.

    $ sudo ipsec start
  3. Compruebe el estado de IPsec.

    $ sudo ipsec status
  4. Monte un volumen en el sistema de archivos.

    $ sudo mount -t nfs 198.19.254.13:/benchmark /home/ec2-user/acm/dr
  5. Compruebe la configuración de IPsec mostrando la conexión cifrada en su sistema de archivos de FSx para ONTAP.

    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.

Configuración de IPsec para varios clientes

Cuando un número reducido de clientes necesita utilizar IPSec, basta con utilizar una sola entrada de SPD para cada cliente. Sin embargo, cuando cientos o incluso miles de clientes necesiten aprovechar IPsec, le recomendamos que utilice la configuración de varios clientes de IPsec.

FSx para ONTAP admite la conexión de varios clientes de muchas redes a una única dirección IP de SVM con IPsec activado. Para ello, puede utilizar la configuración subnet o la configuración Allow all clients, que se explican en los siguientes procedimientos:

Para configurar IPsec para varios clientes mediante una configuración de subred

Para permitir que todos los clientes de una subred concreta (192.168.134.0/24, por ejemplo) se conecten a una única dirección IP de SVM mediante una única entrada de política de SPD, debe especificar el remote-ip-subnets en forma de subred. Además, debe especificar el campo remote-identity con la identidad correcta del lado del cliente.

importante

Al usar la autenticación por certificado, cada cliente puede usar su propio certificado único o un certificado compartido para autenticarse. FSx para ONTAP IPsec comprueba la validez del certificado en función de las CA instaladas en su almacén de confianza local. FSx para ONTAP también admite la comprobación de la lista de revocación de certificados (CRL).

  1. Para acceder a la CLI de NetApp ONTAP, establezca una sesión SSH en el puerto de gestión del sistema de archivos Amazon FSx para NetApp ONTAP ejecutando el siguiente comando. Reemplace management_endpoint_ip con la dirección IP del puerto de gestión del sistema de archivos.

    [~]$ ssh fsxadmin@management_endpoint_ip

    Para obtener más información, consulte Administración de sistemas de archivos con la CLI de ONTAP.

  2. Utilice el comando CLI de NetApp ONTAP security ipsec policy create de la siguiente manera, sustituyendo los valores de muestra por sus valores específicos.

    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
Para configurar IPsec para múltiples clientes utilizando una configuración de permitir todos los clientes

Para permitir que cualquier cliente, independientemente de su dirección IP de origen, se conecte a la dirección IP de SVM habilitada para IPSec, utilice el comodín 0.0.0.0/0 al especificar el campo remote-ip-subnets.

Además, debe especificar el campo remote-identity con la identidad correcta del lado del cliente. Para la autenticación de certificados, puede introducir ANYTHING.

Además, cuando se utiliza el comodín 0.0.0.0/0, debe configurar un número de puerto local o remoto específico para usarlo. Por ejemplo, el puerto NFS 2049.

  1. Para acceder a la CLI de NetApp ONTAP, establezca una sesión SSH en el puerto de gestión del sistema de archivos Amazon FSx para NetApp ONTAP ejecutando el siguiente comando. Reemplace management_endpoint_ip con la dirección IP del puerto de gestión del sistema de archivos.

    [~]$ ssh fsxadmin@management_endpoint_ip

    Para obtener más información, consulte Administración de sistemas de archivos con la CLI de ONTAP.

  2. Utilice el comando CLI de NetApp ONTAP security ipsec policy create de la siguiente manera, sustituyendo los valores de muestra por sus valores específicos.

    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