【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰

目錄:
(一)關於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服務,並在防火牆開放對應端口。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(1.1)首先在vms001主機上將nfs服務、rpc-bind服務、mountd服務在防火牆開啓並寫入持久態中。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(1.2)我們使用systemctl list-unit-files可以查看到當前啓動的所有服務,可以看到rpcbind.service服務已經啓動了,並且是static狀態。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰


(二)關於NFS權限的設置
(2.1)一般nfs服務的配置文件是在/etc/exports文件或者/etc/exports.d/*.exports文件中配置的,且文件的格式如下所示。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(2.2)我們在vms001主機上創建一個/data目錄,並將/data目錄共享出去。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(2.3)接着創建一個/data目錄,並且將exports文件中的設置生效。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(2.4)接着在vms002客戶端主機上測試vms001主機提供的nfs服務是否正常。在vms002主機上創建一個/nfsdata目錄,並將/nfsdata目錄掛載到vms001主機共享的data目錄下。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(2.5)此時我們在vms002主機上嘗試使用root身份創建一個文件aaa.txt,發現系統提示權限不夠。這是由於在vms001主機上/var/lib/nfs/etab文件中定義了root_squash參數,即壓縮root用戶的權限,使root用戶的權限同anonuid=65534一致。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(2.6)由於vms001主機上的/data目錄的other權限是不可寫的,所以給/data目錄的o加上w的權限。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(2.7)如果我們想要以root的身份寫入信息,並且不壓縮root的權限,則可以在/etc/exports文件中進行設置。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(2.8)此時從vms002主機上向/nfsdata目錄中寫文件,發現可以正常的寫入文件,並且是以root身份寫入的。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(2.9)由於在/var/lib/nfs/etab文件中默認設置的參數是no_all_squash,如果需要對所有用戶都啓用壓縮權限,則可以在/etc/exports文件中設置all_squash即可。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(2.10)設置192.168.26.102主機可讀可寫,且掩碼爲32;設置192.168.26.0網段中的主機都只有只讀的權限。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(2.11)在vms002主機的/nfsdata目錄下創建一個test102host.txt文件,發現可以正常的創建出對應的文件。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(2.12)接着我們在一臺IP地址爲192.168.26.200的主機上測試,進入到/nfsdata目錄後,嘗試創建test200host.txt文件,發現並不能創建成功。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(2.13)在vms002主機上將IP地址重新修改爲102後,此時就可以正常的創建文件了。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰


(三)基於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服務器可以實現需求。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(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)對應的是普通的客戶端。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(3.2)接着從vms001主機上登錄到system1主機和system2主機上。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(3.3)此時host主機除了是一臺kerberos服務器外,還是一臺LDAP域服務器。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(3.4)首先我們在system1主機上創建普通的nfs服務器,並將防火牆相關的端口打開。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(3.5)將system2主機上的/aa目錄掛載到system1主機上由nfs共享的/aa目錄上,是可以正常的實現掛載的。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(3.6)接着我們使用基於kerberos服務搭建nfs服務器。我們需要在system1主機和system2主機上都要向host主機申請下載ticket。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(3.7)我們在system1主機上創建一個基於kerberos服務的目錄/kerberosDir,並且編輯/etc/exports文件。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(3.8)由於SELinux是開啓的狀態,所以接着修改/kerberosDir的上下文信息。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(3.9)接着在/etc/sysconfig/nfs文件中設置強制使用nfs4版本。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(3.10)在system1主機上設置/kerberosDir目錄的屬主爲ldapuser1用戶,並將nfs-server服務和nfs-secure-server服務重啓一下。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(3.11)接着在system2主機上的/etc/fstab 文件中進行編輯,system2主機上的/aa目錄直接掛在到system1主機上共享的/aa目錄即可。但是system2主機上的/kerberosDir目錄在掛載到system1主機上/kerberosDir目錄時,注意需要寫長主機名掛載,並且加上v4.2和sec=krb5p參數。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰
(3.12)此時發現基於kerberos服務的system2主機創建的/kerberosDir目錄已經正常的掛載到了system1主機的/kerberosDir目錄了。
【我的Linux,我做主!】常用共享存儲--NFS服務配置應用與實戰

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章