如何配置 NFS 共享文件夹以使用 Kerberos?

如何配置 NFS 共享文件夹以使用 Kerberos?

部分文章为机器自动翻译,文中可能有文法错误或语义模糊之处。

目的

Kerberos 是一种网络协议,可在不受信任的网络中对两个或多个主机之间的服务请求进行身份验证。本文将指导您在 Windows 服务器已设置为 Kerberos 服务器的情况下,如何在 Linux 客户端上以 Kerberos 选项挂载 Synology NFS 共享文件夹。

注意事项:

  • Kerberos 不支持为单个域用户分配独立的权限设置。有关权限设置的指导,请参阅本文

环境

  • Windows Server 2016 或以上版本
  • Linux 客户端上的 Ubuntu 20.04 或以上版本
  • DSM 版本 6.2.4 及以上版本

解决方案

前提条件

  • 请同步 Windows 服务器、Linux 客户端和 Synology NAS 的系统时间和时区。
  • 为 Windows 服务器和 Synology NAS 分别分配静态 IP 地址。
  • 将 Windows 服务器配置为域控制器。
  • 配置两个以 Synology NAS 和 Ubuntu 主机名命名的域用户。
  • 在 AD DNS 服务器中为 Synology NAS 配置反向查找区域和 A 记录。
  • 为 Synology NAS 和 Ubuntu 生成 keytab 文件。更多信息请参阅本文

配置完成后,Windows 服务器、Linux 客户端和 Synology NAS 应分别承担以下角色:

Windows 服务器

Linux 客户端

Synology NAS

角色

  • Active Directory 域控制器
  • DNS 服务器
  • Kerberos 服务器
  • Kerberos 客户端
  • NFS 客户端
  • Kerberos 客户端
  • NFS 服务器

设置 Ubuntu NFS 客户端1

  1. 在 Linux 电脑上打开命令控制台。
  2. 安装 Kerberos 和 NFS 软件包,并使用以下命令启动服务:
    sudo apt-get install krb5-user
    sudo apt-get install nfs-common
    systemctl start rpc-gssd.service
  3. 配置 /etc/krb5.conf:
    vim /etc/krb5.conf
  4. 用以下内容替换原有内容(将“EXAMPLE.COM”更改为您的 Active Directory 域控制器的域名):
    [libdefaults]
    default_realm = EXAMPLE.COM
    [domain_realm]
    .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM
  5. 配置 /etc/systemd/resolved.conf:
    vim /etc/systemd/resolved.conf
  6. 添加以下配置:
    [Resolve]
    DNS={Windows 服务器的 IP}
    Domains=example.com
    DNSStubListener=no
    如果您使用的是 Ubuntu 20.04,请运行下方命令。如果您使用的是 Ubuntu 22.04 或更高版本,请跳至下一步。
    ln --symbolic --force /run/systemd/resolve/resolv.conf /etc/resolv.conf
  7. 使用以下命令重启服务并生成所需文件:
    systemctl restart systemd-resolved
  8. krb5.keytab 文件放置在 Ubuntu 的 /etc/ 目录下。
  9. 检查密钥是否已正确导入:
    klist -k /etc/krb5.keytab

在 Synology NAS 上设置 NFS 服务器

适用于 DSM 7.0 及以上版本

适用于 DSM 6.2 及更早版本

在 Ubuntu 上挂载共享文件夹

  1. 在 Linux 电脑上打开命令控制台。
  2. 运行以下命令挂载共享文件夹:
    mount -t nfs -o nfsvers=4,sec=krb5 {server_address}:{/volumeX/shared_folder} {/mount_point}
  3. 运行 df 检查共享文件夹是否已挂载:
    df -h
    示例:
    root@ubuntu:~# df -h
    Filesystem Size Used Avail Use% Mounted on
    10.17.4.63:/volume1/nfsshare 576G 34G 543G 6% /mnt

注意事项:

  1. Synology 技术支持仅能协助您配置 Synology NAS 上的相关设置。
  2. 您可以分配 NFS 权限以实现自定义安全策略。选择 AUTH_SYS 可能允许 Linux 客户端在无需 Kerberos 认证的情况下挂载 NFS 共享文件夹。
  3. 支持的加密类型取决于内核版本。您可以在 Synology NAS 上运行 uname -a 来检查内核版本。
    • LK3.10:CRC-32、RSA-MD4、RSA-MD5、DES3-CBC-SHA1、AES128-CTS-HMAC-SHA1-96、AES256-CTS-HMAC-SHA1-96、ARCFOUR-HMAC
    • LK4.4:CRC-32、RSA-MD4、RSA-MD5、DES3-CBC-SHA1、AES128-CTS-HMAC-SHA1-96、AES256-CTS-HMAC-SHA1-96、ARCFOUR-HMAC
    • LK5.10:CRC-32、RSA-MD4、RSA-MD5、DES3-CBC-SHA1、AES128-CTS-HMAC-SHA1-96、AES256-CTS-HMAC-SHA1-96
目的
环境
解决方案
前提条件
设置 Ubuntu NFS 客户端1
在 Synology NAS 上设置 NFS 服务器
在 Ubuntu 上挂载共享文件夹
延伸阅读