必须为/var/log单独分区,防止日志暴增占满磁盘导致ssh登录失败、systemd服务无法启动、内核日志丢失及包管理器瘫痪;推荐20–50gb起步,lvm逻辑卷挂载并配置logrotate、配额与auditd三重防护。

为日志目录(如 /var/log)单独划分独立分区,是防止日志暴增拖垮整个系统的关键防线。它不是锦上添花,而是把“日志失控”这个高发风险关进隔离笼——哪怕攻击者暴力爆破 SSH、服务疯狂打日志,也只会影响日志分区,根分区仍能维持登录和基础服务。
为什么必须独立分区?
默认情况下,/var/log 通常位于根分区(/)下。一旦日志持续写入(例如 fail2ban 未生效、应用未限速、auditd 规则过宽),磁盘很快被占满。后果直接而严重:
- SSH 登录失败(
auth.log写不进、PAM 日志报错) - systemd 无法启动新服务(
journald拒绝写入) - 内核日志缓冲溢出,关键错误信息丢失
- 包管理器(apt/yum)拒绝运行,连修复都困难
具体怎么分:从规划到挂载
推荐在系统安装阶段就规划,若已运行,可借助 LVM 在线迁移(需停服务或使用快照)。核心步骤如下:
- 分配空间:根据服务规模预估,生产服务器建议 20–50 GB 起步;若启用 journald + auditd + 自定义应用日志,建议 80 GB 或更高
-
创建分区或逻辑卷:用
fdisk/parted划物理分区,或更推荐用lvcreate创建 LVM 逻辑卷(便于后续扩容) -
格式化并挂载:
mkfs.xfs /dev/vg0/lv_varlog→mkdir -p /var/log→mount /dev/vg0/lv_varlog /var/log -
固化配置:将挂载项写入
/etc/fstab,例如:/dev/vg0/lv_varlog /var/log xfs defaults,noatime,nodev,nosuid 0 2
配套加固不能少
单一分区只是第一步,还需叠加三层防护,才能真正防住“填满”和“篡改”:
-
配额限制 root 写入上限:日志由 root 进程写入,普通用户 quota 无效。用
setquota -u root 0 10485760 0 0 /var/log设硬上限 10 GB(单位 KB) -
logrotate 精准轮转:在
/etc/logrotate.d/syslog中明确maxsize 100M、rotate 14、compress、delaycompress,避免大日志卡死轮转 -
auditd 监控目录变更:添加规则
-w /var/log -p wa -k log_dir到/etc/audit/rules.d/log.rules,防止攻击者删日志或覆盖文件
延伸建议:更细粒度的隔离
对高安全要求场景,可进一步拆分:
-
/var/log/ssh单独子目录 + 独立 rsyslog 路由(配合SyslogFacility local0) -
/var/log/journal使用Storage=persistent并挂载为 tmpfs + 后台同步落盘,兼顾性能与可靠性 -
/var/log/audit强制走独立分区,并启用space_left_action = email提前告警











