写在开头:分享一个我用的比较多的防御体系,搭建过程不是很难,但是防护效果我个人感觉还可以。
大概介绍一下
第一层:iptables/其他(网络层过滤) ← 快速丢弃明显恶意流量 第二层:nginx/Apache基础防护(传输层控制) ← 连接限制、速率控制 第三层:WAF(应用层深度检测) ← SQL注入、XSS等攻击检测 第四层:Fail2ban(动态智能封禁) ← 行为分析、自动封禁
大致的防御框架就是这样
前三层没什么好说的,主要想讲的是Fail2ban的内容
这个我之前问国内的豆包以及deepseek要他们帮忙搭建一下,给我一点清晰的视野,但是现在的AI还是太笨
也许是资料库没收集到这方面的搭建知识,总之你信你倒霉
我这里选择的是编译安装,如果你有rpm包也许会比我轻松,安装的过程就不说了,因为基本不会出现什么问题
配置文件这里我看到网上很多人的配置都描述的有问题,首先安装完成会得到jail.conf文件,这里要cp一份成jail.loacl文件,这是因为在fail2ban里local的优先级要比conf高,由此也可以省下时间直接部署你的监狱,我这边是9个,分别是:
sshd SSH登录防护 监控SSH登录失败,防止暴力破解 nginx-http-auth HTTP认证防护 监控HTTP认证失败,防止认证暴力破解 nginx-botsearch 机器人检测防护 监控机器人搜索和目录扫描行为 nginx-limit-req 请求速率限制防护 监控请求速率,防止密集请求攻击 modsecurity ModSecurity防火墙防护 监控ModSecurity防火墙拦截的攻击 nginx-malicious 恶意请求防护 监控二进制数据、代理请求等恶意行为 nginx-forbidden 403错误防护 监控403错误,防止未授权访问尝试 nginx-scan 扫描行为防护 监控大量404错误,防止目录扫描 nginx-modsecurity Nginx ModSecurity防护 专门监控Nginx中的ModSecurity告警
然后对于过滤器,也就是/fail2ban/filter.d/这里需要灵活选择,我的过滤器设置的很多,但我真正选用的也只有这9个监狱所对应的过滤器,这是因为我对于这方面的需求不高,所以暂时只选择这几个就已经满足我的需要了。
对于阈值(如 SSH 登录 3-5 次失败),这种可以宽松,但比如我服务器总是有爬虫或者二进制文件注入这种攻击行为我个人建议是发现一次就是999999拉满。
其他的就是邮箱和自定义动作这些一定要做,毕竟这个年代,不会自动化不敢说懂服务器,邮箱的重要不用再提了,自定义cron任务,日志轮转,服务器情况,甚至有多少人在登录你的网站,他们的具体信息做了什么事情你一个人是看不过来的,这个具体的配置太私人,这里放了一个测试截图。不过要注意就是fail2ban 过滤器的正则表达式专义语法很恶心,具体有多恶心我后面找到原因了,不过太长懒得打字,我放一个报错图给看看吧,最后还是推荐用谷歌的AI帮你写。
fail2ban这里就做好了,它会根据规则自动抓取不正常的ip数据关进监狱,后面就是如果有异常情况,平时你就看看邮件就行,当然单纯这么一个机器人肯定有问题,你需要搭配其他的防御措施,分层防护总是保险一点。




简单说两句
登录后才能发表评论
去登录评论 (0)