IBM Cloud Docs
IBM Cloud File Share Mount Helper 实用程序

IBM Cloud File Share Mount Helper 实用程序

Mount Helper 是一款开源自动化工具,用于配置和建立计算主机与文件共享之间的安全通信。 它确保服务器与区域或地区文件共享之间的通信是加密的。

分区共享的 IPsec 封装连接

该实用程序使用 strongSwan 和 swanctl 在运行 Linux 操作系统的计算主机上配置 IPsec。

File Storage for VPC IPsec 连接需要相互认证。 挂载助手会从元数据服务中检索实例或裸机服务器身份令牌。 然后,它会使用身份令牌请求创建实例或裸机服务器身份证书。

安装帮助程序每 45 分钟发出一次新证书请求,因为证书的生存期为 1 小时。 新证书在旧证书到期之前生成,以确保无缝连接。 出于安全原因,将使用较短的生命周期来生成证书。

您可以将该实用程序用于加密或未加密的连接。 对于加密连接,挂载助手会使用设置为 httphttps 的元数据服务协议选项。 有关详细信息,请参阅 metadata_service 实例供应裸机服务器供应 选项的 API 参考。

Stunnel 地区股份的安全连接

该实用程序可在运行 Linux 操作系统的计算主机上安装 stunnel。 Stunnel 需要一个 pem 文件。 由于 stunnel 是在客户端模式下使用的,因此可以使用发行版附带的 pem。

要求

限制

  • 无法在多个区域中使用相同的证书。

  • 仅 Linux 主机支持挂载助手。 有关支持的发行版,请参见表格:

    下表显示了所支持的主机操作系统版本。
    受支持的操作系统 受支持的操作系统 受支持的操作系统
    UBUNTU_2204 UBUNTU_2404 SAP_SLES_15_SP3_HANA
    RHEL_8 [8.4, 8.6, 8.8, 8.10] RHEL_9 [9.0, 9.2, 9.4] SAP_SLES_15_SP3_APPLICATIONS
    CENTOS_STREAM_9 CENTOS_STREAM_10 SAP_SLES_15_SP4_HANA
    DEBIAN_11 DEBIAN_12 SAP_SLES_15_SP4_APPLICATIONS
    ROCKYLINUX_8 [8.9, 8.10] ROCKYLINUX_9 [9.4, 9.5]
  • 不支持在 Red Hat Enterprise Linux CoreOS 上安装挂载辅助程序。

安装和配置安装帮助程序

登录要挂载文件共享的计算主机。

然后,您可以直接从 GitHub, 下载软件包,或从源代码中构建实用程序

要在裸机服务器和文件共享之间建立加密连接,请下载 Mount Helper 版本 0.2.1。

下载安装包

  1. 从 GitHub下载 Mount Helper 软件包。

    curl -LO https://github.com/IBM/vpc-file-storage-mount-helper/releases/download/latest/mount.ibmshare-latest.tar.gz
    
  2. 抽取压缩文件。

    tar -xvf mount.ibmshare-latest.tar.gz
    

    该文件包含以下项: 安装和卸载脚本,rpmdeb 软件包,根 CA 证书以及配置文件。

    已关闭环境: 要在没有因特网连接的虚拟服务器实例上安装 Mount Helper,请基于操作系统在 VSI 上创建或更新本地存储库。 将安装帮助程序包及其依赖关系复制到本地目录。

