找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 24|回复: 0

[维护日志] [2026-02-04] [优化] [Nginx/日志/安全] - fail2ban完全卸载与日志系统简化

[复制链接]
  • 打卡等级:本地老炮

9337

威望

7448

金钱

1万

贡献

管理员

自由的灵魂

积分
107434
主题
5630
回帖
26661
注册时间
2003-4-10
最后登录
2026-10-2
发表于 2026-2-5 11:52:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

1、问题缘起及新问题汇总

问题缘起:已经于2月1日安装了雷池,需要完全卸载fail2ban及相关配置,简化日志系统,清理冗余文件
探讨中新发现问题:
1) fail2ban卸载后存在残留配置文件和服务文件
2) nginx中存在大量冗余的限流规则和备份文件
3) 日志记录过于详细,包含大量正常访问记录
4) access.log(nginx总访问日志)无自动轮转机制
5) 存在15个冗余的.temp.conf备份文件
6) ipset中存在f2b开头的残留集合
7) 宝塔日志轮转只处理站点日志,不处理nginx总日志

2、解决方案

(1)技术原理:通过完全卸载fail2ban、清理nginx冗余配置、实现条件日志记录、建立极简日志轮转保险机制

(2)文件列表:
删除文件:
  • /etc/fail2ban/ (整个目录)
  • /var/lib/fail2ban/ (整个目录)
  • /usr/share/doc/fail2ban/ (整个目录)
  • /www/server/panel/vhost/nginx/*.temp.conf (15个备份文件)
  • /etc/ipset/f2b-*.save (ipset配置文件)
  • /www/wwwlogs/access_404.log (2.7M静态文件)
  • /www/wwwlogs/history_backups/test.com/ (无用站点备份)

修改文件:
  • /www/server/nginx/conf/nginx.conf (移除limit_req_zone/limit_conn_zone定义)
  • /www/server/panel/vhost/nginx/www.dianbo.org.conf (移除限流规则,添加条件日志)
  • /etc/logrotate.d/nginx_minimal (新增极简轮转配置)

新增文件:
  • /www/server/nginx/conf/log_filter.conf (条件日志过滤配置)

(3)关键代码:

log_filter.conf 全文:
  1. # 日志过滤:仅记录非200/300状态码的请求(除404外)
  2. map $status $loggable {
  3.     ~^[23]     0;  # 2xx/3xx状态码不记录
  4.     404        0;  # 404不记录
  5.     default    1;  # 其他状态码(4xx/5xx)记录
  6. }
复制代码


nginx_minimal 全文:
  1. # nginx总访问日志极简轮转配置
  2. # 主要作为保险机制,基本不会触发(按当前增长速度需要20年才会触发)
  3. /www/wwwlogs/access.log
  4. {
  5.     monthly
  6.     rotate 24
  7.     compress
  8.     missingok
  9.     notifempty
  10.     size 100M
  11.     create 0640 www www
  12.     sharedscripts
  13.     postrotate
  14.         [ -f /www/server/nginx/logs/nginx.pid ] && kill -USR1 $(cat /www/server/nginx/logs/nginx.pid)
  15.     endscript
  16. }
复制代码


www.dianbo.org.conf 关键修改:
  1. # 条件访问日志
  2. access_log /www/wwwlogs/www.dianbo.org.log combined if=$loggable;
复制代码


3、最终实现效果

优化项目优化前优化后变化说明
fail2ban残留完全存在完全移除-100%服务、配置、数据文件全清理
冗余配置文件15个备份0个备份-100%清理所有.temp.conf文件
nginx限流规则多个zone定义完全移除-100%移除所有limit_req/limit_conn
日志记录策略全量记录条件记录-90%+仅记录4xx/5xx错误(除404)
日志轮转机制仅站点日志全日志保险+100%新增access.log轮转保险
配置文件数量23个文件8个文件-65%清理冗余,保留必要配置
access.log年增长4.2MB/年4.2MB/年0%实际增长极慢,无需频繁轮转


4、进一步优化的可能性

  • 可考虑将access.log中的攻击流量单独记录到安全日志
  • 可添加基于访问频率的异常检测(非限流)
  • 可配置年度自动维护脚本
  • 可考虑添加CDN真实IP提取(如需更准确日志分析)
  • 可优化nginx_error.log的轮转策略(当前太小忽略)

5、重要技术沉淀或踩坑点

  • fail2ban完全卸载需清理服务文件、配置文件、数据文件、ipset集合
  • nginx条件日志过滤需在http块中定义map变量
  • logrotate配置中注释不能和数字在同一行(语法错误)
  • 宝塔日志轮转脚本只处理站点特定日志,不处理nginx总日志
  • access.log主要包含攻击流量,真实访问已被过滤到站点日志
  • 日志增长极慢的情况下,轮转配置应设置为高阈值(如100M)
  • 清空日志文件不影响nginx运行,会自动创建新日志
不懂就搜!点此搜点拨论坛。如果本坛没有,请尝试点此问AI,或跟帖提问。
发帖前注意看置顶帖。
不定期借助AI对点拨论坛陈年老帖进行挖坟回复,打扰勿怪!
在帮助别人的过程中丰富自己
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|点拨论坛 |网站地图

GMT+8, 2026-10-2 04:59 , Processed in 0.301794 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表