Sie sind auf Seite 1von 9

实验环境:

vmware7.1+RHEL5.2+selinux(enforce)+iptables(ALL DROP)
[root@rhel5server ~]# uname -r
2.6.18-92.el5

实验操作:
修改配置文件/etc/sysconfig/nfs,其中的部分参数我按文件默认给出的值,仅仅只是把前面
的注释去掉而已。如果默认参数跟/etc/services 文件中某个服务使用的端口相同的话,则自
己挑了个没有在该文件中定义的端口:
[root@rhel5server ~]# vim /etc/sysconfig/nfs
RQUOTAD_PORT=875
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
#STATD_PORT=662 是默认参数,但是在/etc/services 中有定义了,所以换了个 10005
STATD_PORT=10005
#STATD_OUTGOING_PORT=2020 是默认参数,在/etc/services 中也定义了,所以换了个
10006
STATD_OUTGOING_PORT=10006

再检查一下看看有没有跟/etc/services 文件中定义的重复:
[root@rhel5server ~]# egrep '875|32803|32796|892|10005|10006' /etc/services
westell-stats 1875/tcp # westell stats
westell-stats 1875/udp # westell stats
childkey-ctrl 1892/tcp # ChildKey Control
childkey-ctrl 1892/udp # ChildKey Control
dxmessagebase2 2875/tcp # dxmessagebase2
dxmessagebase2 2875/udp # dxmessagebase2
snifferdata 2892/tcp # SNIFFERDATA
snifferdata 2892/udp # SNIFFERDATA
pnbscada 3875/tcp # PNBSCADA
pnbscada 3875/udp # PNBSCADA
pcc-image-port 3892/tcp # PCC-image-port
pcc-image-port 3892/udp # PCC-image-port
ddi-tcp-5 8892/tcp # Desktop Data TCP 4: FARM product
ddi-udp-5 8892/udp # Desktop Data UDP 4: FARM product
sapv1 9875/tcp # Session Announcement v1
sapv1 9875/udp # Session Announcement v1
没有重复

再看看 nfs 使用的端口:


[root@rhel5server ~]# grep 'nfs' /etc/services
nfs 2049/tcp nfsd
nfs 2049/udp nfsd
nfsd-status 1110/tcp # Cluster status info
nfsd-keepalive 1110/udp # Client status info
picknfs 1598/tcp # picknfs
picknfs 1598/udp # picknfs
shiva_confsrvr 1651/tcp # shiva_confsrvr
shiva_confsrvr 1651/udp # shiva_confsrvr
3d-nfsd 2323/tcp # 3d-nfsd
3d-nfsd 2323/udp # 3d-nfsd
mediacntrlnfsd 2363/tcp # Media Central NFSD
mediacntrlnfsd 2363/udp # Media Central NFSD

根据以上的配置,那么 iptables 防火墙脚本文件如下设置:


[root@rhel5server scripts]# cat fw-nfs.sh
#!/bin/bash
#设置默认策略,先全部清空,再全部拒绝
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#下面单独开放
#开放回环网卡 lo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#开放 ping
iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
#开放 ping 域名
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
#开放 ssh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
#nfs portmap,nfs,mountd,lockd,rquotad,statd
iptables -A INPUT -p tcp -m multiport --dports 111,2049,892,32803,875,10005,10006 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --sports 111,2049,892,32803,875,10005,10006 -j
ACCEPT
iptables -A INPUT -p udp -m multiport --dports 111,2049,892,32796,875,10005,10006 -j
ACCEPT
iptables -A OUTPUT -p udp -m multiport --sports 111,2049,892,32796,875,10005,10006 -j
ACCEPT

[root@rhel5server scripts]# chmod u+x ./fw-nfs.sh


[root@rhel5server scripts]# ./fw-nfs.sh
[root@rhel5server scripts]# service iptables status
表格:filter
Chain INPUT (policy DROP)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:53
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports
111,2049,892,32803,875,10005,10006
6 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 multiport dports
111,2049,892,32796,875,10005,10006
Chain FORWARD (policy DROP)
num target prot opt source destination
Chain OUTPUT (policy DROP)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:22
5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport sports
111,2049,892,32803,875,10005,10006
6 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 multiport sports
111,2049,892,32796,875,10005,10006
表格:nat
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination

作为测试,nfs 配置文件如下:
[root@rhel5server scripts]# cat /etc/exports
/home/users 197.133.133.0/255.255.255.0(rw,insecure,no_root_squash,async)
/jobmgr 197.133.133.0/255.255.255.0(rw,insecure,no_root_squash,async)
/opt 197.133.133.0/255.255.255.0(rw,insecure,no_root_squash,async)
/root/nfs 197.133.133.0/255.255.255.0(rw,insecure,no_root_squash,async) *(ro)
准备作为 nfs 共享的目录已经建好,如下:
[root@rhel5server scripts]# ls -ld /home/users /jobmgr /opt /root/nfs
drwxr-xr-x 2 root root 4096 10-19 14:27 /home/users
drwxr-xr-x 2 root root 4096 10-19 14:27 /jobmgr
drwxr-xr-x 3 root root 4096 10-20 17:11 /opt
drwxr-xr-x 2 root root 4096 10-20 09:35 /root/nfs

先启动 portmap 服务:


[root@rhel5server scripts]# /etc/init.d/portmap start
启动 portmap: [确定]
[root@rhel5server scripts]# rpcinfo -p localhost
程序 版本 协议 端口
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper

看看端口侦听情况:
[root@rhel5server scripts]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program
name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 19249/portmap
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 6128/0
tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN 6525/1
tcp 0 0 :::22 :::* LISTEN 5867/sshd
tcp 0 0 ::1:6010 :::* LISTEN 6128/0
tcp 0 0 ::1:6011 :::* LISTEN 6525/1
udp 0 0 0.0.0.0:111 0.0.0.0:* 19249/portmap

启动 nfs 服务:
[root@rhel5server scripts]# /etc/init.d/nfs start
启动 NFS 服务: [确定]
关掉 NFS 配额: [确定]
启动 NFS 守护进程: [确定]
启动 NFS mountd: [确定]

再看看本机上注册的所有 RPC 服务,看看端口跟设置的对不对,跟防火墙开放的端口是否


匹配:
[root@rhel5server scripts]# rpcinfo -p localhost
程序 版本 协议 端口
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100011 1 udp 875 rquotad
100011 2 udp 875 rquotad
100011 1 tcp 875 rquotad
100011 2 tcp 875 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100021 1 udp 32769 nlockmgr
100021 3 udp 32769 nlockmgr
100021 4 udp 32769 nlockmgr
100021 1 tcp 32803 nlockmgr
100021 3 tcp 32803 nlockmgr
100021 4 tcp 32803 nlockmgr
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100005 1 udp 892 mountd
100005 1 tcp 892 mountd
100005 2 udp 892 mountd
100005 2 tcp 892 mountd
100005 3 udp 892 mountd
100005 3 tcp 892 mountd

为了验证一下是否已经成功让 nfs 服务绑定到了固定端口上,做一下测试:


先停止 nfs 服务:
[root@rhel5server scripts]# /etc/init.d/nfs stop
关闭 NFS mountd: [确定]
关闭 NFS 守护进程: [确定]
关闭 NFS 服务: [确定]
检查看看:
[root@rhel5server scripts]# rpcinfo -p localhost
程序 版本 协议 端口
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100011 1 udp 875 rquotad
100011 2 udp 875 rquotad
100011 1 tcp 875 rquotad
100011 2 tcp 875 rquotad
测试结果表明有点问题,网上搜索得到如下的答案:
官方网的链接:https://bugzilla.redhat.com/show_bug.cgi?id=450208
说这是一个 BUG
Bug 450208 - NFS doesn't stop rpc.rquotad Aliases:
Summary: NFS doesn't stop rpc.rquotad
Status: CLOSED DUPLICATE of bug 470483
Aliases: None (edit)
Product: Red Hat Enterprise Linux 5
Component: nfs-utils (Show Red Hat Enterprise Linux 5/nfs-utils bugs)
Version: 5.2
Platform: i386 Linux
Priority: low Severity: low
Target Milestone: rc
Assigned To: Steve Dickson
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
Show dependency tree
Reported: 2008-06-05 17:24 EDT by Rob Marti
Modified: 2009-03-17 10:21 EDT (History)
CC List: 4 users (show)

中间还有好些描述问题的现象,省略......

Comment 1 Msquared 2008-07-15 10:46:39 EDT


