NFS網絡文件系統

1.NFS概念

    網絡文件系統(NFS)是Unix系統和網絡附加存儲文件管理器常用的網絡文件系統,允許多個客戶端通過網絡共享文件訪問。它可用於提供對共享二進制目錄的訪問,也可用於允許用戶在同一工作組中從不同客戶端訪問其文件。NFS協議有多個版本:Linux支持版本4、版本3和版本2, 而大多數系統管理員熟悉的是NFSv3。默認情況下,該協議並不安全,但是更新的版本(如NFSv4)提供了對更安全的身份驗證的支持,甚至可以通過kerberos進行加密。


2. NFS服務器配置

        若要配置基本NFS服務器,您應該安裝nfs-utils軟件包。然後,您應該編輯/etc/exports以列出您希望通過網絡與客戶端系統共享的文件系統,並指出哪些客戶端對導出具有何種訪問權限。例如:

        /var/ftp/pub

        192.168.0.0/24(ro,sync)

    將目錄/var/ftp/pub導出至192.168.0.0/24網絡上的所有主機(對目錄具有隻讀權限)。

        /export/homes *.example.com(rw,sync)

    將目錄/export/homes導出至exmaple.com中的所有主機(對目錄具有讀寫權限)。

    當NFS服務器運行時,每次您編輯/etc/exports後,都應通過在保存更改後執行exportfs -r來確保應用這些更改。您可以使用exportfs -v顯示所有導出。

    NFSv4還導出pseudo-root(所有導出的文件系統的root)。如果客戶端掛載nfs-server:/ ,這將在NFS

    服務器上的/下面相對於其位置掛載所有導出文件系統。這對於瀏覽從客戶端的服務器導出的所有文件系統有用。您仍可單獨掛載文件系統。


        默認情況下,NFS服務器將NFS客戶端上的root視爲用戶nfsnobody。即,如果root嘗試訪問掛載的導出中的文件,服務器會將其視作用戶nfsnobody訪問。在NFS導出被無磁盤客戶端用作/和root需要被視作root的情況中,這種安全措施存在隱患。若要禁用此保護,服務器需要將no_root_squash添加到在/etc/exports中導出設置的選項列表:

    /exports/root

    192.168.0.1(rw,no_root_squash)

    對於NFSv4,必須在服務器上打開端口2049/TCP(對於nfsd)。對於NFSv3和更早版本,必須爲rpcbind、rpc.mountd、lockd和rpc.rquotad打開更多端口,而在“隨機”選擇的端口上啓動其中許多服務這一事實又增加了複雜性。此外,NFSv2和NFSv3支持UDP傳輸,還要求打開相應的端口


3.配置實驗

    1. 服務器端啓動NFS服務:

    nfs服務系統自帶有,不用安裝,只需要啓動即可。

    # systemctl start nfs-server ; systemctl enable nfs-server


    2. 編輯/etc/exports。例如:

    [root@server1 ~]# vim /etc/exports

        /mnt   *(ro)

    [root@server1 ~]# exportfs -rv

        exporting *:/mnt


    3. 從客戶端查看並掛載NFS pseudo-root共享:

    [root@server2 ~]# showmount -e 172.25.254.1

        Export list for 172.25.254.1:

        /mnt *

    [root@server2 ~]# mount 172.25.254.1:/mnt /mnt

    [root@server2 ~]# cd /mnt/

    [root@server2 mnt]# touch file

    touch: cannot touch ‘file’: Read-only file system

    [root@server2 mnt]# df -h

    172.25.254.1:/mnt      8.5G  3.0G  5.6G  35% /mnt

    [root@server2 mnt]# 


    4.指定客戶端對文件系統可寫

    [root@server1 ~]# vim /etc/exports

          /mnt  172.25.254.2(rw,no_root_squash)  *(ro)

    [root@server1 ~]# exportfs -rv

        exporting 172.25.254.2:/mnt

        exporting *:/mnt


   5.客戶端測試寫入文件系統

    [root@server2 mnt]# cd 

    [root@server2 ~]# umount /mnt/

    [root@server2 ~]# mount 172.25.254.1:/mnt /mnt

    [root@server2 ~]# cd /mnt/

    [root@server2 mnt]# touch file

    [root@server2 mnt]# ls

        file  

    

    6.autofs自動掛載

       客戶端配置

    [root@server1 ~]# yum install autofs -y

    [root@server1 ~]# vim /etc/auto.master

           /mnt    /etc/auto.mnt

    [root@server1 ~]# vim /etc/auto.mnt

        pub -ro,vers=3 172.25.254.1:/mnt

    [root@server1 ~]# cd /mnt/pub

    [root@server1 pub]# ls

        pub

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