安装挂载助手以挂载区域文件共享

  1. 要安装安装帮助程序和所有依赖项,请使用以下脚本并指定要安装文件共享的区域。

    ./install.sh region=us-south
    

    region 参数用于复制特定区域的根 CA 证书。 如果未指定区域,那么该实用程序将复制所有根 CA 证书。 下表显示了可用于指定区域的值。

    此表显示了脚本接受的区域值。
    地区 新值 先前的价值
    澳大利亚——悉尼 au-syd syd
    巴西 - 圣保罗 br-sao sao
    加拿大 - 蒙特利尔 ca-mon
    加拿大 - 多伦多 ca-tor tor
    德国——法兰克福 eu-de fra
    日本 - 大阪 jp-osa osa
    日本 - 东京 jp-tok tok
    西班牙 - 马德里 eu-mad mad
    英国 - 伦敦 eu-gb lon
    美国 - 华盛顿特区 us-east wdc
    美国 - 德克萨斯州达拉斯市 us-south dal
  2. 可选-每个安装映像都随附一个包含映像文件的校验和值的文件。 例如,映像文件 ibmshare-0.0.1.tar.gz 随附了包含校验和值的 ibmshare-0.0.1.tar.gz.sha256 文件。 要验证下载的软件包的完整性,请使用以下命令。

    curl -LO https://github.com/IBM/vpc-file-storage-mount-helper/releases/download/latest/mount.ibmshare-latest.tar.gz.sha256
    
    sha256sum -c mount.ibmshare-latest.tar.gz.sha256
    

    成功的响应显示 "OK"。 输出结果如下。

    # sha256sum -c mount.ibmshare-latest.tar.gz.sha256
    ./mount.ibmshare-latest.tar.gz: OK
    
  3. 可选-缺省情况下,证书持续 1 小时,每 45 分钟访存一次新证书。 但是,您可以将配置文件 /etc/ibmcloud/share.conf 中的 certificate_duration_seconds 选项修改为不同的时间间隔。 新值必须介于 5 分钟到 1 小时之间,并以秒表示。

    certificate_duration_seconds = 600
    

    certificate_duration_seconds 值的有效范围为 300-3600 秒。 当当前证书达到其生命周期的 70% 时,将更新证书。

  4. 可选-如果要使用新的到期时间立即更新证书,请运行以下命令。

    /sbin/mount.ibmshare -RENEW_CERTIFICATE_NOW
    

安装挂载助手以挂载区域文件共享

  1. 要安装安装助手和所有依赖项,请使用以下脚本并指定 --stunnel 选项。
    ./install.sh --stunnel
    
  2. 可选-每个安装映像都随附一个包含映像文件的校验和值的文件。 例如,映像文件 ibmshare-0.0.1.tar.gz 随附了包含校验和值的 ibmshare-0.0.1.tar.gz.sha256 文件。 要验证下载的软件包的完整性,请使用以下命令。
    curl -LO https://github.com/IBM/vpc-file-storage-mount-helper/releases/download/latest/mount.ibmshare-latest.tar.gz.sha256
    
    sha256sum -c mount.ibmshare-latest.tar.gz.sha256
    
    成功的响应显示 "OK"。 输出结果如下。
    # sha256sum -c mount.ibmshare-latest.tar.gz.sha256
    ./mount.ibmshare-latest.tar.gz: OK
    

从源代码构建安装帮助程序实用程序

  • 在基于 Debian的实例上,运行以下命令:

    apt-get update -y
    apt-get install git make python3 -y
    git clone https://github.com/IBM/vpc-file-storage-mount-helper.git
    cd vpc-file-storage-mount-helper
    make build-deb
    
  • 在基于 RPM 的实例上,运行以下命令:

    yum update -y
    yum install git make python3 rpm-build -y
    git clone https://github.com/IBM/vpc-file-storage-mount-helper.git
    cd vpc-file-storage-mount-helper
    make build-rpm
    

使用安装帮助程序安装文件共享

  1. 在服务器上创建一个目录。
    mkdir /mnt/share-test
    
  2. 使用以下语法运行 mount 命令。

安装分区文件共享

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

mount -t ibmshare -o secure=true 10.0.0.1:/MOUNT_PATH /mnt/MOUNT_POINT

