传输加密功能通过TLS协议保护您的ECS实例与NAS服务之间网络传输链路上的数据安全,确保您的数据在传输过程中不被窃取或纂改。本文介绍如何使用NAS客户端工具挂载文件系统实现数据传输加密。

工作原理

NAS客户端工具定义了一个网络文件系统类型alinas,与标准mount命令兼容。在ECS实例挂载alinas类型文件系统时,若指定tls参数,NAS客户端工具会启动一个Stunnel监听进程,该进程转发并加密ECS实例对NAS服务器的访问,同时会触发一个后端进程aliyun-alinas-mount-watchdog保障Stunnel监听进程的可用性。

使用说明

  • NAS客户端支持的操作系统
    操作系统类型 操作系统版本
    Alibaba Cloud Linux Alibaba Cloud 2.1903 64位
    Red Hat
    • Red Hat Enterprise Linux 7.x 64位
    • Red Hat Enterprise Linux 8.x 64位
    CentOS
    • CentOS 7.x 64位
    • CentOS 8.x 64位
    Ubuntu
    • Ubuntu 16.04 64位
    • Ubuntu 18.04 64位
    • Ubuntu 20.04 64位
    Debian
    • Debian 9.x 64位
    • Debian 10.x 64位
  • 传输加密的性能损耗

    开启传输加密的挂载与未开启传输加密的挂载相比,访问延迟会增加约10%,IOPS会下降约10%。

  • 使用NAS客户端的说明
    • NAS客户端工具使用Stunnel监听进程进行TLS加密代理。对于吞吐密集性应用,Stunnel监听进程会消耗大量CPU执行加解密操作。在极端情况下,每个挂载会占用一整个核。
    • NAS客户端传输加密功能依赖第三方证书,第三方证书需要定期更换,NAS会提前一个月通过邮件、站内信发出通知,请您关注信息并及时更新NAS客户端工具aliyun-alinas-utils版本,未更新NAS客户端工具将导致使用传输加密方式挂载的NAS文件系统在证书过期后停止响应。
    • 使用NAS客户端工具会修改您账号下ECS实例的/etc/hosts文件。即挂载文件系统时,会将新的挂载点映射写入/etc/hosts文件;卸载文件系统时,会删除之前写入的挂载点映射。
    • NAS客户端工具使用Stunnel监听进程进行TLS加密代理时,会占用127.0.1.1~127.0.255.254中的IP作为Stunnel监听进程的IP,并需要使用12049端口,请您确保目标IP和端口可用。

      您可以执行ss -ant | grep -w 12049命令判断目标端口是否被占用。若返回为空,则表示目标端口未被占用。若端口被占用,请您修改配置文件。具体操作,请参见如何修改NAS客户端配置文件

支持地域

支持美国(硅谷)地域、美国(弗吉尼亚)地域、英国(伦敦)地域和澳大利亚(悉尼)地域的通用型NAS配置传输加密。

步骤一:下载与安装NAS客户端

  1. 下载NAS客户端。
    • Alibaba Cloud Linux
      wget https://aliyun-encryption.oss-cn-beijing.aliyuncs.com/aliyun-alinas-utils-1.0-1.al7.noarch.rpm
    • Red Hat Enterprise Linux 7.x和CentOS 7.x
      wget https://aliyun-encryption.oss-cn-beijing.aliyuncs.com/aliyun-alinas-utils-1.0-1.el7.noarch.rpm
    • Red Hat Enterprise Linux 8.x和CentOS 8.x
      wget https://aliyun-encryption.oss-cn-beijing.aliyuncs.com/aliyun-alinas-utils-1.0-1.el8.noarch.rpm
    • Ubuntu和Debian
      wget https://aliyun-encryption.oss-cn-beijing.aliyuncs.com/aliyun-alinas-utils-1.0-1.deb
  2. 安装NAS客户端。
    • Alibaba Cloud Linux和CentOS
      sudo yum install aliyun-alinas-utils-*.rpm
    • Red Hat Enterprise Linux
      sudo yum --disablerepo=rhui-rhel-7-server-rhui-extras-debug-rpms install aliyun-alinas-utils-*.rpm
    • Ubuntu和Debian
      sudo apt update
      sudo dpkg -i aliyun-alinas-utils-*.deb
      sudo apt-get install -f
      sudo dpkg -i aliyun-alinas-utils-*.deb
  3. 检查NAS客户端安装结果。
    which mount.alinas
    若回显包含如下类似信息,说明NAS客户端安装成功。安装客户端回显

