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