NFS简单配置

应用环境

OS:Linux AS4

NFS Sever:192.168.3.96 hostname rac01

NFS Client: 192.168.3.97 hostname rac02

检查系统是否安装了包nfs-utilsportmap,其中 protmap软件包中的portmap服务,为NFSNIS等提供RPC服务的支持,因此在安装时应先安装portmap软件包。nfs-utils软件包中提供了NFS服务器程序和相应的维护工具。

[root@rac01 ~]# rpm -q nfs-utils portmap

nfs-utils-1.0.6-70.EL4

portmap-4.0-63

NFS服务器的配置文件—exports文件在目录“/etc”下,用于配置NFS服务器所提供的目录共享。此文件默认设置为空,没有配置的输出的任何的目录共享,这也是出于安全性的考虑,这样即使系统启动NFS服务也不会提供任何的共享。如果需要在NFS服务器中输出某个目录的共享,需要先在exports文件中进行相应的设置。

exports文件的格式

exports文件中每行提供一个共享目录的设置,设置行的格式如下所示:

#要输出的共享目录名 客户端主机地址(设置选择)

/home/share  *(sync,ro)

exports文件的设置行中,共享目录和主机地址间用空格分隔,主机地址之后紧随设置选项,设置选项放置在括号中,多个设置选项间用逗号分隔。

1) 共享目录

 共享目录设置系统中需要输出作为共享的目录路径,该目录用于存放网络中其它主机共享的文件。

2) 客户端主机地址

 exports文件中,客户端主机地址的指定非常灵活,可以是单个主机的IP地址或域名也只可以是指定网段中的主机或指定域中的主机,如下:

主机地址格式

客户端主机地址  说明

192.168.3.97  指定IP地址的主机

Nfstest.com 指定域名的主机

192.168.3.0/24  指定网段中的所有主机

*.test.com  指定域中的所有主机

*   所有主机

3) 设置选项

exports文件中的设置选项较多,经常使用的不多,如下:

设置选项 说明

sync  设置NFS服务器同步写磁盘,这样不会轻易丢失数据,NFS服务器建议使用该选项

ro  设置输出的共享目录只读,与rw不能同时使用

rw  设置输入的共享目录可读写,与ro不能同时使用

secure  NFS通过1024以下的安全TCP/IP端口发送

insecure NFS通过1024以上的端口发送

wdelay  如果多个用户要写入NFS目录,则归组写入(默认

no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。

hide  NFS共享目录中不共享其子目录

no_hide  共享NFS目录的子目录

subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认

no_subtree_check和上面相对,不检查父目录权限

all_squash 共享文件的UIDGID映射匿名用户anonymous,适合公用目录。

no_all_squash 保留共享文件的UIDGID(默认

root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认

no_root_squash root用户具有根目录的完全管理访问权限

anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID

anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID

    exports文件配置实例,编辑/etc/exports文件,加入以下内容:

[root@rac01 oracle]# vi /etc/exports

#nfs

/home/oracle/nfs 192.168.3.97(sync,rw)

完成以后重启nfs服务

[root@rac01 oracle]# service nfs restart

查看nfs服务器的自启动状态:

[root@rac01 oracle]# chkconfig --list portmap

portmap         0:off   1:off   2:off   3:off   4:off   5:off   6:off

[root@rac01 oracle]# chkconfig --list nfs

nfs             0:off   1:off   2:off   3:off   4:off   5:off   6:off

[root@rac01 oracle]# chkconfig --level 345 portmap on

[root@rac01 oracle]# chkconfig --level 345 nfs on

[root@rac01 oracle]# chkconfig --list portmap

Portm           0:off   1:off   2:off   3:on    4:on    5:on    6:off

[root@rac01 oracle]# chkconfig --list nfs

nfs             0:off   1:off   2:off   3:on    4:on    5:on    6:off

NFS安全

NFS的不安全性主要体现于以下4个方面:

1、新手对NFS的访问控制机制难于做到得心应手,控制目标的精确性难以实现

2NFS没有真正的用户验证机制,而只有对RPC/Mount请求的过程验证机制

3、较早的NFS可以使未授权用户获得有效的文件句柄

4、在RPC远程调用中,一个SUID的程序就具有超级用户权限.

加强NFS安全的方法:

1、合理的设定/etc/exports中共享出去的目录,最好能使用anonuidanongid以使MOUNTNFS SERVERCLIENT仅仅有最小的权限,最好不要使用root_squash

2、使用IPTABLE防火墙限制能够连接到NFS SERVER的机器范围

iptables -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --dport 111 -j ACCEPT

iptables -A INPUT -i eth0 -p UDP -s 192.168.0.0/24 --dport 111 -j ACCEPT

iptables -A INPUT -i eth0 -p TCP -s 140.0.0.0/8 --dport 111 -j ACCEPT

iptables -A INPUT -i eth0 -p UDP -s 140.0.0.0/8 --dport 111 -j ACCEPT

3、为了防止可能的Dos攻击,需要合理设定NFSDCOPY数目。

4、修改/etc/hosts.allow/etc/hosts.deny达到限制CLIENT的目的

/etc/hosts.allow

portmap: 192.168.0.0/255.255.255.0 : allow

portmap: 140.116.44.125 : allow

/etc/hosts.deny

portmap: ALL : deny

5、改变默认的NFS端口

NFS默认使用的是111端口,但同时你也可以使用port参数来改变这个端口,这样就可以在一定程度上增强安全性。

6、使用Kerberos V5作为登陆验证系统

NFS故障解决

1NFSD没有启动起来

首先要确认NFS输出列表存在,否则nfsd不会启动。可用exportfs命令来检查,如果exportfs命令没有结果返回或返回不正确,则需要检查/etc/exports文件。

2mountd进程没有启动

mountd进程是一个远程过程调用(RPC),其作用是对客户端要求安装(mount) 文件系统的申请作出响应。mountd进程通过查找/etc/xtab文件来获知哪些文件系统可以被远程客户端使用。另外,通过mountd进程,用户可以知道目前有哪些文件系统已被远程文件系统装配,并得知远程客户端的列表。查看mountd是否正常启动起来可以使用命令rpcinfo进行查看,在正常情况下在输出的列表中应该象这样的行:

100005 1 udp 1039 mountd

100005 1 tcp 1113 mountd

100005 2 udp 1039 mountd

100005 2 tcp 1113 mountd

100005 3 udp 1039 mountd

100005 3 tcp 1113 mountd

如果没有起来的话可以检查是否安装了PORTMAP组件。

rpm -qa|grep portmap

3fs type nfs no supported by kernel

kernel不支持nfs文件系统,重新编译一下KERNEL就可以解决。

4can't contact portmapper: RPC: Remote system error - Connection refused
出现这个错误信息是由于SEVER端的PORTMAP没有启动。

5mount clntudp_create: RPC: Program not registered

NFS没有启动起来,可以用showmout -e host命令来检查NFS SERVER是否正常启动起来。

6mount: localhost:/home/test failed, reason given by server: Permission denied

这个提示是当clientmount nfs server时可能出现的提示,意思是说本机没有权限去mount nfs server上的目录。解决方法当然是去修改NFS SERVER咯。

7、被防火墙阻挡

这个原因很多人都忽视了,在有严格要求的网络环境中,我们一般会关闭linux上的所有端口,当需要使用哪个端口的时候才会去打开。而NFS默认是使用111端口,所以我们先要检测是否打开了这个端口,另外也要检查TCP_Wrappers的设定。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值