为 Linux 客户端设置基于 Kerberos 身份验证的 NFS 服务器


为了为 Linux 客户端提供安全的共享文件环境,建立安全机制来保护文件完整性和可靠性,必须使用基于 Kerberos 的身份验证来配置 NFS 服务器。首先要安装和配置 NFS 服务器软件。然后,在服务器端和客户端端启用 Kerberos 身份验证,以实现安全连接和身份验证。创建密钥表和主体以实现对 NFS 服务器的安全访问。然后,在 NFS 导出设置中列出共享目录。通过修改防火墙规则,可以接受 NFS 和 Kerberos 流量并保持连接性。在此设置中,Linux 客户端可以安全地访问和共享来自 NFS 服务器的文件,Kerberos 身份验证为文件共享提供了可靠且安全的环境。

使用的方法

  • 使用配置管理工具进行自动化

  • 手动配置方法

使用配置管理工具进行自动化

使用配置管理工具进行自动化可以简化使用基于 Kerberos 的身份验证为 Linux 客户端设置 NFS 服务器的过程。通过使用利用 Ansible、Puppet 或 Chef 等工具的脚本化剧本自动执行安装和配置任务,可以确保 NFS 服务器和客户端系统的最佳配置。

这些脚本或剧本包含有关设置 NFS 导出、Kerberos 领域、主体和密钥表以及安装必要的 NFS 和 Kerberos 软件包的说明。它们还可以控制如何在服务器端和客户端端激活 Kerberos 身份验证。此外,通过使用配置管理工具控制防火墙规则,可以允许 NFS 和 Kerberos 流量。

借助设置管理系统,可以自动化整个设置过程,保持一致性并减少人工操作。通过简化快速部署并简化 NFS 服务器和客户端配置的维护,它提高了 NFS 文件共享的效率和可靠性,并通过 Kerberos 在 Linux 系统中进行身份验证。

算法

  • 下载 NFS 服务器软件− 使用软件包管理工具在服务器上设置必要的 NFS 服务器软件。

sudo apt-get install nfs-kernel-server

sudo yum install nfs-utils
  • 在服务器上下载 Kerberos 软件包。

  • 创建 Kerberos 客户端和服务器设置。

sudo apt-get install krb5-kdc krb5-admin-server

sudo yum install krb5-server krb5-libs krb5-workstation

sudo nano /etc/krb5.conf
  • 生成密钥表和 Kerberos 主体 

    使用 Kerberos 管理工具('kadmin' 或 'kadmin.local')为 NFS 服务器和客户端建立 Kerberos 主体。

    创建密钥表以进行安全身份验证。

sudo kadmin.local -q "addprinc -randkey nfs/serverhostname.domain.com"

sudo kadmin.local -q "addprinc -randkey nfs/clienthostname.domain.com"

sudo kadmin.local -q "ktadd nfs/serverhostname.domain.com"
sudo kadmin.local -q "ktadd nfs/clienthostname.domain.com"
  • 配置 NFS 导出,这本质上是一种方法,通过该方法您可以在“/etc/exports”文档中更改 NFS 导出配置以指定要与客户端共享的目录;此外,NFS 导出配置的命令如下所示,以便您可以帮助自己。

sudo nano /etc/exports
# Add entries like:
# /shared-directory clienthostname.domain.com(rw,sync)

sudo exportfs -a
  • 为服务器和客户端设置 Kerberos 身份验证 

    将 NFS 服务器上的 Kerberos 身份验证设置更改为“krb5”。

    为 NFS 客户端身份验证配置 Kerberos。

sudo nano /etc/default/nfs-kernel-server
NEED_GSSD=yes

sudo nano /etc/idmapd.conf
# Set "Domain = domain.com"
  • 启动 NFS 服务 

    启动 NFS 服务器以及 nfs-server、rpcbind 和 nfs-secure 服务。

sudo systemctl start nfs-server
sudo systemctl start rpcbind
sudo systemctl start nfs-secure
  • 修改防火墙规则以允许 NFS 和 Kerberos 流量。设置防火墙规则。

sudo ufw allow nfs
sudo ufw allow 2049
sudo ufw allow kerberos
  • 测试和验证− 确定 NFS 服务器是否可访问且正在运行。

    使用 Kerberos 身份验证以确保 Linux 客户端可以信任地访问和共享 NFS 服务器。

