使用 IP 地址列表(如黑名单、白名单)来批量添加 UFW 规则

前面介绍了 UFW 最基本命令,知道可以用 deny 或者 allow 来禁用或者允许某个 IP 地址的访问。但是现实中,可能需要一次性添加大量的 IP 地址到 UFW 规则。一条一条的添加显然是不太可能的,能不能通过列表来批量添加规则呢?

网上搜索了一段时间,有各种解决方式,个人认为下面这种相对来说更简单好用。比如,有一个 IP 地址黑名单 blacklist.txt,这个文件以列表的形式包含了一条条的 IP 地址(每行一个 IP 地址),我们要做的就是读取这个文件,然后把每行的 IP 地址依次添加到 UFW 规则里面。可以使用下面的命令:

$ while read line; do sudo ufw insert 1 deny from $line; done < /path/to/blacklist.txt

同理,如果是白名单的话,把 deny 换成对应的 allow 命令就可以了。