$RQUOTAD is also not initialised in the status portion of the init script.
Patch on its way...
Comment 2 Msquared 2008-07-15 10:48:44 EDT
Created attachment 311841 [details]
Patch for /etc/init.d/nfs - fixes handling of rquota daemon
Update nfs-utils to 1.0.9-33.el5, then apply this patch. rquota will now be
reported by service nfs status, and will be stopped by service nfs stop.
Comment 3 Jonathan Peatfield 2008-11-24 16:20:27 EST
While this is a trivial problem, it would be nice if this could be rolled into
the next nfs-utils release - since it is *such* a trivial change...
Of course the next 'rc' release is probably due soon.
-- Jon
Comment 4 Till Bubeck 2008-11-27 05:07:56 EST
This bug also appears in the newest Fedora 10: nfs-utils-1.1.4-1.fc10.i386
Comment 5 Steve Dickson 2008-12-01 13:35:27 EST
*** This bug has been marked as a duplicate of bug 470483 ***
Comment 6 Jonathan Peatfield 2008-12-01 14:52:21 EST
Hmm #470483 isn't visible (to me anyway). Is it standard policy to close,
referring to a non-public bugzilla entry?
Or is #470483 a different *kind* of entry?

上面红色的 comment 2 提到要更新软件包 nfs-utils 到 1.0.9-33.el5 版本,然后打补丁。查查看


我的版本是多少:
[root@rhel5server ~]# rpm -qa nfs-utils
nfs-utils-1.0.9-33.el5
符合条件,不用更新软件包了,直接打补丁。补丁是这么说的,如下图:
那么照着做,修改/etc/init.d/nfs 文件,也就是把原来的 46-48 行移到 21 行后面 22 行前面,
这两句话:
# Remote quota server
[ -z "$RQUOTAD" ] && RQUOTAD=`type -path rpc.rquotad`
改好了,保存一下。

前面因为 BUG 无法停掉 rpc.rquotad,现在 BUG 修复了再来试试看:


[root@rhel5server scripts]# /etc/init.d/nfs stop
关闭 NFS mountd: [失败]
关闭 NFS 守护进程: [失败]
关闭 NFS quotas: [确定]
关闭 NFS 服务: [失败]
[root@rhel5server scripts]# rpcinfo -p localhost
程序 版本 协议 端口
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
再启动试试看那些服务进程是否使用固定的端口:
[root@rhel5server scripts]# /etc/init.d/nfs start
启动 NFS 服务: [确定]
关掉 NFS 配额: [确定]
启动 NFS 守护进程: [确定]
启动 NFS mountd: [确定]
[root@rhel5server scripts]# rpcinfo -p localhost
程序 版本 协议 端口
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100011 1 udp 875 rquotad
100011 2 udp 875 rquotad
100011 1 tcp 875 rquotad
100011 2 tcp 875 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100021 1 udp 32769 nlockmgr
100021 3 udp 32769 nlockmgr
100021 4 udp 32769 nlockmgr
100021 1 tcp 32803 nlockmgr
100021 3 tcp 32803 nlockmgr
100021 4 tcp 32803 nlockmgr
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100005 1 udp 892 mountd
100005 1 tcp 892 mountd
100005 2 udp 892 mountd
100005 2 tcp 892 mountd
100005 3 udp 892 mountd
100005 3 tcp 892 mountd

端口的使用没有变化,说明已经测试成功。

再到另一台客户端主机(也是一个 vmware 中的虚拟系统,客户端没开防火墙)上测试一


