我需要在防火墙中阻止大约 10,000 个 IP 地址,我将所有 IP 地址都保存在文件中,因此我从命令行运行此命令:
while read line; do sudo ufw insert 1 deny from $line; done < IP_addresses
它起作用了,它插入了规则,但它非常慢,每秒插入大约 1 条规则,可以让它更快吗?
它在具有 1 个 Xeon CPU 核心(VPS)的 Debian 9 上运行。
答案1
更快的方法可能是将这些添加到 /etc/ufw/before.rules 文件中。
您可以通过执行以下操作生成要使用 for 循环插入的行
for line in `cat IP_addresses`; do echo "-A ufw-before-input -s $line -j DROP" >> rules.out ; done
然后,您可以将 rules.out 文件中的输出放入 /etc/ufw/before.rules 文件中,并按照以下行进行操作:
# End required lines
这是使用以下说明:https://www.cyberciti.biz/faq/how-to-block-an-ip-address-with-ufw-on-ubuntu-linux-server/作为基础。相关部分是最后一节,标题为提示:UFW 不会阻止 IP 地址