我正在使用 Debian 11 靶心。我正在尝试使用 ufw 防火墙阻止一些 IP。我已经安装了ufw包。然后我添加了一些简单的规则并开始 ufw
sudo ufw enable
然后我检查了它的状态
sudo ufw status verbose
它给出了我的规则。我还使用 systemctl 命令启用它
sudo systemctl enable ufw
sudo systemctl start ufw
他们俩也都成功了。
但是,当我尝试它时,我看到 IP 没有被阻止,它可以将包发送到我的计算机。要检查 ufw 是否正常工作,只需使用已知广告网站的 IP,例如 tpc.googlesyndication.com(我使用ping -c 1 tpc.googlesyndication.com查找网站的 IP)。我通过sudo ufw deny from xxxx将其添加为 ufw 规则。但是,我看到 IP 源正在向我的计算机发送包(因为我在浏览器中看到了它的广告)。(我在很短的时间内完成了所有这些操作,因此该站点没有更改其 IP 地址)。
为什么 ufw 不工作并阻止传入的包?我做错了什么?
您创建了一个规则来阻止未经请求的入站流量,而您实际上想要阻止出站流量。
因为您的计算机启动了连接,所以防火墙认为其状态已建立/与出站连接(您启动了连接)相关,因此它不会阻止从远程主机接收到的后续数据包。
您将需要阻止到该 IP 地址的出站流量
然后,重新加载ufw
sudo ufw reload
此外,互联网上的许多主机都分配有大量 IP 地址,这些主机的 DNS 查询将在不同时间返回不同的 IP。因此,您阻止的单个 IP 可能会更改,从而再次允许流量。您可能需要考虑阻止对该主机名的 DNS 请求。
如果您要阻止的远程主机是一个不变的静态 IP 地址,则此方法将起作用。