服务器消息块 (SMB) 客户机文件系统
SMB 客户机文件系统基于 SMB 协议版本 2.1 和版本 3.0.2。 您可以使用 SMB 客户机文件系统来访问 SMB 服务器上的文件。
SMB 服务器是运行 Windows Server 2012 , Windows Server 2016 或 Windows Server 2019 操作系统的服务器。 在每种服务器操作系统类型中,都可以将目录导出为 共享。 然后,可通过使用 SMB 客户端文件系统将此共享挂载到AIX逻辑分区上。 通过使用 SMB 客户机文件系统,可以将 SMB 服务器上的共享作为 AIX 逻辑分区上的本地文件系统进行访问。 您可以使用 SMB 客户机文件系统在 SMB 服务器上创建,删除,读取和写入文件和目录,还可以修改对这些文件和目录的访问持续时间。 但是,您无法更改这些文件和目录的所有者或访问许可权。
- SMB 3.0.2 安全方言协商
您可以使用 SMB 协议3.0.2 版将 SMB 服务器上的共享挂载到AIX®虚拟文件系统 (VFS)。
SMB 3.0.2 方言服务器提供安全的方言协商,以防止安全风险。 协商 SMB 3.0.2 方言时, SMB 客户机必须发送强制签名请求以验证协商信息。
- SMB 3.0.2 签名
- SMB 协议 3.0.2 使用更新的加密算法进行签名。 高级加密标准 (AES)-基于密码的消息认证代码 (CMAC) AES-128-CMAC ,通过签署外发消息并验证入局消息来确保 SMB 客户机与 SMB 服务器之间交换的消息的完整性。
- SMB 3.0.2 加密
SMB 加密提供 SMB 数据的端到端加密,并保护数据免受不可信网络上发生的窃听。 SMB 加密可以按共享配置,也可以针对整个文件服务器配置,并且可以针对数据遍历不可信网络的各种场景启用。
- SMB 3.0.2 文件名和目录名称不区分大小写
- SMB 3.0.2 客户机仅支持与基于 Windows 的 SMB 服务器内联的不区分大小写的文件或目录名称。
- SMB 3.0.2 支持 Unicode (或通用编码字符集) 变换格式 8 位 (UTF-8)
- SMB 3.0.2 支持 UTF-8 代码集,并允许转换 SMB 服务器所需的 UTF-16 代码集。 由于 AIX 操作系统支持 UTF-8 代码集,因此从 AIX 逻辑分区传输或传输到 AIX 逻辑分区的文本数据采用 UTF-8 格式。 AIX SMB 3.0.2 客户机在将文本数据发送到 SMB 服务器之前将 UTF-8 代码集转换为 UTF-16 代码集,并在从 SMB 服务器接收文本数据之后将 UTF-16 代码集转换为 UTF-8 代码集。
- SMB 3.0.2 支持实时更新操作
- SMB 3.0.2 支持具有有限功能的实时更新操作。 在 SMB 3.0.2 客户机中,仅当未安装 SMB 共享时,才允许 "实时更新" 操作; 否则, "实时更新" 操作将失败。 因此,必须先卸装所有 SMB 共享,然后再启动 "实时更新" 操作,并在 "实时更新" 操作完成后安装 SMB 共享。 在 "实时更新" 操作期间,不得安装 SMB 共享。
- SMB 3.0.2 支持修改服务主体名称
- 服务主体名称 (SPN) 是服务实例的唯一标识。 SPNs 由 Kerberos 认证用于将服务实例与服务登录帐户相关联。 缺省情况下, SPN 由 SMB 客户机文件系统自动构造为 cifs/<smbServerHostName>。 安装 SMB 客户机文件系统时,可以修改缺省 SPN 的值。
安装 SMB 客户机文件系统
AIX 操作系统中的 SMB 客户机文件系统要求基于 Kerberos的 GSSAPI 使用 SMB 协议 V 2.1 或 V 3.0.2来启动用户认证的会话。 在 AIX 操作系统中, GSSAPI 由 IBM® 网络认证服务 (NAS) V 1.16.1.0或更高版本文件集中的用户空间库提供。 SMB V 3.0.2 使用 AIX OpenSSL 库来生成用于签名和加密的密钥。
- IBM AIX 7.2 以及之后的 IBM AIX 7.2 技术等级 5、Service Pack 6。
- IBM AIX 7.1
对于 IBM AIX 7.2 技术级别 5、Service Pack 7 及更高版本,您必须安装 OpenSSL 3.0.5 版本的 openssl.base 文件集。 这些文件集包含在 IBM AIX 扩展包和 AIX Web 下载包程序中。
要在 AIX 逻辑分区上安装 SMB 客户机文件系统,请完成以下步骤:
- 访问 AIX Web 下载软件包程序网页,使用 IBMid 和密码登录。
- 选择 SMB CLIENT for AIX 3.0.2 选项,然后单击 继续。
- 选择 SMB 客户端文件集,用于 AIX 版本 7.1, SMB 客户端文件集,用于 AIX 版本 7.2 直到 7.2 TL5 SP6, SMB 客户端文件集适用于 AIX 版本 7.2 TL5 SP7 直到 AIX 版本 7.3 TL0 或 SMB 客户端文件集,适用于 AIX 版本 7.3 TL1 之后的版本,然后单击 下载。注: 您的 IBM 凭证必须有权下载 SMB 客户机文件系统软件包。 否则,无法下载软件包。
- 使用 installp 命令安装 smbc.rte 软件包。
安装 smbc.rte 软件包时,将创建设备
nsmbc0
。 此设备允许 mount 命令使用 SMB 客户机协议版本 2.1 或版本 3.0.2在 SMB 服务器与 SMB 客户机文件系统之间建立连接。
将 SMB 客户机文件系统安装为本地安装点
mount -v smbc -n windows_server/Kerberos_username/password_for_Kerberos_user \
-o wrkgrp=workgroup,[[port=139|445],[signing=required|enabled],[pver=2.1|3.0.2|auto], \
[encryption=desired|required|disabled],[secure_negotiate=desired|required|disabled] \
[spn=cifs/<smbServerHostName>] share_point_to_mount_created_on_windows local_mount_point
例如,mount -v smbc -n llm140.xyz.com/cec102usr1/Passw0rd \
-o "wrkgrp=SMB_302.test,port=445,signing=required,encryption=required, \
secure_negotiate=desired,pver=auto,spn=cifs/llm140.xyz.com" /some_share /mnt
可以使用 mount 命令的 -o 标志指定以下参数。 参数必须仅用逗号分隔。 请勿在逗号前后插入空格。
- fmode
- 将文件或目录设置为八进制方式以获取访问许可权。 缺省值为 755。
- uid
- 在安装操作期间向文件分配用户标识。 缺省值为
root
。 - gid
- 在安装操作期间将组标识分配给文件。 缺省值为
system
。 - wrkgrp
- 指定 SMB 服务器所属的工作组。 此参数对于安装 SMB 客户机文件系统是必需的。
- 端口
- 指定端口号。 有效值为 445 和 139。 缺省值为 445。 仅当指定的服务器地址为 IPv4 格式时,才支持端口 139。
- 帕弗
- 指定用于与 SMB 服务器通信的 SMB 协议版本。 有效值为 2.1, 3.0.2和
auto
。 指定auto
值时,将根据指定的 SMB 服务器使用 SMB 协议版本 2.1 或版本 3.0.2 。 - 签名
- 指定 SMB 客户机文件系统是否需要数字签名进行通信。 有效值为
enabled
和required
。 当 signing 参数设置为enabled
时,除非 SMB 服务器文件系统需要数字签名进行通信,否则 SMB 客户机文件系统不会对数据包进行数字签名。 当 signing 参数设置为required
时, SMB 客户机文件系统必须对用于通信的数据包进行数字签名。 如果未使用 mount 命令指定signing
参数的值,那么将从使用 smbctune 命令设置的内核可调参数值中使用缺省值。 - secure_协商
- 指定 SMB 客户机文件系统是否需要安全的方言协商功能。 有效值为
desired
,required
和disabled
。 如果未在 mount 命令中指定此参数,那么将使用使用 smbctune 命令设置的内核可调参数值中的缺省值。 - 加密 (encryption)
- 指定 SMB 客户机文件系统是否需要加密。 有效值为
desired
,required
和disabled
。 如果未在 mount 命令中指定此参数,那么将使用使用 smbctune 命令设置的内核可调参数值中的缺省值。 - 斯普恩
- 指定 SMB 客户端挂载点必须使用的 服务 princip 名称 (SPN)。 spn 参数的格式为 cifs/<smbServerHostName>,其中 smbServerHostName 是 SMB 服务器的标准域名 (FQDN) 或 Kerberos 解析为 SMB 服务器的名称。 缺省情况下, SPN 由 SMB 客户机文件系统自动构造为 cifs/<smbServerHostName>。
针对 SMB 客户机文件系统的 Kerberos 认证
在 SMB 客户机安装点中的文件上运行文件系统命令 (例如 read 命令) 时,将向 SMB 服务器发送请求以读取该文件。 已认证的会话标识也作为此读请求的一部分发送。 SMB 服务器使用此会话标识来确定用户是否已向服务器认证并对文件执行读操作。 因此, SMB 服务器授权访问该文件,并控制是否可以对该文件执行操作。
mount 命令的 fmode 选项允许 SMB 客户机文件系统上的 root 用户在查询 SMB 服务器之前控制对 SMB 服务器上的文件的访问。 如果未指定 fmode 选项的值,那么 fmode 选项将使用缺省值 755。 下表说明了 fmode 选项如何处理各种操作:
案例号 | 已向 SMB 服务器认证的用户 | 客户机系统上请求写访问权的用户 | 安装所有者,组和访问方式 | SMB 服务器上 SMB 服务器,组和访问方式中的文件或目录所有者 | 访问许可 (access permission) |
---|---|---|---|---|---|
情况 1 | user1 | user2 | user1, staff ,
rwxr-xr-x |
user1,人员,
rwxrwxr-x |
否 |
情况 2 | user1 | root | user1, staff ,
rwxr-xr-x |
user2, staff ,
rwxr-xr-x |
否 |
案例 3 | user1 | user1 | user1, staff ,
rwxr-xr-x |
user2, staff ,
rwxrwxr-x |
是 |
案例 4 | user1 | user1 | user1, staff ,
rwxr-xr-x |
根,系统,
rwx ------ |
否 |
案例 5 | user1 | user1 | user1, staff ,
rwxr-xr-x |
root 用户,系统,
rwxrwxrwwx |
是 |
在案例 1 中,将拒绝 user2
对文件或目录的访问,因为 SMB 客户机上安装点的安装所有者,组和方式未提供对 user2
的写访问权。
在案例 2 中,拒绝 root
用户访问该文件或目录。 即使 root
用户在 SMB 客户机上具有所有访问权, SMB 服务器认证的用户 user1
也无权访问 SMB 服务器上的文件。
在案例 3 中, user1
有权访问文件或目录,因为在安装操作期间 user1
是安装所有者,而 user1
(SMB 服务器上的组 staff
的成员) 有权访问服务器上的文件。
在案例 4 中,拒绝 user1
访问文件或目录。 即使 user1
在安装操作期间是所有者,该文件仍由 SMB 服务器上的 root
用户拥有,并且组成员和其他用户没有任何访问许可权。
在案例 5 中, user1
有权访问文件或目录,因为指定的访问方式指定所有组成员和其他用户的所有访问许可权。
\
) ,正斜杠键 (/
) ,冒号 (:
) ,星号 (*
) ,问号 (?
) ,小于键 (<
) ,大于键 (>
) 和竖线键 (|
)。存储的密码
SMB 客户机文件系统可以将服务器名称,用户名和密码凭证存储在 /etc/smbcred 文件中,以允许在安装 SMB 客户机文件系统时自动检索密码。 您可以使用 lssmbcred mksmbcred来查看,添加,更改和除去 /etc/smbcred 文件中的凭证。 位于 /usr/sbin/ 目录中的 chsmbcred和 rmsmbcred 命令。 将对添加到 /etc/smbcred 文件的密码进行加密。 在未指定密码的情况下安装 SMB 客户机文件系统时,将搜索 /etc/smbcred 文件以查找匹配的凭证。 如果找到匹配项,那么将使用 /etc/smbcred 文件中存储的密码。 否则,将通过标准 AIX 密码提示来提示您输入密码。
- 要检索存储的密码,服务器命名约定必须一致。 例如,如果使用 IP 地址而不是主机名或标准域名 (FQDN) 添加凭证,那么仅当使用 IP 地址安装 SMB 客户机文件系统时才能检索密码。
- 在卸载 smbc.rte 文件集之前,请从 /etc/filesystems 文件中除去凭证条目。
/etc/filesystems 文件支持
SMB 客户机文件系统支持 /etc/filesystems 文件,以允许在系统启动操作期间自动安装文件系统。 安装文件系统时, /etc/filesystems 文件还提供对存储的服务器名称,用户名,密码和配置数据的访问权。
要在 /etc/filesystems 文件中管理 SMB 客户机文件系统,可以使用 lssmbcmnt, mksmbcmnt, chsmbcmnt和 rmsmbcmnt 命令。 您还可以手动添加 SMB 客户机文件系统条目。 将 SMB 客户机文件系统条目手动添加到 /etc/filesystems 文件时,必须将 SMB 客户机文件系统凭证存储在 /etc/smbcred 文件中。
$cat /etc/filesystems
.....................
.....................
.....................
/mnt1:
dev = /fvt_share
vfs = smbc
mount = true
options = "wrkgrp=SMB_21.FVT"
nodename = <servername>/<username>
/mnt:
dev = /fvt_share
vfs = smbc
mount = true
options = "wrkgrp=SMB_21.FVT,signing=required"
nodename = <servername>/<username>
SMIT 界面支持
- 列出 SMB 客户机安装点。
- 显示 SMB 客户机可调参数。
- 配置 SMB 客户机凭证。
- 添加或安装 SMB 客户机文件系统。
- 除去或卸装 SMB 客户机文件系统。
- 更改 SMB 客户机文件系统。
smit smbc