1.安装
sudo apt install fail2ban
# 设置开机启动
sudo systemctl enable fail2ban
# 查看fail2ban状态
sudo systemctl status fail2ban
查看Fail2ban状态正常,则您的服务器已安装并运行Fail2Ban。
2. Fail2Ban配置
Fail2Ban在安装时会创建两个默认的配置文件/etc/fail2ban/jail.d/defaults-debian.conf
和/etc/fail2ban/jail.conf
,不建议直接修改这些文件,因为更新Fail2ban时它们可能会被覆盖。
修改jail配置时,建议复制jail.conf文件至jail.local文件,并于jail.local文件中进行修改。
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
2.1 ssh配置
Fail2Ban默认启动ssh拦截,无需对其进行针对性配置。
可通过如下命令查看ssh拦截状态:
fail2ban-client status sshd
输出如下所示:
2.2 Nginx相关配置
2.2.1 jail配置
按上图完善配置jail中的Nginx配置信息,启动模块,完善logpath信息(本人使用Openresty,故日志路径多了openresty目录)。
配置信息中启用了nginx-limit-req(限制Nginx请求量,Nginx中需添加限制请求量配置方能生效),nginx-botsearch(限制机器人访问)。
2.2.2 限制请求量
启用nginx-limit-req配置,需在nginx配置文件中启用limit_req以及limit_req_zone功能。
参考配置如下所示:
添加如上配置后,重新启动Openresty即可。
2.2.3 配置生效
sudo systemctl restart fail2ban
查看生效结果,可参照下图执行:
参考文章:
1.如何在Ubuntu 20.04上安装和配置Fail2ban(https://www.myfreax.com/install-configure-fail2ban-on-ubuntu-20-04/);
2.Module ngx_http_limit_req_module(http://nginx.org/en/docs/http/ngx_http_limit_req_module.html);