sudo systemctl status nfs-server

sudo mount -t nfs serverhostname.domain.com:/shared-directory /mnt

手动配置方法

手动配置方法需要为 Linux 客户端实际设置一个具有基于 Kerberos 的验证的 NFS 服务器。首先,使用软件包管理工具来引入 NFS 服务器程序。然后,共享注册表包含在“/etc/exports”记录中,该记录记录 NFS 导出。在服务器和客户端上都已设置并安装了 Kerberos。程序如“kadmin”或“kadmin.local”用于为安全验证形成 Kerberos 主体和密钥表。将不得不更改设置记录,以便 NFS 服务器备份 Kerberos 验证。

此外,还讨论了启动重要服务(如“nfs-server”、“rpcbind”和“nfs-secure”)。最后,改进的防火墙规则现在允许 NFS 和 Kerberos 活动。此配置建立了一个安全的文件共享环境,其中 Linux 客户端可以通过使用 Kerberos 验证访问和交换 NFS 服务器上的记录,同时保护数据的机密性和完整性。

算法

  • 安装 NFS 服务器软件需要使用软件包管理工具。

sudo apt update
sudo apt install nfs-kernel-server

sudo yum install nfs-utils
  • 要定义共享目录并设置 NFS 导出,请编辑“/etc/exports”文件。

sudo nano /etc/exports

/path/to/shared/directory client_ip(rw,sync)
  • 在客户端和服务器系统上设置和配置 Kerberos。

  • 要创建 Kerberos 主体和密钥表,请使用“kadmin”或“kadmin.local”等程序。

sudo kadmin.local -q "addprinc -randkey nfs/server.example.com"

sudo kadmin.local -q "addprinc -randkey nfs/client.example.com"

sudo kadmin.local -q "ktadd -k /etc/krb5.keytab nfs/server.example.com"
sudo kadmin.local -q "ktadd -k /etc/krb5.keytab nfs/client.example.com"
  • 更改 NFS 服务器的“/etc/nfs.conf”或“/etc/sysconfig/nfs”设置文件以允许 Kerberos 身份验证。

sudo nano /etc/nfs.conf

KRPCSVCD_OPTS="-N 2"
  • 另一个步骤涉及设置所需的服务,例如“rpcbind”、“nfs-secure”等等,以下是相应的终端命令。

sudo systemctl start nfs-server
sudo systemctl start rpcbind
sudo systemctl start nfs-secure
  • 修改防火墙规则以允许来自 Kerberos 和 NFS 的流量。

sudo ufw allow nfs
sudo ufw allow kerberos

sudo firewall-cmd --permanent --zone=public --add-service=nfs
sudo firewall-cmd --permanent --zone=public --add-service=kerberos
sudo firewall-cmd --reload
  • 客户端获取 Kerberos 票证以对 NFS 服务器进行身份验证。

sudo kinit -kt /etc/krb5.keytab nfs/server.example.com

sudo kinit -kt /etc/krb5.keytab nfs/client.example.com
  • 要挂载 NFS,您应该在客户端计算机上共享目录,并进一步使用正确的挂载指令。

sudo mount -t nfs server.example.com:/path/to/shared/directory /mnt/nfs
  • 通过访问 NFS 服务器以及传输文件,您可以验证设置。

echo "This is a test file" | sudo tee /mnt/nfs/test.txt

ls /path/to/shared/directory

结论

需要进行设置才能在 Linux 上形成一个具有 Kerberos 客户端验证的安全 NFS 服务器。通过使用配置管理工具进行计算机化或使用手动配置方法,管理员可以确保共享数据的隐私和完整性。NFS 服务器程序的安装、激活 Kerberos 验证、设置密钥表和主体、建立 NFS 导出、定义防火墙规则以及配置 NFS 导出都是此准备中的关键步骤。使用 Kerberos 身份验证的 Linux 客户端可以安全地共享 NFS 服务器上的记录,从而为记录共享提供可靠且安全的环境。此方案不仅促进了 Linux 客户端之间的有效通信,而且保证了数据机密性和安全性。

更新于:2023年8月3日

1K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.