NFS服务

 

1、NFS简介安全

  NFS是NetworkFile System即网络文件系统,NFS在文件传送或过程当中依赖于RPC协议。RPC是RemoteProtocol Call即远程过程调用,RPC主要由部分功能完成,一部分功能由本地程序完成,另外一部分功能由远程主机上的函数完成。NFS工做于TCP和UDP的2049端口,RPC工做TCP的111端口。bash

 

2、安装NFS服务服务器

  NFS的安装直接经过yum就能够了,它须要安装两个软件包,一般状况下在安装系统时就默认包装的。网络

nfs-utils-*   #基本的NFS命令与监控程序async

rpcbind-*     #支持安全NFS RPC服务的链接,在Centos 6系统中RPC为rpcbind.ide

[root@Bisc-lab01 ~]# rpm -qa|egrep"nfs|rpcbind"
nfs-utils-1.2.3-54.el6.x86_64
rpcbind-0.2.0-11.el6.x86_64
nfs-utils-lib-1.1.5-9.el6.x86_64
nfs4-acl-tools-0.3.3-6.el6.x86_64


 

3、NFS守护进程函数

  nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否可以登陆服务器;工具

  mountd:它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利经过nfsd登陆NFS服务器后,在使用NFS服务所提供的文件前,还必须经过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。性能

  idmapd:主要功能是进行端口映射工做。当客户端尝试链接并使用RPC服务器提供的服务(如NFS服务)时,rpcbind会将所管理的与服务对应的端口提供给客户端,从而使客户能够经过该端口向服务器请求服务。ui

 

4、启动NFS服务

(1)启动NFS服务

在启NFS服务以前必定要行启用rpcbind服务,由于NFS要向rpcbind注册。

[root@Bisc-lab01 ~]# service rpcbind start
Starting rpcbind:                               [  OK  ]
[root@Bisc-lab01 ~]# service nfs start
Starting NFS services:                            [  OK  ]
Starting NFS quotas:                             [  OK  ]
Starting NFS mountd:                             [  OK  ]
Starting NFS daemon:                             [  OK  ]
Starting RPC idmapd:                             [ OK  ]


(2)exprotfs命令

exportfs:维护exports文件导出的文件系统表的专用工具:

export -ar: 从新导出全部的文件系统

export -au: 关闭导出的全部文件系统

export -u FS: 关闭指定的导出的文件系统

 

5、NFS的配置

  NFS服务的配置文件在/etc/exports,这个配置文件比较的简单,格式以下:

    directory(or file system)   client1(option1,option2) client2(option1, option2)

文件系统指NFS服务须要共享给客户端的目录

客户端指网络中能够访问NFS服务的主机,可使用IP、FQDN或DOMAIN、NETWORK

(1)经常使用选项

有几个经常使用的选项能够对 NFS 实现进行定制。这些选项包括:

secure: 这个选项是缺省选项,它使用了 1024 如下的 TCP/IP 端口实现 NFS 的链接。指定 insecure 能够禁用这个选项。

rw: 这个选项容许 NFS客户机进行读/写访问。缺省选项是只读的。

async: 这个选项能够改进性能,可是若是没有彻底关闭 NFS 守护进程就从新启动了 NFS 服务器,这也可能会形成数据丢失。

no_wdelay: 这个选项关闭写延时。若是设置了 async,那么 NFS 就会忽略这个选项。

nohide: 若是将一个目录挂载到另一个目录之上,那么原来的目录一般就被隐藏起来或看起来像空的同样。要禁用这种行为,需启用 hide 选项。

no_subtree_check: 这个选项关闭子树检查,子树检查会执行一些不想忽略的安全性检查。缺省选项是启用子树检查。

no_auth_nlm: 这个选项也能够做为insecure_locks 指定,它告诉 NFS 守护进程不要对加锁请求进行认证。若是关心安全性问题,就要避免使用这个选项。缺省选项是 auth_nlm 或 secure_locks。

mp (mountpoint=path): 经过显式地声明这个选项,NFS 要求挂载所导出的目录。

fsid=num: 这个选项一般都在NFS 故障恢复的状况中使用。若是但愿实现 NFS 的故障恢复,请参考 NFS 文档。

 

(2)用户映射

  经过 NFS 中的用户映射,能够将伪或实际用户和组的标识赋给一个正在对 NFS 卷进行操做的用户。这个 NFS 用户具备映射所容许的用户和组的许可权限。对 NFS 卷使用一个通用的用户/组能够提供必定的安全性和灵活性,而不会带来不少管理负荷。

  在使用 NFS 挂载的文件系统上的文件时,用户的访问一般都会受到限制,这就是说用户都是以匿名用户的身份来对文件进行访问的,这些用户缺省状况下对这些文件只有只读权限。这种行为对于 root 用户来讲尤为重要。然而,实际上的确存在这种状况:但愿用户以 root 用户或所定义的其余用户的身份访问远程文件系统上的文件。NFS 容许指定访问远程文件的用户——经过用户标识号(UID)和组标识号(GID),能够禁用正常的 squash 行为。

 

用户映射的选项包括:

    root_squash: 这个选项不容许 root 用户访问挂载上来的 NFS 卷。

    no_root_squash: 这个选项容许 root 用户访问挂载上来的 NFS 卷。

    all_squash: 这个选项对于公共访问的 NFS 卷来讲很是有用,它会限制全部的 UID 和 GID,只使用匿名用户。缺省设置是 no_all_squash。

    anonuid和 anongid: 这两个选项将匿名 UID和 GID 修改为特定用户和组账号。

 

[root@Bisc-lab01 ~]# cat /etc/exports 
/share  172.16.9.0/16(rw,sync,no_root_squash)


 

6、客户端挂载

(1)查看NFS服务器端共享的文件系统

    showmout-e NFSSERVER_IP

[root@Bisc-lab01 ~]# showmount -e172.16.9.20
Export list for 172.16.9.20:
/share 172.16.9.0/16


(2)挂载NFS文件系统

    mount-t nfs SERVER:/path/to/sharedfs /path/to/mount_point

[root@Bisc-lab01 ~]# mount -t nfs172.16.9.20:/share  /mnt
[root@Bisc-lab01 ~]# mount|tail -1
172.16.9.20:/share on /mnt type nfs(rw,vers=4,addr=172.16.9.20,clientaddr=172.16.9.20)


(3)设置开机自动挂载NFS

只须要在/etc/fstab文件中添加以下格式的一行:

SERVER:/PATH/TO/EXPORTED_FS /mount_point    nfs     defaults,_netdev   0 0

[root@Bisc-lab01 ~]# tail -1 /etc/fstab 
172.16.9.20:/share  /mnt            nfs defaults,_netdev    0 0

 

注意:若是不加_netdev选项时,当NFS服务器先关时时,而后在关闭客户端机器,客户端机器是没法关机的,由于客户端机要卸载NFS目录,NFS服务器没法给客户端响应,此时客户端就处于一直等待的状态,或者手动的卸载目录就能完成关闭。_netdev选项告诉操做系统是此挂载是一个网络设备。

相关文章
相关标签/搜索