您好,登錄后才能下訂單哦!
目錄:
(一)關于NFS防火墻的設置
(二)關于NFS權限的設置
(三)基于kerberos的NFS
(一)關于NFS防火墻的設置
NFS(Network File System)即網絡文件系統,是FreeBSD支持的文件系統中的一種,它允許網絡中的計算機之間共享資源。在NFS的應用中,本地NFS的客戶端應用可以透明地讀寫位于遠端NFS服務器上的文件,就像訪問本地文件一樣。
NFS的優勢如下:
1.節省本地存儲空間,將常用的數據存放在一臺NFS服務器上且可以通過網絡訪問,那么本地終端將可以減少自身存儲空間的使用。
2.用戶不需要在網絡中的每個機器上都建有Home目錄,Home目錄可以放在NFS服務器上且可以在網絡上被訪問使用。
3.一些存儲設備如軟驅、CDROM和ZIP(一種高儲存密度的磁盤驅動器與磁盤)等都可以在網絡上被別的機器使用。這可以減少整個網絡上可移動介質設備的數量。
假設我們在服務器上有一個目錄/xx需要共享出去,我們是使用nfs服務共享出的,因為nfs服務使用的是2049端口,所以在防火墻需要將2049端口開放出去。同時nfs服務是基于rpc(遠程進程調用)服務調用的,rpc服務是服務在111端口,當nfs服務重啟時將會在rpc服務這里注冊,所以如果rpc服務沒有正常啟動,那么nfs服務也沒有辦法正常訪問,即我們需要在防火墻也開放111端口。在nfs系統中我們會遇到多個客戶端掛載,為了避免多個用戶同時掛載產生問題,我們需要使用一個鎖來管理這種掛載問題,所以我們還需要啟動mountd服務,并在防火墻開放對應端口。
(1.1)首先在vms001主機上將nfs服務、rpc-bind服務、mountd服務在防火墻開啟并寫入持久態中。
(1.2)我們使用systemctl list-unit-files可以查看到當前啟動的所有服務,可以看到rpcbind.service服務已經啟動了,并且是static狀態。
(二)關于NFS權限的設置
(2.1)一般nfs服務的配置文件是在/etc/exports文件或者/etc/exports.d/*.exports文件中配置的,且文件的格式如下所示。
(2.2)我們在vms001主機上創建一個/data目錄,并將/data目錄共享出去。
(2.3)接著創建一個/data目錄,并且將exports文件中的設置生效。
(2.4)接著在vms002客戶端主機上測試vms001主機提供的nfs服務是否正常。在vms002主機上創建一個/nfsdata目錄,并將/nfsdata目錄掛載到vms001主機共享的data目錄下。
(2.5)此時我們在vms002主機上嘗試使用root身份創建一個文件aaa.txt,發現系統提示權限不夠。這是由于在vms001主機上/var/lib/nfs/etab文件中定義了root_squash參數,即壓縮root用戶的權限,使root用戶的權限同anonuid=65534一致。
(2.6)由于vms001主機上的/data目錄的other權限是不可寫的,所以給/data目錄的o加上w的權限。
(2.7)如果我們想要以root的身份寫入信息,并且不壓縮root的權限,則可以在/etc/exports文件中進行設置。
(2.8)此時從vms002主機上向/nfsdata目錄中寫文件,發現可以正常的寫入文件,并且是以root身份寫入的。
(2.9)由于在/var/lib/nfs/etab文件中默認設置的參數是no_all_squash,如果需要對所有用戶都啟用壓縮權限,則可以在/etc/exports文件中設置all_squash即可。
(2.10)設置192.168.26.102主機可讀可寫,且掩碼為32;設置192.168.26.0網段中的主機都只有只讀的權限。
(2.11)在vms002主機的/nfsdata目錄下創建一個test102host.txt文件,發現可以正常的創建出對應的文件。
(2.12)經驗總結,故障排錯:接著我們在一臺IP地址為192.168.26.200的主機上測試,進入到/nfsdata目錄后,嘗試創建test200host.txt文件,發現并不能創建成功。
注意:此處我們是通過修改vms002主機的IP地址為192.168.26.200實現其他主機的效果。
(2.13)在vms002主機上將IP地址重新修改為102后,此時就可以正常的創建文件了。
(三)基于kerberos的NFS
Kerberos是一種網絡認證協議,其設計目標是通過密鑰系統為客戶機/服務器應用程序提供強大的認證服務。該認證過程的實現不依賴于主機操作系統的認證,無需基于主機地址的信任,不要求網絡上所有主機的物理安全,并假定網絡上傳送的數據包可以被任意地讀取、修改和插入數據。在以上情況下,Kerberos作為一種可信任的第三方認證服務,是通過傳統的密碼技術執行認證服務的。Kerberos又指麻省理工學院為這個協議開發的一套計算機網絡安全系統。系統設計上采用客戶端/服務器結構與DES加密技術,并且能夠進行相互認證,即客戶端和服務器端均可對對方進行身份認證。可以用于防止竊聽,防止replay破壞、保護數據完整性等場合,是一種應用對稱密鑰體系進行密鑰管理的系統。Kerberos的擴展產品也使公開密鑰方法進行認證。
麻省理工研發了kerberos協議來保護ProjectAthena提供的網絡服務器。這個協議以希臘神話中的人物kerberos命名,他在希臘神話中是Hades的一條兇猛的三頭保衛神犬。
在我們的環境中有一個kerberos服務器,這個服務器我們稱之為KDC即密鑰分發中心。在我們的環境中有很多的主體,包括機器、service、user、group。現在我們有一臺服務器server,還有一個客戶端client,如果我們需要基于kerberos來進行保護時,此時KDC會為每一個主體分配一個ticket,很多的信息都是保存在/etc/krb5.keytab文件中的,客戶端和服務器都有自己獨立的keytab文件。當客戶端訪問服務器的時候,客戶端會出示自己的ticket,此時服務器會使用自己的ticket票據對客戶端的ticket合法性做驗證,這就是我們整個kerberos的工作流程。在我們的kerberos環境里對時間同步的要求是非常高的,所有機器的時間必須要保持一致,所以我們通過配置NTP服務器可以實現需求。
(3.1)我們在vms001主機上使用install.sh腳本創建對應的三臺KVM虛擬機,其中host.img(192.168.122.10)對應就是kerberos服務器,system1.img(192.168.122.100)對應的是nfs服務器,system2.img(192.168.122.200)對應的是普通的客戶端。
(3.2)接著從vms001主機上登錄到system1主機和system2主機上。
(3.3)此時host主機除了是一臺kerberos服務器外,還是一臺LDAP域服務器。
(3.4)首先我們在system1主機上創建普通的nfs服務器,并將防火墻相關的端口打開。
(3.5)將system2主機上的/aa目錄掛載到system1主機上由nfs共享的/aa目錄上,是可以正常的實現掛載的。
(3.6)接著我們使用基于kerberos服務搭建nfs服務器。我們需要在system1主機和system2主機上都要向host主機申請下載ticket。
(3.7)我們在system1主機上創建一個基于kerberos服務的目錄/kerberosDir,并且編輯/etc/exports文件。
(3.8)由于SELinux是開啟的狀態,所以接著修改/kerberosDir的上下文信息。
(3.9)接著在/etc/sysconfig/nfs文件中設置強制使用nfs4版本。
(3.10)在system1主機上設置/kerberosDir目錄的屬主為ldapuser1用戶,并將nfs-server服務和nfs-secure-server服務重啟一下。
(3.11)接著在system2主機上的/etc/fstab 文件中進行編輯,system2主機上的/aa目錄直接掛在到system1主機上共享的/aa目錄即可。我們在system2主機上創建/kerberosDir目錄,但是system2主機上的/kerberosDir目錄在掛載到system1主機上/kerberosDir目錄時,注意需要寫長主機名掛載,并且加上v4.2和sec=krb5p參數。
# mkdir /kerberosDir
(3.12)此時發現基于kerberos服務的system2主機創建的/kerberosDir目錄已經正常的掛載到了system1主機的/kerberosDir目錄了。
—————— 本文至此結束,感謝閱讀 ——————
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。