记录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

猜你喜欢

转载自www.cnblogs.com/zyxnhr/p/10718959.html