![ufw为什么不屏蔽网站?](https://linux22.com/image/201923/ufw%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E5%B1%8F%E8%94%BD%E7%BD%91%E7%AB%99%EF%BC%9F.png)
我正在使用 Debian 11 bullseye。我正在尝试使用 ufw 防火墙来阻止某些 IP。我已经安装了 ufw 包。然后我添加了一些简单的规则并通过以下方式启动 ufw
sudo ufw enable
然后我检查了它的状态
sudo ufw status verbose
它给出了我的规则。我还使用 systemctl 命令启用它
sudo systemctl enable ufw
sudo systemctl start ufw
他们俩也都成功了。
然而,当我尝试时,我发现IP没有被阻止,它可以向我的电脑发送包裹。为了检查 ufw 是否正常工作,我简单地使用了已知广告网站的 IP,例如 tpc.googlesyndicate.com(我使用ping -c 1 tpc.googlesyndicate.com查找网站的 IP)。我将其添加为 ufw 规则sudo ufw 拒绝来自 xxxx。然而,我看到 IP 源正在向我的计算机发送包(因为我在浏览器中看到了它的广告)。 (我在很短的时间内完成了所有这些操作,因此该站点没有更改其 IP 地址)。
为什么 ufw 不工作并阻止传入的包?我做错了什么?
答案1
您创建了一条规则来阻止未经请求的入站流量,而您实际上想要阻止出站流量。
由于您的计算机发起连接,防火墙认为其状态已建立/与出站连接(您发起的连接)相关,因此它不会阻止从远程主机接收的后续数据包。
您需要阻止该 IP 地址的出站流量
sudo ufw deny out from any to x.x.x.x
然后,重新加载 ufwsudo ufw reload
此外,互联网上的许多主机都分配有大量的 IP 地址,对这些主机的 DNS 查询将在不同时间返回不同的 IP。因此,您阻止的单个 IP 可能会发生变化,从而再次允许流量。您可能需要考虑阻止对该主机名的 DNS 请求。
如果您要阻止的远程主机是一个不会更改的静态 IP 地址,那么此方法将起作用。