转自:https://kyle.ai/blog/6215.html
最近总有一些无聊的人,会来扫描一下我的服务器,看有没有啥漏洞可以利用的。。。
可以看到类似这样的404访问日志:
这种攻击的特点就是短时间内会大量的404请求,可以利用这一特点,用工具进行拦截,检测到多少时间内,404请求数超过了多少,就把这个ip给封掉。
于是就从网上搜索到了这个工具:fail2ban,官方主页:https://www.fail2ban.org/wiki/index.php/MANUAL_0_8
在Ubuntu中安装fail2ban很简单:
安装好后,配置文件在 /etc/fail2ban 里面。
首先我们需要配置一个filter规则,以便检测我们的日志文件中404的目标。
vim /etc/fail2ban/filters.d/web-404.conf
写好规则后,可以用命令行测试一下能不能命中:
有一点必须注意,你的日志文件中,行的开头一定要先命中时间戳,格式可以是系统能识别的时间格式,如果没有命中时间,那么你写的filter规则是永远不会被命中的。
比如我刚开始的日志格式是这样的:
日期格式 20170607 不能被识别,所以我写的filter规则死活命中不了。。。
官方文档有解释:https://www.fail2ban.org/wiki/index.php/MANUAL_0_8
如果要自定义时间格式,可以在filter的配置中设置 datepattern 参数,详情见官方文档ÿ