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:
Disponga de una autoridad de certificación para emitir certificados.
Genere y exporte certificados de CA para el sistema de archivos y el cliente.
Instale el certificado y configure IPsec en la instancia del cliente.
Instale el certificado y configure IPsec en el sistema de archivos.
Defina la base de datos de políticas de seguridad (SPD).
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:
Crear una autoridad de certificación (CA) privada mediante AWS Private CA
Emita e instale el certificado raíz en la CA privada
Solicite un certificado privado a AWS Certificate Manager para su sistema de archivos y sus clientes
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
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.
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" } }
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.
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 --regionaws-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)
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.csrEl 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.
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 --regionaws-region
-
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 --regionaws-region
> rootCA.pem 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 --regionaws-region
Genere y exporte el sistema de archivos y el certificado de cliente
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-123456789012Si la solicitud se realiza correctamente, se devuelve el ARN del certificado emitido.
-
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
-
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)) --regionaws-region
> exported_cert.json 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
-
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
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.
Ejecute el siguiente comando para instalar
libreswan
:$
sudo yum install libreswan
(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.
Implemente los cambios:
$
sudo sysctl -p
Compruebe la configuración de IPsec.
$
sudo ipsec verify
Compruebe que la versión de
Libreswan
que ha instalado se esté ejecutando.Inicialice la base de datos NSS de IPsec.
$
sudo ipsec checknss
Para instalar los archivos de certificado en el cliente.
Copie el certificado que generó para el cliente en el directorio de trabajo de la instancia EC2. Usted
Exporte el certificado generado anteriormente a un formato compatible con
libreswan
.$
openssl pkcs12 -export -in cert.pem -inkey decrypted.key \ -certfile rootCA.pem -out certkey.p12 -name fsx
Importe la clave reformateada y proporcione la contraseña cuando se le solicite.
$
sudo ipsec import certkey.p12
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
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.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
con la dirección IP del puerto de gestión del sistema de archivos.management_endpoint_ip
[~]$
ssh fsxadmin@
management_endpoint_ip
Para obtener más información, consulte Administración de sistemas de archivos con la CLI de ONTAP.
Utilice cat en un cliente (no en su sistema de archivos) para mostrar el contenido de los archivos
rootCA.pem
,cert.pem
ydecrypted.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.
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-certPlease 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.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-certPlease enter Certificate: Press <Enter> when done
Pegue el contenido del archivo
rootCA.pem
y pulse Entrar.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-certIntroduzca 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
-namepolicy-name
-local-ip-subnets198.19.254.13/32
-remote-ip-subnets172.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"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
-instanceVserver: 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.
Conéctese al sistema cliente mediante SSH.
Inicie Eclipse.
$
sudo ipsec start
Compruebe el estado de IPsec.
$
sudo ipsec status
Monte un volumen en el sistema de archivos.
$
sudo mount -t nfs
198.19.254.13:/benchmark
/home/ec2-user/acm/dr
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 FsxId
123
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 fsxpolicy-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).
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
con la dirección IP del puerto de gestión del sistema de archivos.management_endpoint_ip
[~]$
ssh fsxadmin@
management_endpoint_ip
Para obtener más información, consulte Administración de sistemas de archivos con la CLI de ONTAP.
Utilice el comando CLI de NetApp ONTAP
security ipsec policy create
de la siguiente manera, sustituyendo los valores demuestra
por sus valores específicos.FsxId123456::>
security ipsec policy create -vserver
svm_name
-namepolicy_name
\ -local-ip-subnets192.168.134.34/32
-remote-ip-subnets192.168.134.0/24
\ -local-ports2049
-protocolstcp
-auth-method PSK \ -cert-namemy_nfs_server_cert
-local-identityontap_side_identity
\ -remote-identityclient_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.
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
con la dirección IP del puerto de gestión del sistema de archivos.management_endpoint_ip
[~]$
ssh fsxadmin@
management_endpoint_ip
Para obtener más información, consulte Administración de sistemas de archivos con la CLI de ONTAP.
Utilice el comando CLI de NetApp ONTAP
security ipsec policy create
de la siguiente manera, sustituyendo los valores demuestra
por sus valores específicos.FsxId123456::>
security ipsec policy create -vserver
svm_name
-namepolicy_name
\ -local-ip-subnets192.168.134.34/32
-remote-ip-subnets 0.0.0.0/0 \ -local-ports2049
-protocolstcp
-auth-method PSK \ -cert-namemy_nfs_server_cert
-local-identityontap_side_identity
\ -local-ports2049
-remote-identityclient_side_identity