Chinaunix首页 | 论坛 | 博客
  • 博客访问: 588522
  • 博文数量: 187
  • 博客积分: 10025
  • 博客等级: 上将
  • 技术积分: 2990
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-18 17:40
文章分类

全部博文(187)

文章存档

2010年(1)

2009年(23)

2008年(163)

我的朋友

分类: LINUX

2008-07-02 14:28:57

nfs配置方法

服务                 描述
nfsd NFS,          为来自NFS客户端的 请求服务。
mountd NFS          挂载服务,处理nfsd(8)递交过来的请求。
rpcbind             此服务允许 NFS 客户程序查询正在被 NFS 服务使用的端口。

配置NFS
NFS的配置过程相对简单。这个过程只需要 对/etc/rc.conf文件作一些简单修改。

安装rpc  #cd /usr/ports/math/rpc  make install clean


在NFS服务器这端,确认/etc/rc.conf 文件里头以下开关都配上了:

nfs_server_enable="YES"
nfs_server_flags="-u -t -n 4"
rpc_statd_enable="YES"
rpc_lockd_enable="YES"
mountd_flags="-r"

只要NFS服务被置为enable,mountd 就能自动运行。

在客户端一侧,确认下面这个开关出现在 /etc/rc.conf里头:

nfs_client_enable="YES"
nfs_client_flags="-n 4" 
像nfsd,-n 4告诉nfsiod运行自己的4个拷贝。

二,设置

etc/exports文件指定了哪个文件系统 NFS应该输出(有时被称为“共享”)。 /etc/exports里面每行指定一个输出的文件系统和哪些机器可以访问该文件系统。在指定机器访问权限的同时,访问选项开关也可以被指定。

格式:

[共享的目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)]

下面是一些NFS共享的常用参数: 

        ro                      只读访问 
        rw                      读写访问 
        sync                    所有数据在请求时写入共享 
        async                   NFS在写入数据前可以相应请求 
        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              共享文件的UID和GID映射匿名用户anonymous,适合公用目录。 
        no_all_squash           保留共享文件的UID和GID(默认) 
        root_squash             root用户的所有请求映射成如anonymous用户一样的权限(默认) 
        no_root_squas           root用户具有根目录的完全管理访问权限 
        anonuid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的UID 
        anongid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的GID 

配置文件/etc/exports内容如下:

     $ cat /etc/exports
      /home/share 192.168.1.15(rw,sync) *(ro)
       配置说明: 对192.168.1.15赋予读写权限,其他机器仅有只读权限。

四.客户端配置

       1.查看NFS服务器的输出
         #showmount -e 192.168.1.1
       2.挂载NFS服务器中的共享目录到本地目录/mnt/下
         #mount -t nfs 192.168.1.1:/home  /mnt/
       3.卸载系统中已挂载的NFS共享目录
         #umount /mnt/
       4.修改fstab文件让系统启动时自动挂载NFS文件
         #vi /etc/fstab
         192.168.1.1:/home    /mnt    nfs     defaults    0 0


linux /etc/fstab的内容主要包括六项:

例如下面两行:
LABEL=/    /    ext3    defaults    1    1
/dev/sda2    /mnt/D/    vfat    defaults    0    0


第一列:设备名或者设备卷标名 (/dev/sda10 或者 LABEL=/)
第二列: 设备挂载目录 (例如上面的 "/" 或者 "/mnt/D/")
第三列: 设备文件系统 (例如上面的 "ext3" 或者 "vfat")
第四列:挂载参数 (看帮助 man 8 mount)
    对于已经挂载好的设备,例如上面的/dev/sda2,现在要改变挂载参数,这时可以不用卸载该设备,
而可以使用下面的命令(没有挂载的设备,remount 这个参数无效)
    #mount /mnt/D/ -o remount,ro (改defaults为ro)
    为了安全起见,可以指明其他挂载参数,例如:
    noexec (不允许可执行文件可执行,但千万不要把根分区挂为noexec,那就无法使用系统了,
            连mount 命令都无法使用了,这时只有重新做系统了!)
    nodev (不允许挂载设备文件)
    nosuid,nosgid(不允许有 suid 和 sgid 属性)
    nouser(不允许普通用户挂载)
第五列:指明是否要备份 (0 为不备份,1 为要备份, 一般根分区要备份)
第六列:指明自检顺序 (0 为不自检,1 或者 2 为要自检, 如果是根分区要设为1,其他分区只能是2)

# This file is edited by fstab-sync - see 'man fstab-sync' for details
/dev/hda1   /boot   ext3    defaults 1 2
/dev/hda2   /data   ext3    defaults 1 2
/dev/hda3   /   ext3    defaults    1   1
/dev/hda5   /oracle ext3    defaults    1   2
/dev/hda6   /home   ext3    defaults    1   2
/dev/hda7   swap    swap    defaults    0   0
none    /dev/pts    devpts gid=5,mode=620 0   0
none    /dev/shm    tmpfs   defaults    0   0
none    /proc   proc    defaults    0   0

五、安全性
---------
portmap: 111
NFS: 2049
防止使用IP欺骗和RPC重定向技术通过lo回环进行攻击以及限定授权主机:
iptables -A INPUT -p udp -d 127.0.0.1 --dport 111 -j DROP
iptables -A INPUT -p udp -d 127.0.0.1 --dport 2049 -j DROP 
iptables -A INPUT -p udp -s 10.0.0.2 --dport 111 -j ACCEPT
iptables -A INPUT -p udp -s 10.0.0.2 --dport 2049 -j ACCEPT

阅读(638) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~