我正在尝试设置 NFS 共享 + iptables,以便可以实际访问它。我找不到任何最新/可用的文档/文章。您能解释一下或分享正确文档的链接吗?我对 nfs/iptables 一无所知,每次我决定摆脱iptables -F
“解决方案”时,我都会遇到文档障碍。
我不知道我使用的是哪个版本的 nfs。尝试使用“nfsstat –s”或“nfsstat –c”不会打印任何相关信息。
但我认为它将是版本 4。我尝试遵循(迄今为止我发现的最好的文章/文档):
https://prefetch.net/blog/2010/11/02/firewalling-a-linux-nfs-server-with-iptables/
并且 /etc/sysconfig/nfs 中的静态端口设置被忽略,并且缺少几个服务/systemd 单元。
您能否推荐一些关于设置 nfs 和 iptables 的阅读材料,这些材料易读、易懂且最新?如果 iptables 已过时,应禁用它以支持其他更新的解决方案,请分享如何操作。
编辑:在防火墙配置中,区域是公共的,并且 nfs 属于受信任的服务,它们“可以从所有主机和网络访问”(但事实并非如此)。
rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 58868 status
100024 1 tcp 51719 status
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100021 1 udp 54703 nlockmgr
100021 3 udp 54703 nlockmgr
100021 4 udp 54703 nlockmgr
100021 1 tcp 35247 nlockmgr
100021 3 tcp 35247 nlockmgr
100021 4 tcp 35247 nlockmgr
我在某处找到了:
firewall-cmd --permanent --add-port=2049/udp ; firewall-cmd --permanent --add-port=2049/tcp; firewall-cmd --permanent --add-port=111/udp; firewall-cmd --permanent --add-port=111/tcp
这可能与上面的端口相关,但没有成功,不起作用。直到我这样做,电视才能连接iptables -F
。
答案1
iptables -F
刷新所有规则,这类似于禁用防火墙。
我从未使用命令来管理我的 iptable 规则,我总是手动编辑配置文件“/etc/sysconfig/iptables”。我还总是删除防火墙,直接使用 iptables,因为防火墙是管理 iptables 的前端。
如果您需要有关 Firewalld 的特定文档,请查看“https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7“其对 Fedora 的作用应该是一样的。
如果是我的话,我会做以下事情:
- 通过运行禁用firewalld
sudo systemctl disable firewalld*
- 运行以下命令安装 iptables 服务
sudo dnf install iptables-services
- 启用 iptables 在启动时启动
sudo systemctl enable iptables
- 编辑你的 iptables 配置文件,如下所示
/etc/sysconfig/iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 2049 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 111 -j ACCEPT
-A INPUT -p udp -m udp --dport 2049 -j ACCEPT
-A INPUT -p udp -m udp --dport 111 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
您可以使用以下方法之一轻松制定一条综合规则来接受来自本地网络或电视的所有流量:
- 所有网络流量:
A INPUT -s 192.168.1.0/24 -j ACCEPT
其中 192.168.1.0 是您的网络,/24 是您的子网。 - 仅您的电视:
-A INPUT -s 192.168.1.22/32 -j ACCEPT
其中 192.168.1.22 是您的电视的 IP 地址。
之后,只需保存文件并启动 itpables 服务sudo systemctl start iptables