免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 9315 | 回复: 6
打印 上一主题 下一主题

关于NFS设置防火墙的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-06 15:30 |只看该作者 |倒序浏览
大家好,我配置好了NFS伺服器,

# vi /etc/exports
/tmp *(ro,all_squash)
/var/ftp/pub 192.168.0.210(ro,all_squash)
/home/upload 192.168.0.210(rw,all_squash,anonuid=210,anongid=210)

但在防火牆的設定上遇到了一些麻煩,希望知道的能指點一二,我的iptable如下:

Iptables –L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain RH-Firewall-1-INPUT (2 references)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 255
ACCEPT     esp  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     ah   --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     udp  --  0.0.0.0/0            224.0.0.251         udp dpt:5353
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:631
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:631
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:21
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           state NEW udp dpt:2049
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           state NEW udp dpt:137
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           state NEW udp dpt:138
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:139
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:445
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:23
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:111
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           state NEW udp dpt:111
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

在用戶端執行如下操作出現以下情況:
# mount -t nfs 192.168.0.204:/home/upload/ /tmp
mount: mount to NFS server '192.168.0.204' failed: System Error: No route to host.

# showmount -e 192.168.0.204
rpc mount export: RPC: Unable to receive; errno = No route to host

有哪位兄弟知道原因吗?

论坛徽章:
0
2 [报告]
发表于 2007-08-07 17:11 |只看该作者
停止防火墙,在客户端是可以挂载的,问题就在防火墙,NFS在启动时除了2049和111两个固定端口外,还会产生很多随机端口,参照网上一位前辈的指点,如果把mountd, statd, lockd 三个固定在某个port上,方法如下:

# vi /etc/sysconfig/nfs
MOUNTD_PORT="4002"
STATD_PORT="4003"
LOCKD_TCPPORT="4004"
LOCKD_UDPPORT="4004"
# service nfs restart

并在防火墙中开放相应端口,发现还是不能挂载,CU上有知道原因的朋友吗,麻烦指点一下,多谢了!

论坛徽章:
0
3 [报告]
发表于 2007-08-08 08:45 |只看该作者
CU没有人知道么???

论坛徽章:
0
4 [报告]
发表于 2007-08-08 10:32 |只看该作者
不知道nfs用的什么端口
你要不直接就认证源地址,不设置端口,试试看

论坛徽章:
0
5 [报告]
发表于 2007-08-09 09:27 |只看该作者
不知道nfs用的什么端口
你要不直接就认证源地址,不设置端口,试试看


谢谢!
你的方法肯定是没有问题的,这样做就开放了源地址的所有端口吧,这样似乎不是很安全!

论坛徽章:
0
6 [报告]
发表于 2008-06-02 11:49 |只看该作者
在设置了防火墙的环境中使用NFS,需要在防火墙上打开如下端口:

1. portmap 端口 111 udp/tcp;Fz4Linux联盟
2. nfsd 端口 2049 udp/tcp;Fz4Linux联盟
3. mountd 端口 "xxx" udp/tcpFz4Linux联盟
系统 RPC服务在 nfs服务启动时默认会为 mountd动态选取一个随机端口(32768--65535)来进行通讯,我们可以通过编辑/etc/services 文件为 mountd指定一个固定端口:Fz4Linux联盟
# vi /etc/servicesFz4Linux联盟
在末尾添加 Fz4Linux联盟
mountd 1011/udpFz4Linux联盟
mountd 1011/tcpFz4Linux联盟
保存该文件Fz4Linux联盟
# stopsrc -s rpc.mountdFz4Linux联盟
# startsrc -s rpc.mountdFz4Linux联盟
# exportfs -aFz4Linux联盟
# rpcinfo -p HostnameFz4Linux联盟
现在我们会发现 mountd已经和端口 1011绑定了。

另外,nfs中需要通讯的服务还有 rpc.lockd和 rpc.statd,其中对lockd我们可以用类似的方法来指定固定端口,Fz4Linux联盟
# vi /etc/servicesFz4Linux联盟
添加Fz4Linux联盟
lockd 35000/ucpFz4Linux联盟
lockd 35000/tdpFz4Linux联盟
# stopsrc -s rpc.lockdFz4Linux联盟
# startsrc -s rpc.lockdFz4Linux联盟
# exportfs -aFz4Linux联盟
nfs客户端mount文件系统Fz4Linux联盟
# rpcinfo -p Hostname

但 rpc.statd无法通过该方法来指定端口,它只能使用随机端口,如有必要,在防火墙上要根据下面命令的显示来开放随机端口:

# no -a |grep ephemeralFz4Linux联盟
tcp_ephemeral_high = 65535Fz4Linux联盟
tcpp_ephemeral_low = 32768Fz4Linux联盟
udp_ephemeral_high = 65535Fz4Linux联盟
udp_ephemeral_low = 32768

当然也可以不开放 rpc.statd需要的随机端口,带来的影响就是如果 nfs连接中断(比如server或client宕掉了),系统将无法通过statd来恢复连接中断前的状态,而必须重新 mount该nfs文件系统。


我试过,这样做可以解决大部分问题

论坛徽章:
0
7 [报告]
发表于 2008-06-04 15:13 |只看该作者
看了写的好麻烦,楼主直接又iptables 写ACL不就行了吗,何必开Firewall
iptables -P INPUT DROP
iptables -A INPUT -m state --state ESTAHLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

首先开启portmap 服务
service portmap start

iptables -A INPUT -p TCP --dport 111 -m state --state NEW -j ACCEPT
iptables -A INPUT -p UDP --dport 111 -m state --state NEW -j ACCEPT

编辑# vi /etc/sysconfig/nfs
MOUNTD_PORT="4002"
STATD_PORT="4003"
LOCKD_TCPPORT="4004"
LOCKD_UDPPORT="4004"

service nfs start

iptables -A INPUT -p TCP --dport 2049 -m state --state NEW -j ACCEPT
iptables -A INPUT -p UDP --dport 2049 -m state --state NEW -j ACCEPT
iptables -A INPUT -p TCP --dport 4002:4004 -m state --state NEW -j ACCEPT
iptables -A INPUT -p UDP --dport 4004 -m sate --state NEW -j ACCEPT

[ 本帖最后由 joy167270 于 2008-6-4 15:14 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP