传输加密功能通过TLS协议保护您的ECS实例与NAS服务之间网络传输链路上的数据安全,确保您的数据在传输过程中不被窃取或篡改。本文介绍如何使用NAS客户端工具挂载文件系统实现数据传输加密。
工作原理
NAS客户端工具定义了一个网络文件系统类型alinas,与标准mount命令兼容。在ECS实例挂载alinas类型文件系统时,如果指定tls
参数,NAS客户端工具会启动一个Stunnel监听进程,该进程转发并加密ECS实例对NAS服务器的访问,同时会触发一个后端进程aliyun-alinas-mount-watchdog
保障Stunnel监听进程的可用性。
前提条件
使用说明
开启传输加密功能时,如果您的目标ECS实例上对应目录(例如/mnt)已挂载NFS协议文件系统,请先卸载NFS协议文件系统,再根据本文重新挂载NFS协议文件系统。关于如何卸载NFS协议文件系统的操作,请参见通过NAS控制台卸载挂载目录。
仅支持通用型NAS NFS协议文件系统。
NAS客户端支持的操作系统
操作系统类型
操作系统版本
Alibaba Cloud Linux
Alibaba Cloud Linux 2.1903 64位
Alibaba Cloud Linux 3.2104 LTS 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客户端
Alibaba Cloud Linux
下载客户端。
wget https://aliyun-encryption.oss-cn-beijing.aliyuncs.com/aliyun-alinas-utils-1.3-0.20240914145556.91a304.al7.noarch.rpm
安装客户端。
sudo yum install aliyun-alinas-utils-*.rpm
检查NAS客户端安装结果。
which mount.alinas
如果回显包含如下类似信息,说明NAS客户端安装成功。
CentOS
下载客户端。
CentOS 7.x
wget https://aliyun-encryption.oss-cn-beijing.aliyuncs.com/aliyun-alinas-utils-1.1-8.el7.noarch.rpm
CentOS 8.x
wget https://aliyun-encryption.oss-cn-beijing.aliyuncs.com/aliyun-alinas-utils-1.1-8.el8.noarch.rpm
安装客户端。
sudo yum install aliyun-alinas-utils-*.rpm
检查NAS客户端安装结果。
which mount.alinas
如果回显包含如下类似信息,说明NAS客户端安装成功。
Red Hat Enterprise Linux
下载客户端。
Red Hat Enterprise Linux 7.x
wget https://aliyun-encryption.oss-cn-beijing.aliyuncs.com/aliyun-alinas-utils-1.1-8.el7.noarch.rpm
Red Hat Enterprise Linux 8.x
wget https://aliyun-encryption.oss-cn-beijing.aliyuncs.com/aliyun-alinas-utils-1.1-8.el8.noarch.rpm
安装客户端。
sudo yum --disablerepo=rhui-rhel-7-server-rhui-extras-debug-rpms install aliyun-alinas-utils-*.rpm
检查NAS客户端安装结果。
which mount.alinas
如果回显包含如下类似信息,说明NAS客户端安装成功。
Ubuntu和Debian
下载客户端。
wget https://aliyun-encryption.oss-cn-beijing.aliyuncs.com/aliyun-alinas-utils-1.1-8.deb
安装客户端。
sudo apt update sudo dpkg -i aliyun-alinas-utils-*.deb sudo apt-get install -f sudo dpkg -i aliyun-alinas-utils-*.deb
检查NAS客户端安装结果。
which mount.alinas
如果回显包含如下类似信息,说明NAS客户端安装成功。
步骤二:以传输加密方式挂载文件系统
挂载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),如果是子目录,请您确保子目录是NAS文件系统中实际已存在的目录。
当前服务器上待挂载的本地路径:Linux ECS实例的任意子目录(例如:/mnt),请您确保子目录在本地文件系统存在。
vers
NFS协议文件系统版本。
vers=3:使用NFSv3协议挂载文件系统。
vers=4.0:使用NFSv4.0协议挂载文件系统。
tls
启用数据传输加密。
执行
mount -l
命令,查看挂载结果。如果回显包含如下类似信息,说明挂载成功。
挂载成功后,您可以执行df -h命令,查看当前文件系统的容量信息。
可选:配置开机时自动挂载。
为避免已挂载文件系统的ECS实例重启后,挂载信息丢失,您可以通过在Linux ECS实例中配置/etc/fstab文件,实现在ECS实例重启时NFS协议文件系统自动挂载。
打开/etc/fstab配置文件,添加挂载配置。
file-system-id.region.nas.aliyuncs.com:/ /mnt alinas _netdev,tls 0 0
示例中主要参数说明,请参见挂载NFS协议文件系统。其余参数说明如下。
参数
说明
_netdev
防止客户端在网络就绪之前开始挂载文件系统。
0(tls后第一项)
非零值表示文件系统应由dump备份。对于NAS文件系统而言,此值默认为0。
0(tls后第二项)
该值表示fsck在启动时检查文件系统的顺序。对于NAS文件系统而言,此值默认为0,表示fsck不应在启动时运行。
执行
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参数,修改为未被占用的端口号,然后重新挂载文件系统。