NFS配置不當導致的那些事兒


NFS(Network File System):是FreeBSD支持的文件系統中的一種,它允許網絡中的計算機之間通過TCP/IP網絡共享資源;

 

NFS配置:(聲明:以下NFS實驗是在RedHat7上完成)

    首先安裝NFS(我的機子是最小化的系統,需要自己安裝):

        yum install nfs-utils.x86_64 -y

    啟動服務:

        systemctl start rpcbind(如果這個服務不啟動,nfs服務會啟動失敗)

        systemctl start nfs-server

        systemctl enable rpcbind;systemctl enable nfs-server   開機自啟

        firewall-cmd --permanent --add-service=nfs  讓防火牆通過NFS服務

        firewall-cmd --permanent --add-service=rpc-bind  通過rpc服務(如果不開啟,rpcinfo就不能掃描)

        firewall-cmd --permanent --add-service=mountd   通過mountd服務(如果不開啟,不能遠程showmount)

        firewall-cmd --reload

    

    配置:

        mkdir /pentest(創建一個共享目錄)

        vi /etc/exports

        cat /etc/exports

            / *(rw,sync,no_root_squash)  (注意:問題就出在這個地方,原理在文后解釋)

        exportfs -r (啟動共享)

        showmount -e (查看共享)

    

    客戶端掛載:

        mount -t nfs NFS服務器IP:/ /tmp/test   (掛載到本地的/tmp/test中)

 

入侵:

    對存在NFS配置錯誤的機子進行掃描:rpcinfo -p 192.168.119.131

  查看nfs掛載新型:showmount -e 192.168.119.131

  得到這些信息,我們就可以掛載NFS,並傳輸ssh永久連接文件

 

總結:其實漏洞形成的原理就是權限不對,/etc/exports這個文件中的權限設置,我們上文采用的是root權限,所以導致服務器被入侵;

    /etc/exports  文件格式

    <輸出目錄> [客戶端1 選項(訪問權限,用戶映射,其他)] [客戶端2 選項(訪問權限,用戶映射,其他)]

    a. 輸出目錄:輸出目錄是指NFS系統中需要共享給客戶機使用的目錄;

    

    b. 客戶端:客戶端是指網絡中可以訪問這個NFS輸出目錄的計算機

        指定ip地址的主機:192.168.0.200

        指定子網中的所有主機:192.168.0.0/24 192.168.0.0/255.255.255.0

        指定域名的主機:david.bsmart.cn

        指定域中的所有主機:*.bsmart.cn

        所有主機:*

 

    c. 選項:選項用來設置輸出目錄的訪問權限、用戶映射等。

        設置輸出目錄只讀:ro

        設置輸出目錄讀寫:rw

 

    d. 用戶映射選項

        all_squash:將遠程訪問的所有普通用戶及所屬組都映射為匿名用戶或用戶組(nfsnobody);

        no_all_squash:與all_squash取反(默認設置);

        root_squash:將root用戶及所屬組都映射為匿名用戶或用戶組(默認設置);

        no_root_squash:與rootsquash取反;

        anonuid=xxx:將遠程訪問的所有用戶都映射為匿名用戶,並指定該用戶為本地用戶(UID=xxx);

        anongid=xxx:將遠程訪問的所有用戶組都映射為匿名用戶組賬戶,並指定該匿名用戶組賬戶為本地用戶組賬戶(GID=xxx);

 

    e. 其它選項

        secure:限制客戶端只能從小於1024的tcp/ip端口連接nfs服務器(默認設置);

        insecure:允許客戶端從大於1024的tcp/ip端口連接服務器;

        sync:將數據同步寫入內存緩沖區與磁盤中,效率低,但可以保證數據的一致性;

        async:將數據先保存在內存緩沖區中,必要時才寫入磁盤;

        wdelay:檢查是否有相關的寫操作,如果有則將這些寫操作一起執行,這樣可以提高效率(默認設置);

        no_wdelay:若有寫操作則立即執行,應與sync配合使用;

        subtree:若輸出目錄是一個子目錄,則nfs服務器將檢查其父目錄的權限(默認設置);

        no_subtree:即使輸出目錄是一個子目錄,nfs服務器也不檢查其父目錄的權限,這樣可以提高效率;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM