传输加密功能通过TLS协议保护您的ECS实例与NAS服务之间网络传输链路上的数据安全,确保您的数据在传输过程中不被窃取或纂改。本文介绍如何使用NAS客户端工具挂载文件系统实现数据传输加密。
工作原理
NAS客户端工具定义了一个网络文件系统类型alinas,与标准mount命令兼容。在ECS实例挂载alinas类型文件系统时,如果指定tls
参数,NAS客户端工具会启动一个Stunnel监听进程,该进程转发并加密ECS实例对NAS服务器的访问,同时会触发一个后端进程aliyun-alinas-mount-watchdog
保障Stunnel监听进程的可用性。
使用说明
- 仅支持通用型NAS NFS文件系统。
- 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客户端。
- 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
- Alibaba Cloud Linux
- 安装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
- Alibaba Cloud Linux和CentOS
- 检查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 启用数据传输加密。 - NFSv3协议
- 执行mount -l命令,查看挂载结果。如果回显包含如下类似信息,说明挂载成功。
挂载成功后,您可以执行df -h命令,查看当前文件系统的容量信息。
- 可选:配置开机时自动挂载。
为避免已挂载文件系统的ECS实例重启后,挂载信息丢失,您可以通过在Linux ECS实例中配置/etc/fstab文件,实现在ECS实例重启时NFS文件系统自动挂载。
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参数,修改为未被占用的端口号,然后重新挂载文件系统。