如果没有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
服务器计算机。
如果您只需要 NFS 版本 4(已经超过 10 年(,则无需进行 @Sathish 答案中描述的所有工作。只需确保 TCP 端口 2049 打开服务器的防火墙,并且客户端的防火墙允许到服务器上端口 2049 的出站流量。
CentOS 5 (也是旧的( 很好地解释了为什么 NFSv4 比 v3 和 v2 对防火墙更友好。
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
如果需要,通过编辑/etc/sysconfig/nfs 的第 5 行和第 6 行来禁用 NFS v3 和 NFS v2 支持
MOUNTD_NFS_V2="no"
MOUNTD_NFS_V3="no"
保存当前 Iptables 规则供以后使用。(如果您的发行版中没有iptables-save,您可以尝试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 层 protcol。rpcbind (或portmapper(的标准端口号为 111/udp、111/tcp,nfs 为 2049/udp、2049/tcp。
rpcinfo -p | sort -k 3
立即恢复 nfs 防火墙之前的规则
iptables-restore < pre-nfs-firewall-rules-server
为 NFS 服务器编写 iptables 规则(注意:环回适配器必须允许,否则您将看到丢弃的数据包,并且当您重新启动 nfs 服务时,它将吐出错误 {启动 NFS 配额:无法注册服务:RPC:超时 rpc.rquotad:无法注册(RQUOTAPROG、RQUOTAVERS、udp(。[失败]}对于 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-save,您可以尝试iptables -S文件名(
iptables-save > pre-nfs-firewall-rules-client
刷新并检查 Iptables 规则
iptables -F
iptables -L
从客户端计算机获取防火墙的 NFS 服务器端口,并记下端口号和 OSI 第 4 层 protcol。
rpcinfo -p 'ip-addr-nfs-server' | sort -k 3
立即恢复 nfs 防火墙之前的规则
iptables-restore < pre-nfs-firewall-rules-client
为 NFS 客户端编写 iptables 规则(注意:环回适配器必须允许,否则您将看到丢弃的数据包,并且当您重新启动 nfs 服务时,它将吐出错误 {启动 NFS 配额:无法注册服务:RPC:超时 rpc.rquotad:无法注册(RQUOTAPROG、RQUOTAVERS、udp(。[失败]}对于 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 --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
如果自动挂载是 nfs 导出的首选,并且使用 ldap 用户主目录(可以设置直接映射和间接映射(,则配置 autofs(可以设置直接映射和间接映射(
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