Core Dump 的作用是诊断及除错 Linux 系统发生的错误, 也有一些别名是 memory dump, crash dump, system dump 等。但 core dump 会包括有一个较敏感的资讯, 例如密码, 使用者的 PAN, SSN 等, 对于开发环境, 这些除错的资讯十分有用, 但基于保安理由, 在生产环境中建议关闭 core dump.
默认的情况下, Linux 会把 core dump 的资讯储存在 /var/crash/ 目录, 而透过 systemd 启动的服务, 则会储存在 /var/lib/systemd/coredump/ 目录.
limits.conf 及 sysctl 关闭 core dump
Disabling core dumps on Linux
1. 开启 /etc/security/limits.conf 档案, 加入以下 2 行:
* hard core 0
* soft core 0
2. 开启 /etc/sysctl.d/9999-disable-core-dump.conf 或 /etc/sysctl.conf, 加入以下 2 行:
fs.suid_dumpable=0
kernel.core_pattern=|/bin/false
3. 储存盘案后, 执行以下指令使以上变更生效:
关闭 systemd 服务 core dump
透过 systemd 启动的服务会忽略 limites.conf, 所以需要以下设定来关闭。
1. 建立 /etc/systemd/coredump.conf.d/ 目录:
2. 建立 /etc/systemd/coredump.conf.d/custom.conf 档案:
3. 力入以下内容:
Storage=none
ProcessSizeMax=0
4. 最后执行以下指令重新加载 systemctl: