記錄nfs的防火牆以及權限問題


在前面的一篇文章(https://www.cnblogs.com/zyxnhr/p/10660431.html)中,已經介紹了nfs的安裝掛載使用,但是存在兩個問題

一、 防火牆

在nfs和nfs的守護進程rpcbind起來后,會由幾個端口,防火牆需要打通,才能是客戶端訪問

[root@node1 ~]# rpcinfo -p > nfs.txt

[root@node1 ~]# vim nfs.txt

program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp  40657  mountd
    100005    1   tcp  46458  mountd
    100005    2   udp  52413  mountd
    100005    2   tcp  53785  mountd
    100005    3   udp  60260  mountd
    100005    3   tcp  44574  mountd
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    2   tcp   2049  nfs_acl
    100227    3   tcp   2049  nfs_acl
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    2   udp   2049  nfs_acl
    100227    3   udp   2049  nfs_acl
    100021    1   udp  44067  nlockmgr
    100021    3   udp  44067  nlockmgr
    100021    4   udp  44067  nlockmgr
    100021    1   tcp  44186  nlockmgr
    100021    3   tcp  44186  nlockmgr
    100021    4   tcp  44186  nlockmgr  

 但是在重新啟動這兩個服務后,會發現端口都發生變化

[root@node1 ~]# service rpcbind  restart

[root@node1 ~]# service nfs  restart

[root@node1 ~]# rpcinfo -p

   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp  12792  mountd
    100005    1   tcp  42422  mountd
    100005    2   udp   2212  mountd
    100005    2   tcp  31979  mountd
    100005    3   udp   5090  mountd
    100005    3   tcp  38716  mountd
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    2   tcp   2049  nfs_acl
    100227    3   tcp   2049  nfs_acl
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    2   udp   2049  nfs_acl
    100227    3   udp   2049  nfs_acl
    100021    1   udp  19191  nlockmgr
    100021    3   udp  19191  nlockmgr
    100021    4   udp  19191  nlockmgr
    100021    1   tcp  34774  nlockmgr
    100021    3   tcp  34774  nlockmgr
    100021    4   tcp  34774  nlockmgr

 

這樣的的防火牆原先配置開放的端口就會失效,nfs客戶端就無法使用nfs

1.1 解決一

根據端口,再次打開新的端口限制,但是不可取

1.2 解決二

固定端口,把端口寫進配置文件,每次重啟使用固定的端口

[root@node1 ~]# vim /etc/sysconfig/nfs

RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004

 

[root@node1 ~]# rpcinfo -p

program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp  30003  mountd
    100005    1   tcp  30003  mountd
    100005    2   udp  30003  mountd
    100005    2   tcp  30003  mountd
    100005    3   udp  30003  mountd
    100005    3   tcp  30003  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
    100021    1   udp  30002  nlockmgr
    100021    3   udp  30002  nlockmgr
    100021    4   udp  30002  nlockmgr
    100021    1   tcp  30002  nlockmgr
    100021    3   tcp  30002  nlockmgr
    100021    4   tcp  30002  nlockmgr

 

把這些端口開放,在再起啟動,偶不會影響

開放端口

-A INPUT -p tcp -m state --state NEW -m tcp --dport 111 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2049 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 30002 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 30003 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 30004 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 30001 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 111 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 2049 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 30001 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 30002 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 30003 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 30004  -j ACCEPT

 

1.3 解決三

直接開放源的網卡端口

-A INPUT -s 客戶端IP/32 -i eth0 -j ACCEPT

 

重啟防火牆:

[root@node1 ~]# service iptables  restart

客戶端連接

二,權限開了rw,但是客戶端依然沒有寫權限

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

/home/data/sharedir  客戶端IP(rw,sync,no_root_squash)

 

客戶端寫數據

[root@test ~]# cd /home/data/www/

[root@test www]# touch 111

touch: cannot touch `111': Permission denied

 

查看服務端本文件夾的權限,發現對於其他用戶,是沒有寫權限的

[root@node1 ~]# chmod o+w   /home/data/www/ -R

再次測試,已經可以成功寫入

[root@test www]# touch 111

[root@test www]# ll

-rw-r--r--. 1 root root    0 Apr 16 17:20 111

 


免責聲明!

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



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