一、安装
1、是否安装了NFS和portmap RPM包
[root@butbueatiful /]# rpm -qa | grep nfs
nfs-utils-1.0.9-44.el5
nfs-utils-lib-1.0.8-7.6.el5
[root@butbueatiful /]# rpm -qa | grep portmap
portmap-4.0-65.2.2.1
2、若没有安装则用以下命令安装
[root@butbueatiful /]# yum install nfs-utils portmap
二、配置
NFS Server:192.168.1.100
NFS Client:192.168.1.200
NFS Server:
共享目录:/nfspool
NFS 运行用户(RPM包自动生成):nfsnobody
[root@butbueatiful /]# mkdir /nfspool
[root@butbueatiful /]# chown nfsnobody:nfsnobody /nfspool
[root@butbueatiful /]# id nfsnobody
uid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody) context=root:system_r:unconfined_t:SystemLow-SystemHigh
[root@butbueatiful /]# chown -R nfsnobody:nfsnobody /nfspool/.
[root@butbueatiful /]# vi /etc/exports
/nfspool 192.168.1.200(rw,async,anonuid=65534,anongid=65534)
启动服务:
[root@butbueatiful /]# service portmap start
启动 portmap: [确定]
[root@butbueatiful /]# service nfslock start
[root@butbueatiful /]# service nfs start
启动 NFS 服务: [确定]
关掉 NFS 配额: [确定]
启动 NFS 守护进程: [确定]
启动 NFS mountd: [确定]
NFS Client:
远程NFS目录在客户端的挂载点:/nfs
[root@test1 /]# mkdir /nfs
[root@test1 /]# service portmap start
启动 portmap: [确定]
[root@test1 /]# chown nfsnobody:nfsnobody /nfs
[root@test1 /]# chmod 777 /nfs
[root@test1 /]# mount -t nfs -o soft,intr,bg,timeo=50 192.168.1.100:/nfspool /nfs
测试:
[root@test1 /]# ls -all /nfs
总计 20
drwxr-xr-x 2 nfsnobody nfsnobody 4096 04-02 13:53 .
drwxr-xr-x 24 root root 4096 04-02 13:49 ..
-rw-r--r-- 1 root root 0 04-02 13:53 test.t
Client启动后的自动mount:
[root@test1 /]# vi /etc/fstab
192.168.1.100:/nfspool /nfs nfs soft,intr,bg,timeo=50 0 0
三、服务起停顺序
启动:
service portmap start
service nfslock start
service nfs start
停止:
service nfslock stop
service nfs stop
service portmap stop
四、安全性
portmap PORT: 111
NFS PORT: 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 192.168.100.2 --dport 111 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.100.2 --dport 2049 -j ACCEPT
附注:
1、exports参数说明
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_squash root用户具有根目录的完全管理访问权限
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID
2、NFS 管理命令
showmount -e 在NFS Server上执行此命令显示NFS Server上所有的共享卷;
showmount -e 192.168.1.100 在NFS Client上执行此命令显示NFS Server上所有共享卷;
exportfs -av 根据/etc/exports导出所有卷;
1、是否安装了NFS和portmap RPM包
[root@butbueatiful /]# rpm -qa | grep nfs
nfs-utils-1.0.9-44.el5
nfs-utils-lib-1.0.8-7.6.el5
[root@butbueatiful /]# rpm -qa | grep portmap
portmap-4.0-65.2.2.1
2、若没有安装则用以下命令安装
[root@butbueatiful /]# yum install nfs-utils portmap
二、配置
NFS Server:192.168.1.100
NFS Client:192.168.1.200
NFS Server:
共享目录:/nfspool
NFS 运行用户(RPM包自动生成):nfsnobody
[root@butbueatiful /]# mkdir /nfspool
[root@butbueatiful /]# chown nfsnobody:nfsnobody /nfspool
[root@butbueatiful /]# id nfsnobody
uid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody) context=root:system_r:unconfined_t:SystemLow-SystemHigh
[root@butbueatiful /]# chown -R nfsnobody:nfsnobody /nfspool/.
[root@butbueatiful /]# vi /etc/exports
/nfspool 192.168.1.200(rw,async,anonuid=65534,anongid=65534)
启动服务:
[root@butbueatiful /]# service portmap start
启动 portmap: [确定]
[root@butbueatiful /]# service nfslock start
[root@butbueatiful /]# service nfs start
启动 NFS 服务: [确定]
关掉 NFS 配额: [确定]
启动 NFS 守护进程: [确定]
启动 NFS mountd: [确定]
NFS Client:
远程NFS目录在客户端的挂载点:/nfs
[root@test1 /]# mkdir /nfs
[root@test1 /]# service portmap start
启动 portmap: [确定]
[root@test1 /]# chown nfsnobody:nfsnobody /nfs
[root@test1 /]# chmod 777 /nfs
[root@test1 /]# mount -t nfs -o soft,intr,bg,timeo=50 192.168.1.100:/nfspool /nfs
测试:
[root@test1 /]# ls -all /nfs
总计 20
drwxr-xr-x 2 nfsnobody nfsnobody 4096 04-02 13:53 .
drwxr-xr-x 24 root root 4096 04-02 13:49 ..
-rw-r--r-- 1 root root 0 04-02 13:53 test.t
Client启动后的自动mount:
[root@test1 /]# vi /etc/fstab
192.168.1.100:/nfspool /nfs nfs soft,intr,bg,timeo=50 0 0
三、服务起停顺序
启动:
service portmap start
service nfslock start
service nfs start
停止:
service nfslock stop
service nfs stop
service portmap stop
四、安全性
portmap PORT: 111
NFS PORT: 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 192.168.100.2 --dport 111 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.100.2 --dport 2049 -j ACCEPT
附注:
1、exports参数说明
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_squash root用户具有根目录的完全管理访问权限
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID
2、NFS 管理命令
showmount -e 在NFS Server上执行此命令显示NFS Server上所有的共享卷;
showmount -e 192.168.1.100 在NFS Client上执行此命令显示NFS Server上所有共享卷;
exportfs -av 根据/etc/exports导出所有卷;
exportfs -rv 重新导出所有卷,增加/etc/exports中的新项目、删除不存在的项目、更新改变的项目;
示例:
showmount -e localhost #查询本机nfs共享目录情况
showmount -a localhost #查询本机共享目录连接情况
http://blog.chinaunix.net/uid-26495963-id-3219407.html