page counter next up previous contents
Next: NFS 伺服器防火牆設定 Up: SELinux 管理 Confined 服務 Previous: Httpd SELinux Port   Contents   DYWANG_HOME

NFS Server

  1. NFS 與 SELinux
    1. 預設情況 NFS 是受限服務,但 nfsd 服務被標記為不受限的 kernel_t doamin 型態。
    2. SELinux 策略預設允許 NFS 分享檔案,而且支援 server 傳遞 SELinux 標記到 client,以提供對 NFS 更安全的控制。
  2. 安裝 nfs-utils 套件。
    [root@kvm5 ~]# yum install -y nfs-utils
    
  3. 建立 NFS 分享目錄 /public。
    [root@kvm5 ~]# mkdir /public
    
  4. 查看分享目錄 /public 的 SELinux Context 為 default_t
    [root@kvm5 ~]# ls -Zd /public
    drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /public
    
  5. 修改 NFS 分享目錄 (含次目錄) 的 SELinux context 為 public_content_t
    [root@kvm5 ~]# semanage fcontext -a -t public_content_t "/public(/.*)?"
    
  6. 將 /public (含次目錄) 的 SELinux context 恢復為預設值,也就是剛剛設定的 public_content_t
    [root@kvm5 ~]# restorecon -Rv /public
    restorecon reset /public context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:public_content_t:s0
    
  7. 編輯 nfs 服務配置檔,將 /public 目錄分享給 192.168.122.0/24 網段。
    [root@kvm5 ~]# vim /etc/exports
    [root@kvm5 ~]# cat /etc/exports
    /public 192.168.122.0/24(ro,sync)
    
  8. 啟動 nfs 服務,並設定開機啟動。
    [root@kvm5 ~]# systemctl enable nfs-server.service
    [root@kvm5 ~]# systemctl start nfs-server.service
    
  9. 查詢 nfs 服務支援的版本,必須有 4.2 版以支援傳遞 SELinux Contexts 到 client。
    [root@kvm5 ~]# cat /proc/fs/nfsd/versions 
    -2 +3 +4 +4.1 +4.2
    
  10. 輸出所有設定的 nfs 分享目錄。
    [root@kvm5 ~]# exportfs -arv
    exporting 192.168.122.0/24:/public
    



De-Yu Wang 2020-05-14