NFS服务器
为了使得其他系统能使用FreeBSD上的硬盘空间,就需要运行NFS服务进程。NFS服务器 使用了几个守护进程用于提供NFS服务。最基本的提供NFS服务的系统至少要运行nfsd和mountd 守护进程,nfsd用于处理NFS协议,而mountd用于处理客户的mount请求。此外,由于NFS使用RPC 远程调用,因此portmap、rpc_lockd、rpc_statd等RPC守护进程都可以用来帮助提供更高效的 服务。
这些守护进程一般应该在系统启动时载入,因此需要在rc.conf中更改相关的参数: nfs_server_enable, rpc_statd_enable, rpc_lockd.enable和portmap_enable参数将对应相应 的守护进程。
那么系统重起之后,就有了能共享文件出去的能力,余下的工作只是用来配置需要共享 那些目录,以及进行何种限制以保证安全性,这些设置工作需要更改/etc/exports文件:
# cat /etc/exports /usr/src/sys -maproot=daemon ns host2 /usr/ports -ro -network 192.168.1.0 |
从这个例子中可以看出exports文件的格式,首先是定义要共享出去的文件目录,必须 使用绝对路径,而不能使用是符号连接。后面就是对这个目录进行访问限制的参数,用于保证 安全性。第一行设置中,将/usr/sys/src目录共享出去,但限制客户机上的root用户等价于本 机上的daemon用户,以避免客户机上的root用户拥有这个服务器上的root权力,进行非法操作 ,此后的ns和host2参数是主机名,这就限制只有ns和host2才能共享这个/usr/sys/src目录。 第二行设置共享了/usr/ports目录,但限制为只允许读取,并且也只有192.168.1.0网络上的 计算机才能访问这个共享目录。
目录的访问限制中具有多种选项,这些选项对于保证NFS的安全性相当重要。
-ro---以只读形式输出文件系统,远程客户只能读不能写这个目录
-maproot---将客户机上的root用户映射为服务器中的某个用户和族,也可以使用UID 和GID的形式,如maproot=root,maproot=10,或maproot=10:1。这个设置选项可以用来保护 服务器上的文件系统不被客户中的使用者非法访问。
-mapall---将客户上的所有用户都映射为本机的某个用户,使用形式与maproot相同 。它同样也是用于保护服务器文件系统的安全性的。
-alldirs---允许安装该目录下的所有子目录。
-network---允许一定网络上的计算机可以装载这个文件系统。
-mask---用于修订 network中的网络号使用的缺省掩码,可定义对网络的一部分开放 文件系统。
当更改了exports文件之后,需要向mountd发送SIGHUP信号,使其重读exports文件的 内容。
未完,待续。。。
标签: