本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
IPsec使用证书身份验证进行配置
以下主题提供了在ONTAP文件系统和运行 Libres IPsec wan FSx 的客户端上使用证书身份验证配置IPsec加密的说明。此解决方案使用 Amazon Certificate Manager 和 Amazon Private Certificate Authority 来创建私有证书颁发机构并生成证书。
使用证书身份验证为ONTAP文件系统和连接FSx的客户端配置IPsec加密的高级步骤如下:
设立证书颁发机构来颁发证书。
为文件系统和客户端生成和导出 CA 证书。
在客户端实例IPsec上安装证书并进行配置。
在您的文件系统IPsec上安装证书并进行配置。
定义安全策略数据库 (SPD)。
配置IPsec多客户端访问权限。
创建和安装 CA 证书
要进行证书身份验证,您需要在您的FSxONTAP文件系统上生成并安装来自证书颁发机构的证书,以及将访问文件系统数据的客户端。以下示例 Amazon Private Certificate Authority 用于设置私有证书颁发机构,并生成要安装在文件系统和客户端上的证书。使用 Amazon Private Certificate Authority,您可以创建由根证书颁发机构和从属证书颁发机构 (CAs) 组成的完全 Amazon 托管的层次结构,供组织内部使用。此过程分为五个步骤:
使用创建私有证书颁发机构 (CA) Amazon Private CA
在私有 CA 上颁发并安装根证书
从 Amazon Certificate Manager 为您的文件系统和客户端申请私有证书
为文件系统和客户端导出证书。
有关更多信息,请参阅《 Amazon Private Certificate Authority 用户指南》中的私有 CA 管理。
创建根私有 CA
创建 CA 时,必须在提供的文件中指定 CA 配置。以下命令使用 Nano 文本编辑器创建
ca_config.txt
文件,指定以下信息:算法的名称
CA 用来签名的签名算法
X.500 主题信息
$ >
nano ca_config.txt
随即显示文本编辑器。
编辑 CA 规范文件。
{ "KeyAlgorithm":"RSA_2048", "SigningAlgorithm":"SHA256WITHRSA", "Subject":{ "Country":"US", "Organization":"Example Corp", "OrganizationalUnit":"Sales", "State":"WA", "Locality":"Seattle", "CommonName":"*.ec2.internal" } }
保存并关闭文件,退出文本编辑器。有关更多信息,请参阅《 Amazon Private Certificate Authority 用户指南》中的创建 CA 的步骤。
使用create-certificate-authority Amazon 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 --regionaws-region
如果成功,此命令将输出 CA 的 Amazon 资源名称 (ARN)。
{ "CertificateAuthorityArn": "arn:aws:acm-pca:
aws-region
:111122223333:certificate-authority/12345678-1234-1234-1234-123456789012
" }
为私有根 CA 创建和安装证书(Amazon CLI)
使用
get-certificate-authority-csr
Amazon 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生成的PEM文件
ca.csr
是以 base64 格式编码的文件,其外观如下。-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE= -----END CERTIFICATE-----
有关更多信息,请参阅 Amazon Private Certificate Authority 用户指南中的安装根 CA 证书。
使用
issue-certificate
Amazon 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 --regionaws-region
-
使用
get-certificate
Amazon 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 --regionaws-region
> rootCA.pem 使用
import-certificate-authority-certificate
Amazon 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 --regionaws-region
生成并导出文件系统和客户端证书
使用
request-certificate
Amazon CLI 命令请求 Amazon 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的证书。
-
为了安全起见,您必须在导出私钥时为其分配密码。创建密码并将其存储在名为
passphrase.txt
的文件中 -
使用
export-certificate
Amazon CLI 命令导出之前颁发的私有证书。导出的文件包含证书、证书链以及与证书中嵌入的公RSA钥关联的 2048 位加密私钥。为了安全起见,您必须在导出私钥时为其分配密码。以下示例适用于 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) --regionaws-region
> exported_cert.json 使用以下
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
-
使用以下
openssl
命令解密响应中的私钥。JSON输入命令后,系统会提示您输入密码。$
openssl rsa -in prv.key -passin pass:$passphrase -out decrypted.key
在亚马逊 Linux 2 客户端IPsec上安装和配置 Libreswan
以下各节提供了在运行亚马逊 Linux 2 的亚马逊EC2实例IPsec上安装和配置 Libreswan 的说明。
安装和配置 Libreswan
使用连接到您的EC2实例SSH。有关如何执行此操作的具体说明,请参阅《适用于 Linux 实例的亚马逊弹性计算云用户指南》中的使用SSH客户端连接您的 Linux 实例。
运行以下命令安装
libreswan
:$
sudo yum install libreswan
(可选)在以后的步骤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
保存更改,退出文本编辑器。
应用更改。
$
sudo sysctl -p
验证IPsec配置。
$
sudo ipsec verify
验证您安装的
Libreswan
版本是否正常运行。初始化IPsecNSS数据库。
$
sudo ipsec checknss
在客户端上安装证书
将您为客户端生成的证书复制到EC2实例上的工作目录中。您
将之前生成的证书导出为与
libreswan
兼容的格式。$
openssl pkcs12 -export -in cert.pem -inkey decrypted.key \ -certfile rootCA.pem -out certkey.p12 -name fsx
导入重新格式化的密钥,并在系统提示时提供密码。
$
sudo ipsec import certkey.p12
使用首选文本编辑器创建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在您的文件系统上进行配置
本节提供有关在您的FSxONTAP文件系统上安装证书和配置的说明IPsec。
在文件系统上安装证书
将根证书(
rootCA.pem)
)、客户端证书(cert.pem
)和解密的密钥(decrypted.key
)文件复制到您的文件系统。您需要知道证书的密码。要访问 ONTAP CLI,通过运行以下命令在 Amazon NetApp ONTAP 文件FSx系统的管理端口上建立会SSH话。将
替换为文件系统管理端口的 IP 地址。management_endpoint_ip
[~]$
ssh fsxadmin@
management_endpoint_ip
有关更多信息,请参阅 使用 ONTAP CLI 管理文件系统。
在客户端(而不是在您的文件系统)上使用 cat 列出
rootCA.pem
、cert.pem
和decrypted.key
文件的内容,以便复制每个文件的输出并在系统提示时粘贴到以下步骤中。$ >
cat cert.pem
复制证书内容。
必须将双向身份验证期间使用的所有 CA 证书(包括ONTAP端和客户端CAs)安装到 ONTAP 证书管理,除非已安装(例如ONTAP自签名 root-CA)。
使用如下
security certificate install
NetApp CLI命令安装客户端证书:FSxID123:: >
security certificate install -vserver
dr
-type client -cert-name ipsec-client-certPlease 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
以完成客户端证书的输入。创建并安装证书以供使用SVM。此证书的颁发者 CA 必须已安装到 ONTAP 并添加到IPsec。
使用以下命令来安装根证书:
FSxID123:: >
security certificate install -vserver
dr
-type server-ca -cert-name ipsec-ca-certPlease enter Certificate: Press <Enter> when done
粘贴
rootCA.pem
文件的内容,然后按 Enter。要确保在身份验证期间安装的 CA 位于 IPsec CA 搜索路径中,请添加 ONTAP 使用 “secur CAs ity ipsec ca-certificate add” 命令管理IPsec模块的证书。
输入以下命令来添加根证书。
FSxID123:: >
security ipsec ca-certificate add -vserver
dr
-ca-certs ipsec-ca-cert输入以下命令在安全IPsec策略数据库中创建所需的策略 (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"使用以下命令显示要确认的文件系统的IPsec策略。
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
从客户端开始 IPsec
现在IPsec,在ONTAP文件系统和客户FSx机上都配置好了,你可以在客户端IPsec上启动。
使用 Connect 连接到您的客户端系统SSH。
启动 IPsec。
$
sudo ipsec start
检查的状态IPsec。
$
sudo ipsec status
在您的文件系统上挂载卷。
$
sudo mount -t nfs
198.19.254.13:/benchmark
/home/ec2-user/acm/dr
通过显示 for ONTAP 文件系统上的加密连接来FSx验证IPsec设置。
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.
IPsec为多个客户机进行设置
当少数客户需要利用时IPsec,为每个客户使用一个SPD条目就足够了。但是,当需要利用数百甚至数千个客户端时IPsec,我们建议您使用IPsec多个客户端配置。
FSxfo ONTAP r 支持在IPsec启用后将跨多个网络的多个客户端连接到单个 SVM IP 地址。您可以使用 subnet
配置或 Allow all clients
配置来完成此操作,详细过程如下:
使用子网配置IPsec为多台客户机进行配置
要允许特定子网(例如 192.168.134.0/24)上的所有客户端使用单个SPD策略条目连接到单个 SVM IP 地址,必须以子网形式指定。remote-ip-subnets
此外,您必须使用正确的客户端标识来指定 remote-identity
字段。
重要
使用证书身份验证时,每个客户端都可以使用自己的唯一证书或共享证书进行身份验证。 FSxfor 根据其本地信任存储区上CAs安装的证书来ONTAPIPsec检查证书的有效性。 FSxfo ONTAP r 还支持证书吊销列表 (CRL) 检查。
要访问 ONTAP CLI,通过运行以下命令在 Amazon NetApp ONTAP 文件FSx系统的管理端口上建立会SSH话。将
替换为文件系统管理端口的 IP 地址。management_endpoint_ip
[~]$
ssh fsxadmin@
management_endpoint_ip
有关更多信息,请参阅 使用 ONTAP CLI 管理文件系统。
使用
security ipsec policy create
NetApp ONTAP CLI命令如下所示,用您的特定sample
值替换这些值。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
使用 “允许所有客户端” 配置IPsec为多台客户机进行配置
要允许任何客户端(无论其源 IP 地址如何)连接到SVMIPsec启用的 IP 地址,请在指定remote-ip-subnets
字段时使用通0.0.0.0/0
配符。
此外,您必须使用正确的客户端标识来指定 remote-identity
字段。对于证书身份验证,您可以输入 ANYTHING
。
此外,使用 0.0.0.0/0 通配符时,必须配置要使用的特定本地或远程端口号。例如,NFS端口 2049。
要访问 ONTAP CLI,通过运行以下命令在 Amazon NetApp ONTAP 文件FSx系统的管理端口上建立会SSH话。将
替换为文件系统管理端口的 IP 地址。management_endpoint_ip
[~]$
ssh fsxadmin@
management_endpoint_ip
有关更多信息,请参阅 使用 ONTAP CLI 管理文件系统。
使用
security ipsec policy create
NetApp ONTAP CLI命令如下所示,用您的特定sample
值替换这些值。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