步骤二:以传输加密方式挂载文件系统

  1. 挂载NFS文件系统。
    • NFSv3协议
      sudo mount -t alinas -o tls,vers=3 file-system-id.region.nas.aliyuncs.com:/ /mnt
    • NFSv4.0协议
      sudo mount -t alinas -o tls,vers=4.0 file-system-id.region.nas.aliyuncs.com:/ /mnt
    挂载命令中的参数说明如下表所示。
    说明 挂载文件系统时,NAS客户端工具将自动使用最佳参数进行挂载,无需手动添加。更多信息,请参见挂载参数说明
    参数 说明
    file-system-id.region.nas.aliyuncs.com:/ /mnt 表示<挂载点>:<NAS文件系统目录> <当前服务器上待挂载的本地路径>,请根据实际情况替换。
    • <挂载点>:您可以登录NAS控制台,在文件系统详情页获取挂载地址。更多信息,请参见查看挂载点
    • <NAS文件系统目录> :NAS的根目录(/)或任意子目录(例如:/share),如果是子目录,请您确保子目录已存在。
    • <当前服务器上待挂载的本地路径>:Linux ECS实例的任意子目录(例如:/mnt),请您确保子目录存在。
    vers NFS文件系统版本。
    • vers=3:使用NFSv3协议挂载文件系统。
    • vers=4.0:使用NFSv4.0协议挂载文件系统。
    tls 启用数据传输加密。
  2. 执行mount -l命令,查看挂载结果。
    若回显包含如下类似信息,说明挂载成功。加密挂载回显挂载成功后,您可以执行df -h命令,查看当前文件系统的容量信息。
  3. 可选:配置开机时自动挂载。
    为避免已挂载文件系统的ECS实例重启后,挂载信息丢失,您可以通过在Linux ECS实例中配置/etc/fstab文件,实现在ECS实例重启时NFS文件系统自动挂载。
    1. 打开/etc/fstab配置文件,添加挂载配置。
      file-system-id.region.nas.aliyuncs.com:/ /mnt alinas _netdev,tls 0 0
      示例中主要参数说明,请参见挂载参数说明。其余参数说明如下。
      参数 说明
      _netdev 防止客户端在网络就绪之前开始挂载文件系统。
      0(tls后第一项) 非零值表示文件系统应由dump备份。对于NAS文件系统而言,此值默认为0。
      0(tls后第二项) 该值表示fsck在启动时检查文件系统的顺序。对于NAS文件系统而言,此值默认为0,表示fsck不应在启动时运行。
    2. 执行reboot命令,重启ECS实例。
      说明 在重启ECS实例前,请确认手动挂载成功,避免ECS实例重启失败。另外,如果自动挂载配置成功,在ECS实例重启后,可以通过df -h命令查看到挂载的NAS文件系统。

NAS客户端日志

您可以通过访问/var/log/aliyun/alinas/路径下的NAS客户端日志定位挂载报错信息。同时可以通过修改日志配置文件/etc/aliyun/alinas/alinas-utils.conf中的参数,定制NAS客户端日志内容。修改配置文件后,请您执行sudo service aliyun-alinas-mount-watchdog restart命令,重启后端watchdog进程。

日志配置文件中的重要参数如下:
参数 说明
logging_level 日志级别。默认为INFO。
logging_max_bytes 日志文件的最大容量。默认为1048576字节,即单个日志文件最大为1 MB。
logging_file_count 日志文件的最大保留数量。默认为10,即最多保留10个日志文件。
stunnel_debug_enabled Stunnel监听进程debug日志。默认为false,开启时会占用大量存储容量。
stunnel_check_cert_hostname 检查证书域名。默认为false。
stunnel_check_cert_validity 检查证书合法性。默认为false。

错误排查

  • 问题现象
    挂载文件系统时,返回如下报错信息:端口占用报错
  • 可能原因

    Stunnel监听进程的IP或12049端口被占用,导致文件系统挂载失败。

  • 解决方案
    • 方案一:找到并结束占用12049端口的进程,然后重新挂载文件系统。
    • 方案二:修改NAS客户端工具配置文件/etc/aliyun/alinas/alinas-utils.conf中的proxy_port参数,修改为未被占用的端口号,然后重新挂载文件系统。修改端口号