紧急只读锁定(mount -o remount,ro)是应急响应中阻断写入的临时手段,适用于/boot、/etc、/var/log及应用分区,但需先确认挂载状态、文件系统支持与内核只读异常,操作后须立即取证并转入分析。

当检测到非法入侵迹象时,用 mount -o remount,ro 紧急锁定分区是一种快速阻断攻击者写入行为的有效手段,但必须明确:它不是万能的“安全开关”,而是应急响应中的一个临时遏制动作。关键在于判断是否可安全执行、锁定哪个分区、以及后续如何闭环处理。
哪些分区适合紧急只读锁定
优先锁定攻击者最可能篡改或持久化的路径:
- /boot:防止替换内核、initramfs 或 GRUB 配置,避免后门固化
-
/etc:阻止修改
passwd、shadow、sudoers、SSH 配置等关键权限文件 - /var/log:若日志未分离到独立分区,可临时只读防止日志被清空或覆盖(注意:多数系统会因只读导致日志服务失败,需权衡)
-
应用数据分区(如
/data、/webroot):阻止上传 Webshell、篡改网站文件
执行前必须确认的三件事
盲目 remount 可能失败甚至引发系统异常:
- 检查目标分区当前挂载状态:
findmnt /etc或mount | grep ' /etc ',确认它确实已挂载且非 bind mount 或 overlayfs - 确认文件系统支持在线 remount:
ext4、xfs通常支持;btrfs某些版本对 ro remount 有限制;只读光盘镜像(iso9660)或 NFS 共享本身已是只读,无需操作 - 排查是否已被内核强制设为只读:
dmesg -T | tail -15查看是否有errors=remount-ro、I/O error或device frozen提示——若有,说明底层已出问题,此时 remount 是表象,修复磁盘或文件系统才是根本
标准操作流程(以 /etc 为例)
假设已确认 /etc 挂载在 /dev/sda2 上,且无硬件异常:
- 尝试安全重挂载:
sudo mount -o remount,ro /etc - 验证结果:
mount | grep ' /etc '应显示(ro,...;同时测试写入:touch /etc/test.lock 2>/dev/null && echo "FAIL" || echo "OK",预期输出 OK - 若提示
mount: /etc is busy,说明有进程正访问该目录(如 systemd、rsyslog、auditd)。可先停止非关键服务:systemctl stop rsyslog auditd,再重试;或使用lsof +D /etc查看占用进程并评估是否可终止 - 若仍失败且确需立即生效,可考虑卸载后重新只读挂载:
sudo umount /etc && sudo mount -o ro /dev/sda2 /etc(注意:卸载 /etc 会导致多数服务无法读取配置,仅适用于离线取证或已进入救援环境)
不能只停在这里:后续必须做的动作
只读只是冻结现场,不是响应终点:
- 立即保存内存快照与进程列表:
ps auxf > /tmp/ps-before-lock.log、ss -tulnp > /tmp/net-before-lock.log - 备份原始日志(即使只读):
cp -a /var/log /tmp/log-backup-$(date +%s)(在只读前或通过另一终端完成) - 检查可疑账户:
awk -F: '$3==0 {print $1}' /etc/passwd、last -n 50、grep 'Accepted' /var/log/auth.log | tail -20 - 记录操作时间线,准备转入隔离分析或恢复流程——只读状态不可长期维持,尤其对 /etc 或 /var











