為 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+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告