下,看能否看到 nfs 服务器的共享目录:
[root@nfsnode1 ~]# showmount -e 197.133.133.10
Export list for 197.133.133.10:
/opt 197.133.133.0/255.255.255.0
/jobmgr 197.133.133.0/255.255.255.0
/root/nfs (everyone)
/home/users 197.133.133.0/255.255.255.0
正常,能看到,再挂载试试看:
[root@nfsnode1 ~]# mount -t nfs 197.133.133.10:/opt /opt
mount.nfs: Input/output error
长时间没反应,最后报了个错。nfs 服务器上看系统日志文件/var/log/messages 也没错误信息。
突然想到是是客户端 portmap 服务忘了启动:
[root@nfsnode1 ~]# /etc/init.d/portmap status
portmap 已停
[root@nfsnode1 ~]# /etc/init.d/portmap start
启动 portmap: [确定]
[root@nfsnode1 ~]# mount -t nfs 197.133.133.10:/opt /opt
[root@nfsnode1 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 14G 3.4G 9.6G 26% /
/dev/sda5 196M 18M 169M 10% /boot
tmpfs 379M 0 379M 0% /dev/shm
197.133.133.10:/opt 19G 3.6G 15G 20% /opt
[root@nfsnode1 ~]# ls /opt
google-earth test.txt
客户端上可以正常挂载 nfs 服务器共享目录,根据 nfs 服务器/etc/exports 文件的设置,客户
端应该对刚才挂载的目录有读写权限,那再测试一下:
[root@nfsnode1 ~]# touch /opt/hello.txt
[root@nfsnode1 ~]# echo "hello world." >> /opt/hello.txt
[root@nfsnode1 ~]# cat /opt/hello.txt
hello world.
一切正常,nfs 服务器上再看看刚才在客户端创建的文件:
[root@rhel5server scripts]# cat /opt/hello.txt
hello world.

实验完毕!

Das könnte Ihnen auch gefallen

  • LNX KM 1
    LNX KM 1
    Dokument5 Seiten
    LNX KM 1
    liuyl
    Noch keine Bewertungen
  • Hp-Ux KC 10
    Hp-Ux KC 10
    Dokument1 Seite
    Hp-Ux KC 10
    liuyl
    Noch keine Bewertungen
  • Data SS0
    Data SS0
    Dokument4 Seiten
    Data SS0
    liuyl
    Noch keine Bewertungen
  • LNX KM 1
    LNX KM 1
    Dokument5 Seiten
    LNX KM 1
    liuyl
    Noch keine Bewertungen
  • Sed 1
    Sed 1
    Dokument11 Seiten
    Sed 1
    liuyl
    Noch keine Bewertungen
  • Hp-Ux Q4 1
    Hp-Ux Q4 1
    Dokument10 Seiten
    Hp-Ux Q4 1
    liuyl
    Noch keine Bewertungen
  • TC 0
    TC 0
    Dokument2 Seiten
    TC 0
    liuyl
    Noch keine Bewertungen
  • Sed 2
    Sed 2
    Dokument22 Seiten
    Sed 2
    liuyl
    Noch keine Bewertungen
  • WL WS 1
    WL WS 1
    Dokument3 Seiten
    WL WS 1
    liuyl
    Noch keine Bewertungen
  • Data SS1
    Data SS1
    Dokument17 Seiten
    Data SS1
    liuyl
    Noch keine Bewertungen
  • Hds Emc迁移测试方案
    Hds Emc迁移测试方案
    Dokument4 Seiten
    Hds Emc迁移测试方案
    liuyl
    Noch keine Bewertungen
  • HDS Health Check 1
    HDS Health Check 1
    Dokument4 Seiten
    HDS Health Check 1
    liuyl
    Noch keine Bewertungen
  • Win Repair
    Win Repair
    Dokument3 Seiten
    Win Repair
    liuyl
    Noch keine Bewertungen
  • Win Repair
    Win Repair
    Dokument3 Seiten
    Win Repair
    liuyl
    Noch keine Bewertungen
  • 40F Backup 1
    40F Backup 1
    Dokument4 Seiten
    40F Backup 1
    liuyl
    Noch keine Bewertungen
  • 40F Backup 2
    40F Backup 2
    Dokument3 Seiten
    40F Backup 2
    liuyl
    Noch keine Bewertungen
  • SW 2
    SW 2
    Dokument3 Seiten
    SW 2
    liuyl
    Noch keine Bewertungen
  • Adv FS1
    Adv FS1
    Dokument2 Seiten
    Adv FS1
    liuyl
    Noch keine Bewertungen
  • SW 1
    SW 1
    Dokument1 Seite
    SW 1
    liuyl
    Noch keine Bewertungen
  • SDUX2
    SDUX2
    Dokument3 Seiten
    SDUX2
    liuyl
    Noch keine Bewertungen
  • Program Mmap
    Program Mmap
    Dokument5 Seiten
    Program Mmap
    liuyl
    Noch keine Bewertungen
  • SDUX1
    SDUX1
    Dokument4 Seiten
    SDUX1
    liuyl
    Noch keine Bewertungen
  • Program Make 8
    Program Make 8
    Dokument10 Seiten
    Program Make 8
    liuyl
    Noch keine Bewertungen
  • Aix Mem Faq
    Aix Mem Faq
    Dokument3 Seiten
    Aix Mem Faq
    liuyl
    Noch keine Bewertungen
  • Program Make 9
    Program Make 9
    Dokument7 Seiten
    Program Make 9
    liuyl
    Noch keine Bewertungen
  • Program Make 5a
    Program Make 5a
    Dokument26 Seiten
    Program Make 5a
    liuyl
    Noch keine Bewertungen
  • Aix Pha Faq
    Aix Pha Faq
    Dokument1 Seite
    Aix Pha Faq
    liuyl
    Noch keine Bewertungen
  • Program Make 7
    Program Make 7
    Dokument66 Seiten
    Program Make 7
    liuyl
    Noch keine Bewertungen
  • Program Make 7
    Program Make 7
    Dokument66 Seiten
    Program Make 7
    liuyl
    Noch keine Bewertungen