使用 fail2ban 和 FirewallD 黑名单保护你的系统( 三 )

这个应该安装到 /usr/local/sbin,不要忘了让它可执行!
$ sudo chmod +x /usr/local/sbin/firewalld-blacklist然后创建一个配置文件 /etc/blacklist-by-country:
# Which countries should be blocked?# Use the two letter designation separated by a space.countries=""而另一个配置文件 /etc/blacklist-by-ip,每行只有一个 IP,没有任何额外的格式化 。
在这个例子中,从 ipdeny 的区文件中随机选择了 10 个国家:
# ls | shuf -n 10 | sed "s/.zone//g" | tr 'n' ' 'nl ee ie pk is sv na om gp bn现在只要在配置文件中加入至少一个国家,就可以运行了!
$ sudo firewalld-blacklist  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                 Dload  Upload   Total   Spent    Left  Speed100   142  100   142    0     0   1014      0 --:--:-- --:--:-- --:--:--  1014100  662k  100  662k    0     0   989k      0 --:--:-- --:--:-- --:--:--  989kAdded nl to blacklist ipset.Added ee to blacklist ipset.Added ie to blacklist ipset.Added pk to blacklist ipset.Added is to blacklist ipset.Added sv to blacklist ipset.Added na to blacklist ipset.Added om to blacklist ipset.Added gp to blacklist ipset.Added bn to blacklist ipset.Adding ipset blacklist to firewalld drop zone.success要验证 FirewallD 黑名单是否成功,请检查 drop 区和 blacklist ipset 。
$ sudo firewall-cmd --info-zone=dropdrop (active)  target: DROP  icmp-block-inversion: no  interfaces:  sources: ipset:blacklist  services:  ports:  protocols:  masquerade: no  forward-ports:  source-ports:  icmp-blocks:  rich rules:$ sudo firewall-cmd --info-ipset=blacklist | lessblacklist  type: hash:net  options: family=inet hashsize=4096 maxelem=200000  entries:第二条命令将输出所有的子网,这些子网是基于被封杀的国家而添加的,可能会相当长 。
那么现在我该怎么做?虽然在开始的时候,监控的频率会比较高,但随着时间的推移,入侵尝试的次数应该会随着黑名单的增加而减少 。那么目标应该是维护而不是主动监控 。
为此,我创建了一个 SystemD 服务文件和定时器,这样每月都会刷新由 ipdeny 维护的每个国家的子网 。事实上,这里讨论的所有内容都可以从我的 pagure.io 项目中下载 。
是不是很高兴你看完了整篇文章?现在只要把服务文件和定时器下载到 /etc/systemd/system/,并启用定时器就行了:
【使用 fail2ban 和 FirewallD 黑名单保护你的系统】$ sudo systemctl daemon-reload$ sudo systemctl enable --now firewalld-blacklist.timer


推荐阅读