ufw 防火墙规则,初学者问题

ufw 防火墙规则,初学者问题

也许这是一个愚蠢的问题,但无论如何

如果你的计算机只有一个 IP 地址 207.15.15.15,(IP 地址和协议只是为了使其更具体),那么这两个命令之间有什么区别吗?

sudo ufw allow from 95.95.95.95 to any port 80 proto TCP

sudo ufw allow from 95.95.95.95 to 207.15.15.15 port 80 proto TCP

答案1

让我从技术角度来谈谈这个问题。请考虑一下,这只是内核中内置的底层系统的ufw一个用户友好型前端。netfilteriptables

考虑到这一点,让我们从一个iptables角度来解读您的规则。

你的第一条规则是这样的:

iptables -A INPUT -p tcp --dport 80 -s 95.95.95.95 -j ACCEPT

你的第二条规则是这样的:

iptables -A INPUT -p tcp --dport 80 -s 95.95.95.95 -d 207.15.15.15 -j ACCEPT

但从本质上讲,它们都通过 TCP 协议从 95.95.95.95 接受端口 80。唯一的区别是您在过滤器中指定目标 IP 地址。

如果您的系统只有一个面向公众的 IP 地址,并且您的系统不在路由器或 NAT 后面,则规则是相同的。也就是说,假设您的 IP 地址 207.15.15.15 始终保持不变。如果 IP 地址发生变化,那么您输入的第二条规则将不再正常运行。

但是如果你的系统位于 NAT 后面,那么你应该不是使用第二种方法,该方法指定目标 IP 地址,因为您的 NAT 系统无法以符合“接受”规则的方式正确读取数据包。在这种情况下,您应该只使用第一种方法。(因为 NAT 会将数据包的目标重写为内部 IP 地址,因此您的系统将看到的不是 207.15.15.15 而是 192.168.6.6 这样的目标,因此您添加的额外“目标”匹配将阻止数据包的接受。)

本质上,除非您运行多个 IP 地址并且每个地址上使用不同的端口和规则集运行不同的服务,否则您实际上不需要在规则中ufw使用该to 207.15.15.15部分指定“目标”IP 地址。

相关内容