QNAP QuFirewall 防火墙配置和虚拟网络设备管理
QNAP QuFirewall 防火墙概览
QuFirewall 是 QNAP NAS 设备上的防火墙功能,用于管理网络流量、控制数据包的流向和访问权限。在启用 QuFirewall 防火墙时,默认不会存在开放所有端口的规则,以提高网络安全性。
- 默认规则和安全策略
当 QuFirewall 开启时,默认不会有如下规则:☑️ - 接口[ALL] - 服务端口[任何] - 协议[任何] - 来源[任何] - 权限[允许]
因为这样的规则将导致防火墙不再限制任何端口的流量,仅进行一些基础的安全防护。例如,在指定时段内多次尝试登录失败时,系统将自动阻止恶意 IP 地址,提高对 SSH、FTP、HTTP/HTTPS 等服务的破解抵抗能力。
- 防火墙策略的配置
在大局域网中,NAS 设备相对较为安全。但在公网环境下,用户可能希望开放部分服务端口以供外部访问,同时又需要限制不必要的 IP 段的扫描。这时可以配置 QuFirewall 仅允许来自中国的流量,以有效保护免受互联网上的恶意扫描攻击。
当用户使用 ZeroTier、Tailscale 等服务时,它们通常会创建虚拟网络设备。由于 QNAP 防火墙无法识别第三方创建的虚拟网络设备,导致流量无法通过这些设备进入 NAS,只能从 NAS 流出。这可能导致 NAS 可以 ping 通其他设备,但其他设备无法 ping 通 NAS 的 IP。
QNAP 无法识别虚拟网络设备的情况下,可能导致 NAS 无法建立到虚拟网络的双向通信。这是因为防火墙默认不会包含虚拟设备的规则,导致进入 NAS 的流量被阻止,仅有流出的权限。
手动添加虚拟网络设备规则
为了解决虚拟网络设备流量无法进入 NAS 的问题,可以使用 Linux 系统命令 iptables
手动配置防火墙规则。当启用 QuFirewall 防火墙时,系统会自动创建一个名为 QUFIREWALL
的链,用于配置防火墙策略。通过运行命令
可以查看当前防火墙规则。iptables -L QUFIREWALL -v
-
首先要查看虚拟网络设备名,ZeroTier 创建的设备名是
ztfp6pggry
当ZeroTier加入第二个Network ID后,会新增加类似ztrf2u52bz的名字,以zt开头的设备,这时就存在多个虚拟网络设备。
第二个命令可以查找以zt开头的设备名字ip link show
ip link show | awk -F'[[:space:]]|:' '/zt/ && NF>2 {print $3}' -
要手动添加虚拟网络设备,可以使用以下命令:
iptables -I QUFIREWALL 1 -i ztfp6pggry -j ACCEPT
-
也可以使用下面代码,避免多次运行导致规则列表中出现冗余的重复规则
iptables --check QUFIREWALL -i ztfp6pggry -j ACCEPT || iptables -I QUFIREWALL 1 -i ztfp6pggry -j ACCEPT
这将允许虚拟网络设备 ztfp6pggry 的所有流量通过QUFIREWALL防火墙。
运行
可以查看数字部分(如 pkts bytes),表示有多少数据包和字节数通过该规则,如果这个数值不断变大,表示该设备有流量通过,证明我们说的这个设备已经被系统防火墙接纳。 iptables -L QUFIREWALL -v
以下是运行
的示例输出:iptables -L QUFIREWALL -v
删除虚拟网络设备规则
如果需要删除已添加的虚拟网络设备,可以使用以下命令:
iptables -D QUFIREWALL -i ztfp6pggry -j ACCEPT
注意
- 当关闭/开启防火墙后,我们手动配置的 ztfp6pggry 在防火墙列表里会看不到,但是流量转发规则还存在。
- 当 QNAP 系统重启后,此条规则会失效,需要重新手动配置。
- 通过以上配置,用户可以更灵活地管理防火墙策略。
很好,解决了我的问题,我就是nas能ping通其他的设备,但是其他的ping不通nas