2014-10-03 53 views
3

没有iptables规则我能够挂载我的NFSSERVER:/PATH但启用它(firewall/iptables)启用我无法挂载。NFS服务器和NFS客户端的iptables规则

[.e.g., after iptables --flush/ firewaalld stop ; mount NFSSERVER:/Path works ] 

我不应该禁用/清除firewall/iptables但我允许打开一个端口。我需要添加什么规则来打开端口/安装?

当前的默认政策是DROP all INCOMING/OUTGOING/FORWARD并且有几个规则,允许从外部端口80的wget等,

添加NFS服务器端口没有帮助。

iptables -A OUTPUT -p tcp --dport 2049 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
iptables -A INPUT -p tcp --sport 2049 -m state --state ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -p udp --dport 2049 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
iptables -A INPUT -p udp --sport 2049 -m state --state ESTABLISHED -j ACCEPT 

谢谢。

PS:这是为nfs客户端而不是NFS服务器机器。

+1

这不起作用,因为'nfsd'不是唯一需要网络访问的守护进程。涉及NFS的其他守护进程是portmap,statd,mountd,lockd和rquotad。例如,请参见[this](http://tldp.org/HOWTO/NFS-HOWTO/security.html#FIREWALLS)和[this](http://rlworkman.net/howtos/NFS_Firewall_HOWTO)。 – Yoel 2014-10-04 19:48:27

回答

6

NFS SERVER:

为rquotd配置端口(875/UDP; 875/TCP),的lockd(32803/TCP; 32769/UDP),mountd的(892/UDP; 892/TCP),的statd (10053/UDP; 10053/TCP),statd_outgoing(10054/UDP; 10054/TCP)

vim /etc/sysconfig/nfs 

如果需要的话,通过编辑线5的& 6的/ etc/SYSCONFIG /禁用NFS NFS v3和NFS v2的询问服务

MOUNTD_NFS_V2="no" 
    MOUNTD_NFS_V3="no" 

保存当前的iptables规则以备后用。 (如果iptables的保存在你的分布不存在,您可以尝试的iptables -S文件名)

iptables-save > pre-nfs-firewall-rules-server 

冲洗,并检查iptables规则

iptables -F 
    iptables -L 

停止和启动NFS及相关服务按以下顺序

service rpcbind stop 
    service nfslock stop 
    service nfs stop 
    service rpcbind start 
    service nfslock start 
    service nfs start 

确保已配置的NFS及其关联端口显示为之前设置的端口号和OSI第4层协议。 rpcbind(或portmapper)的标准端口号是111/udp,111/tcp和nfs是2049/udp,2049/tcp。

rpcinfo -p | sort -k 3 

恢复前NFS的防火墙规则现在

iptables-restore < pre-nfs-firewall-rules-server 

写iptables规则的NFS服务器(注:环回适配器必须允许,否则你会看到数据包丢弃,也当你重新启动nfs服务,它会吐出错误 {启动NFS配额:无法注册服务:RPC:超时rpc.rquotad:无法注册(RQUOTAPROG,RQUOTAVERS,udp)。[FAILED]} rquotad守护进程。您可以通过过滤器表的输入或输出链)的底部添加具有LOG跳转目标的规则检查这个

iptables -P INPUT DROP 
    iptables -P OUTPUT DROP 
    iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p udp -m multiport --dports 10053,111,2049,32769,875,892 -m state --state NEW,ESTABLISHED -j ACCEPT 
    iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m multiport --dports 10053,111,2049,32803,875,892 -m state --state NEW,ESTABLISHED -j ACCEPT 
    iptables -A OUTPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p udp -m multiport --sports 10053,111,2049,32769,875,892 -m state --state ESTABLISHED -j ACCEPT 
    iptables -A OUTPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m multiport --sports 10053,111,2049,32803,875,892 -m state --state ESTABLISHED -j ACCEPT 
    iptables -I INPUT -i lo -d 127.0.0.1 -j ACCEPT 
    iptables -I OUTPUT -o lo -s 127.0.0.1 -j ACCEPT 
    iptables -L -n --line-numbers 

配置NFS出口目录

vim /etc/exports 
    exportfs -av 
    showmount -e 
    rpcinfo -p 

停止和启动NFS及相关服务以下序列

service rpcbind stop 
    service nfslock stop 
    service nfs stop 
    service rpcbind start 
    service nfslock start 
    service nfs start 

NFS客户:

保存当前的iptables规则以备后用。 (如果iptables的保存在你的分布不存在,您可以尝试的iptables -S文件名)

iptables-save > pre-nfs-firewall-rules-client 

冲洗,并检查iptables规则

iptables -F 
    iptables -L 

从客户机和notedown获取防火墙NFS服务器端口端口号和OSI第4层协议。

rpcinfo -p 'ip-addr-nfs-server' | sort -k 3 

恢复前NFS的防火墙规则现在

iptables-restore < pre-nfs-firewall-rules-client 

写iptables规则的NFS客户端(注:环回适配器必须允许,否则你会看到数据包丢弃,也当你重新启动nfs服务,它会吐出错误 {启动NFS配额:无法注册服务:RPC:超时rpc.rquotad:无法注册(RQUOTAPROG,RQUOTAVERS,udp)。[FAILED]}对于rquotad守护程序。这通过在INPUT或OUT底部添加一条LOG跳转目标规则PUT过滤表中的链)

iptables -P INPUT DROP 
    iptables -P OUTPUT DROP 
    iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p udp -m multiport --sports 10053,111,2049,32769,875,892 -m state --state ESTABLISHED -j ACCEPT 
    iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m multiport --sports 10053,111,2049,32803,875,892 -m state --state ESTABLISHED -j ACCEPT 
    iptables -A OUTPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p udp -m multiport --dports 10053,111,2049,32769,875,892 -m state --state NEW,ESTABLISHED -j ACCEPT 
    iptables -A OUTPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m multiport --dports 10053,111,2049,32803,875,892 -m state --state NEW,ESTABLISHED -j ACCEPT 
    iptables -I INPUT -i lo -d 127.0.0.1 -j ACCEPT 
    iptables -I OUTPUT -o lo -s 127.0.0.1 -j ACCEPT 
    iptables -L -n --line-numbers 

停止和启动NFS及相关服务按以下顺序

service rpcbind stop 
    service nfslock stop 
    service nfs stop 
    service rpcbind start 
    service nfslock start 
    service nfs start 

列表NFS服务器出口

showmount -e 'ip-addr-nfs-server' 

安装NFS手动导出(永久坐骑使用/ etc/fstab进行配置)

mount -t nfs ip-addr-nfs-server:/exported-directory /mount-point -o rw,nfsvers=3 
    mount -t nfs ip-addr-nfs-server:/exported-directory /mount-point -o rw --> For NFS4 version 

配置autofs的,如果挂载优选用于NFS出口,并与LDAP用户主目录(直接和间接映射可设置)

vim /etc/auto.master -> specify the mount point and map-name (Eg: auto.nfs) 
    vim /etc/map-name 
    service autofs stop 
    service autofs start 

检查安装NFS导出

df -h -F nfs 
    mount | grep nfs 

列出所有伪根NFS -V4出口目录(NFS挂载懒)

ls /net/ip-addr-nfs-server 
4

如果你需要的是NFS版本4(这已经是10岁以上),你不需要去参考@Sathish的答案中所描述的所有努力。只要确保TCP端口2049打开服务器的防火墙,并且客户端的防火墙允许出站流量到达服务器上的端口2049。

CentOS 5(也是旧的)有一个很好的explanation为什么NFSv4比v3和v2更具防火墙友好性。

+0

这就是我一直在寻找的!谢谢! – 2017-11-22 14:48:03

相关问题