我制作了一个基于 nginx 的代理服务器,它可以重定向几台机器的流量,这样它们就可以拥有一个我可以维护的安全过滤器。没什么特别的,只是足以阻止一些广告跟踪机构并节省一点我有限的数据计划。
无论如何,nginx 在性能方面堪称完美,实际上在使用网络时加速了我的一些设备。但是,nginx 的过滤解决方案并不容易找到,所以我不得不使用 Ubuntu 来寻找其他可以存在过滤器的地方。
我在 hosts 文件中添加了一些恶意 IP 和反跟踪列表的开源列表,发现有时 nginx 会绕过 hosts 文件工作,所以这直接导致了失败,因此我开始寻找基于防火墙的解决方案。
虽然我知道 ufw 不是为阻止域名而设计的,但它是唯一成功完全阻止 nginx 请求不需要的链接的程序,因此我编写了一个 shell 脚本,其中包含所有列出的域名的 ip 以及记录的恶意 IP 地址,我的机器现在正在处理这些 IP 地址。
# Example of the script
ufw deny out to 1.2.3.4;
ufw deny out to 1.2.3.5;
ufw deny out to 1.2.3.6;
我想问你们的是,由于脚本在不太繁忙的 digitalocean droplet 中运行的时间太长,我会注意到性能下降吗?因为 IPtables 规则太多了?或者 UFW 只是一个设置层,对 IPtables 的运行没有影响,而且考虑到它是一个以 UI 为中心的应用程序,可能有点笨重?我认为 IP 表已经很成熟了,不会产生那么多的开销,也不介意一次等待,但我有点担心,只是因为脚本将每条规则加载到规则中需要很长时间。
我想我本可以将它导入到其中一个配置文件中,但我觉得通过易于使用的命令界面运行它是稳定且安全的解决方案。你们觉得呢?