fail2ban 保护nginx站点扫描
使用fail2ban阻挡爬虫扫描
使用fail2ban阻挡爬虫扫描。
自己的站点,也没防护,对专业的安全知识也没有多了解,一个自留地的静态的站点,也没太担心被黑。不过,一直以来,一直能看到nginx日志中记录的公网爬虫扫描错误,看多了,即便不知道怎么做,也会觉得很烦。所以,有了之前fail2ban ssh暴力破解的做法,一样,尝试使用fail2ban来ban恶意的站点扫描。
给一个恶意扫描的日志示例:
2024/04/17 10:10:51 [error] 1038#1038: *949 open() “/usr/share/nginx/html/ywmy210/robots.txt” failed (2: No such file or directory), client: 66.249.68.32, server: www.ywmy.xyz, request: “GET /robots.txt HTTP/1.1”, host: “www.ywmy.xyz“
2024/04/17 11:09:19 [error] 1038#1038: *994 open() “/usr/share/nginx/html/boaform/admin/formLogin” failed (2: No such file or directory), client: 112.239.22.224, server: localhost, request: “GET /boaform/admin/formLogin?username=admin&psd=admin HTTP/1.0”
安装fail2ban
安装非常简单,直接通过源使用yum安装。
1 |
|
配置jail
fail2ban的配置目录,主要action,filer,jail,fail2ban几个配置目录,对应相应的过滤,动作,监禁,禁止等配置。简单的目的,达成通过匹配nginx的错误扫描日志,禁止源IP访问nginx站点。可以直接在filter.d目录下找到针对nginx botsearch的过滤条件。所以,这里,我们只需要启用预配置的过滤条件即可。
配置jail,启用预设置的nginx botsearch过滤条件。在jail.d中创建配置文件。
1 |
|
启用fail2ban服务
1 |
|
好了。已经可以看到ban了4个源IP的扫描访问。