为区域文件共享建立传输中加密

使用传输层安全协议( TLS ) 1.2 配合 stunnel,为区域文件共享建立加密挂载连接。

您可以通过使用 stunnel 建立 TLS 1.2 + 连接,在计算主机与区域文件共享之间建立加密挂载连接。 在使用带有基于安全组的访问控制模式的文件共享和带有虚拟网络接口 (VNI) 的挂载目标时,可以启用安全的端到端加密。 当附加了此类挂载目标并挂载共享后,VNI 会检查安全组策略,以确保只有授权实例才能与共享通信。

Stunnel 是一款开源、多功能、跨平台的应用程序,提供通用的 TLS / SSL 隧道服务。 它依赖于 OpenSSL 库来实现底层的 TLS 协议。 Stunnel 使用基于 X.509 数字证书的公钥加密技术来保障连接安全,客户端可选择通过证书进行身份验证。

如果通过 Mount Helper 实用程序建立 stunnel 连接,其加密算法为 128 位高利斯/计数器模式的先进加密标准( AES-128-GCM )( TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 )。 有关可接受的密码套件的更多信息,请参阅《 IBM Cloud Framework for Financial Services 》中的“传输中数据加密” 主题。

安装和维护 stunnel 客户端程序是您的责任。 有关更多信息,请参阅以下资源:

使用 Stunnel 进行传输中加密的先决条件

在使用此功能之前,必须满足以下要求:

  • 文件共享必须基于 rfs 配置文件,并配置为 安全组访问模式

  • 必须使用 虚拟网络接口 创建挂载目标。 计算主机和挂载目标必须是同一个 安全组 的成员。 更多信息,请参阅 创建文件共享和挂载目标

  • 必须启用传输中的数据加密。 在控制台中,可以在创建挂载目标时切换“传输中加密”。 API transit_encryption 属性接受 stunnel 值,以启用该功能。

  • 服务器上必须安装 Stunnel。 IBM Cloud® 文件服务提供了 “Mount Helper”实用程序,用于自动化计算主机上所需的任务,例如下载、配置和启动stunnel应用程序。

使用 stunnel 挂载文件共享

  1. 使用以下命令语法加载共享。 用文件共享的特定信息替换挂载路径。

    mount -t ibmshare -o stunnel 10.0.0.1:/MOUNT_PATH /mnt/MOUNT_PATH
    

    请参阅以下示例。

    ++ mount -v -o stunnel -t ibmshare 10.240.64.24:/EAD9B8582BC84FDAB57B7A315BCA1210 /mnt/EAD9B8582BC84FDAB57B7A315BCA1210
    Debug - Locked ok:/var/lock/ibm_mount_helper.lck
    Debug - File unlocked:/var/lock/ibm_mount_helper.lck
    Debug - Locked ok:/var/lock/ibm_mount_helper.lck
    Debug - RunCmd: ListNfsMounts (mount -t nfs,nfs4)
    Debug - Existing nfs/nfs4 mounts found:0
    Debug - RunCmd: ListNfsMounts (mount -t nfs,nfs4)
    Debug - Existing nfs/nfs4 mounts found:0
    Debug - Local port 10001 will be used for setting up next stunnel
    Debug - Starting stunnel for mounting /EAD9B8582BC84FDAB57B7A315BCA1210
    Debug - Stunnel conf file created /etc/stunnel/ibmshare_EAD9B8582BC84FDAB57B7A315BCA1210.conf
    Debug - Attempting to start stunnel using /etc/stunnel/ibmshare_EAD9B8582BC84FDAB57B7A315BCA1210.conf
    Debug - Attempting mount of /EAD9B8582BC84FDAB57B7A315BCA1210 on the local host
    Debug - RunCmd: Mount using stunnel  (mount -t nfs4 -o sec=sys,nfsvers=4.1,rw,port=10001 127.0.0.1:/EAD9B8582BC84FDAB57B7A315BCA1210 /mnt/EAD9B8582BC84FDAB57B7A315BCA1210 -v)
    Debug - Stunnel mount was successful
    Debug - File unlocked:/var/lock/ibm_mount_helper.lck
    
  2. 通过检查系统日志来验证连接,以确认 stunnel 正在运行且连接已成功建立。 您也可以运行以下命令查看附加文件系统:

    df -h
    

如何对 NFS 实施 no_root_squash(可选)

默认情况下,NFS 会将所有以root权限创建的文件的所有权降级为 nobody 用户。 这一安全功能可防止共享权限,除非提出申请。

通过配置 no_root_squash,root 客户端可以保留远程 NFS 文件共享的 root 权限。

对于 NFSv4.1,将 nfsv4 域设置为:slnfsv4.com,并启动 rpcidmapd 或您操作系统中使用的类似服务。

  1. 在主机端,请通过 /etc/idmapd.conf 配置域名设置。

    $ vi /etc/idmapd.conf
    [General]
    #Verbosity = 0
    #The following should be set to the local NFSv4 domain name
    #The default is the host's DNS domain name.
    Domain = slnfsv4.com
    [Mapping]
    Nobody-User = nobody
    Nobody-Group = nobody
    
  2. 运行 nfsidmap -c