为区域文件共享建立传输中加密
使用IPsec安全协议和 X.509 证书,为区域文件共享建立加密挂载连接,以实现安全的端到端数据加密。
IPsec 是一组协议,共同建立设备之间的加密连接。 它有助于确保通过公共网络发送的数据安全。 IPsec 对 IP 数据包进行加密,并验证数据包的来源。 要在虚拟服务器实例上配置 IPsec,可以使用 strongSwan,这是一个基于 IPsec 的开源 VPN 解决方案。 有关 strongSwan 如何工作的更多信息,请参阅 strongSwan 和 IPsec 协议strongSwan。
IPsec 连接要求使用 X.509 证书进行身份验证。 X.509 是公钥证书的国际标准格式,是将加密密钥对与网站、个人或组织等身份安全关联的数字文档。 元数据服务用于创建证书。
证书签名请求(CSR)是用户申请证书时转发给证书颁发机构(CA)的一组编码文本。 在安装证书的服务器上创建 CSR。 CSR 包括域名、组织名称、地区和国家等信息。 该请求还包含与生成的证书相关联的公钥和私钥。 CA 在创建证书时只使用公开密钥。 私人密钥必须保存并保密。 由于私钥是与公钥配对的密钥的一部分,如果私钥丢失,证书将无法使用。
当您使用 IPsec 连接挂载区域文件共享时,在维护或节点故障期间可能会发生临时挂载中断。 在极少数情况下,配置了 IPsec 的挂载可能会出现长达 3 分钟的服务中断。 有关更多信息,请参阅《 维护期间,已配置 IPsec 的区域文件共享可能出现挂载中断 》。
在开始使用 IPsec 配置传输中加密之前
使用该功能需要满足以下要求:
- 文件共享必须基于
dp2配置文件,并配置为 安全组访问模式。 - 必须使用 虚拟网络接口 创建挂载目标。 虚拟服务器实例和挂载目标必须是同一个 安全组 的成员。 更多信息,请参阅 创建文件共享和挂载目标。
- 必须启用传输中的数据加密。 在控制台中,可以在创建挂载目标时切换“传输中加密”。 API
transit_encryption属性接受ipsec值,以启用该功能。 - 元数据服务必须在计算主机上启用。 有关详细信息,请参阅 虚拟服务器实例上的元数据服务 和 裸机服务器上的元数据服务。
IBM Cloud® 文件服务提供了一个 “挂载助手”(Mount Helper)实用程序,用于自动执行在计算主机上进行的以下任务。
如果要将文件共享连接到一个区域内不同 VPC 中运行的实例,可以创建多个挂载目标。 您可以为每个 VPC 创建一个挂载目标。
获取实例身份证书
获取验证所需的 X.509 证书。 同一证书不能在多个地区使用。
-
以下命令使用 openssl 生成证书签名请求 (CSR)和 RSA 密钥对。
openssl req -sha256 -newkey rsa:4096 -subj '/C=US' -out ./sslcert.csr -keyout file.key -nodes运行该命令时,请将
US中的国家代码替换为'/C=US'中的两位数国家代码。OpenSSL 这是一个开源的命令行工具包,可用于处理 X.509 证书、证书签名请求(CSR)和加密密钥。 如需了解更多信息,请参阅 OpenSSL 文档。
如果您使用不同的软件来创建 CSR,系统可能会提示您输入有关您所在位置的信息。 您的位置信息可包括国家代码 (C)、州 (ST)、地区 (L)、组织名称 (O) 和组织单位 (OU)。 可以使用其中任何一个命名属性。 任何其他命名属性,如通用名称,都将被拒绝。 指定了通用名的 CSR 会被拒绝,因为在您提出申请时,系统会自动将实例 ID 值应用到实例身份证书的主题通用名。 带有扩展名的 CSR 也会被拒绝。
-
在调用元数据服务的 API 之前,使用以下命令格式化 csr。
awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' sslcert.csr -
然后,使用 虚拟服务器实例 或 裸机服务器 上的元数据服务创建客户端证书。
- 发出
PUT /instance_identity/v1/token(虚拟服务器实例)或PUT /identity/v1/tokens(裸机服务器)请求,从 VPC 身份服务获取令牌,用于后续调用。 有关更多信息,请参阅以下主题: - 使用身份令牌创建身份证书。 申请
POST /instance_identity/v1/certificates虚拟服务器实例或POST /identity/v1/certificates裸机服务器。 在 HTTP 授权标头中指定身份令牌,加上证书签名请求(作为csr属性)和有效期(作为expires_in属性)。 调用会返回一个新的客户端证书和中间证书链,允许客户端使用 IPsec Encryption in Transit 访问文件共享。 有关更多信息,请参阅以下主题: - 复制 API 响应输出,包括
-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----行,并将其保存到一个具有可识别名称的文件中,如ca-cert.pem。 确保创建的文件扩展名为.pem。
- 发出
-
复制
/etc/ipsec.d/cacerts目录中的实例身份证书。sudo cp /tmp/ca-cert.pem /etc/ipsec.d/cacerts
配置主机并挂载共享
-
安装并配置 strongSwan 客户端。 您必须为挂载目标地址配置 IPsec 传输模式。
-
确保安装了身份验证所需的插件 (
libcharon-extra-plugins),并根据实例身份证书的位置更新了配置文件。 -
启动 strongSwan 客户端,建立安全连接。
-
挂载文件共享。