如果没有iptables
规则,我可以装载NFSSERVER:/PATH
,但启用它(firewall
/ 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
服务器计算机。
答案 0 :(得分:7)
NFS服务器:
为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行和第5行来禁用NFS v3和NFS v2支持。 6 / / etc / sysconfig / nfs
MOUNTD_NFS_V2="no"
MOUNTD_NFS_V3="no"
保存当前的Iptables规则供以后使用。 (如果您的发行版中没有iptables-save,您可以尝试iptables -S filename)
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层protcols。 rpcbind(或portmapper)的标准端口号是111 / udp,111 / tcp和nfs是2049 / udp,2049 / tcp。
rpcinfo -p | sort -k 3
立即恢复pre-nfs-firewall-rules
iptables-restore < pre-nfs-firewall-rules-server
为NFS服务器编写iptables规则(注意:必须允许环回适配器,否则你会看到丢弃的数据包,当你重新启动nfs服务时,它会吐出 错误 {正在启动NFS配额:无法注册服务:RPC:超时rpc.rquotad:无法注册(RQUOTAPROG,RQUOTAVERS,udp)。[FAILED]} 用于rquotad守护程序。您可以通过添加一个来检查规则,在INPUT底部的LOG跳转目标或过滤器表的OUTPUT链中
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-save,您可以尝试iptables -S filename)
iptables-save > pre-nfs-firewall-rules-client
刷新并检查Iptables规则
iptables -F
iptables -L
从客户端计算机获取防火墙NFS服务器端口,并记下端口号和OSI第4层protcols。
rpcinfo -p 'ip-addr-nfs-server' | sort -k 3
立即恢复pre-nfs-firewall-rules
iptables-restore < pre-nfs-firewall-rules-client
为NFS客户端编写iptables规则(注意:必须允许环回适配器,否则你会看到丢弃的数据包,当你重新启动nfs服务时,它会吐出 错误 {正在启动NFS配额:无法注册服务:RPC:超时rpc.rquotad:无法注册(RQUOTAPROG,RQUOTAVERS,udp)。[FAILED]} 用于rquotad守护程序。您可以通过添加一个来检查规则,在INPUT底部的LOG跳转目标或过滤器表的OUTPUT链中
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
列出所有伪root NFS-V4导出目录(NFS Lazy mount)
ls /net/ip-addr-nfs-server
答案 1 :(得分:6)
如果您只需要NFS版本4(已经超过10年),您就不需要进行@ Sathish的答案中描述的所有工作。只需确保TCP端口2049打开服务器的防火墙,并且客户端的防火墙允许出站流量到服务器上的端口2049.
CentOS 5(也是旧的)有一个很好的explanation为什么NFSv4比v3和v2更加防火墙友好。