命令发出后,实用程序会创建证书签名请求(csr),并调用元数据服务获取中间证书和终端对等证书。 它会解析挂载命令行参数,并创建 /etc/swanctl/conf.d/type_ibmshare_.conf. strongSwan 服务使用此配置文件建立 IPsec 连接。 然后,脚本加载 IPsec 连接并调用 NFS mount 命令。 成功回复的示例如下

   [root@my-eit-instance ~]# mount -t ibmshare -o secure=true 10.240.64.5:/0c937ac3_814e_4a7c_99b8_719ec3cad7fd  /mnt/share-test
   Info  - IpSec using StrongSwan(5.7.2)
   Debug - RunCmd: /usr/sbin/swanctl --list-conns
   Debug - Config data unchanged:/etc/strongswan/swanctl/conf.d/type_ibmshare_10.240.64.5.conf
   Debug - StrongSwan cleanup config files Total(1) Mounted(0) Deleted(0) Recent(1)
   Debug - RunCmd: ReloadConfig (/usr/sbin/swanctl --load-all)
   Debug - File unlocked:/var/lock/ibm_mount_helper.lck
   Debug - RunCmd: MountCmd (mount -t nfs4 -o sec=sys,nfsvers=4.1,rw 10.240.64.5:/0c937ac3_814e_4a7c_99b8_719ec3cad7fd /mnt/share-test)
   Debug - RunCmd: LoadCert (openssl x509 -in /etc/strongswan/swanctl/x509ca/type_ibmshare_int.crt -noout -dates -subject -issuer)
   Debug - RunCmd: LoadCert (openssl x509 -in /etc/strongswan/swanctl/x509ca/type_ibmshare_root_dal.crt -noout -dates -subject -issuer)
   Share successfully mounted:

建议不要将安装详细信息添加到 /etc/fstab。 对于自动 fstab 安装请求,可能无法及时建立 IPsec 连接。

挂载区域文件共享

Beta

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

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

命令发送后,实用程序将启动 stunnel 连接,并调用 NFS mount 命令。 成功回复的示例如下

在 mount 命令中添加 -v 选项可生成调试输出,这有助于找出挂载过程中的任何问题。

[root@my-eit-instance ~]#  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

更新安装帮助程序

要更新安装包,请再次运行 install.sh 脚本。

./install.sh

当你想升级 stunnel 软件包时,也可以使用 --stunnel 选项。

卸载安装帮助程序

以下命令将卸载该实用程序。

./uninstall.sh

故障诊断提示

  • 如果 IPsec 安装失败,请检查标准输出上显示的 mount-helper 安装脚本日志。

  • 如果正确安装了 IPsec 但未能启动 IPsec 服务,请检查 charon 日志。 可以在以下某个基于操作系统映像的日志文件中找到 charon 日志: /var/log/syslog/var/log/messages

  • 在尝试安装命令之前,可以在另一个终端上运行以下 swanctl 命令以检查 IPsec 连接协商日志。

    swanctl -T
    
  • 要手动启动或断开 IPsec 连接,请使用下列其中一个命令。

    ipsec up <connection-name>
    ipsec down <connection-name>
    
  • 如果 IPsec 命令不可用,请使用以下 swanctl 命令。

    swanctl -i --ike <connection-name>
    swanctl -i --child <connection-name>
    swanctl -t --ike <connection-name>
    
  • 要列出使用 ipsec 加密的活动连接,请使用以下命令之一。

    ipsec status
    

    swanctl -l
    
  • 用于重新启动 strongSwan 服务的命令。

    systemctl restart strongswan
    
  • 安装帮助程序日志的位置。

    /opt/ibm/mount-ibmshare/mount-ibmshare.log
    
  • stunnel日志的位置:

    /var/log/stunnel/ibmshare_[MOUNT_PATH].log
    

后续步骤

默认情况下,NFS 会将以根权限创建的任何文件降级为 nobody 用户。 这一安全功能可防止共享权限,除非提出申请。 通过配置 no_root_squash,root 客户端可以保留远程 NFS 文件共享的 root 权限。 对于 NFSv4.1,将 nfsv4 域设置为:slnfsv4.com,并启动 rpcidmapd 或操作系统使用的类似服务。 更多信息,请参阅 实施 no_root_squash for NFS (可选)

了解有关 管理文件共享 的信息。