核心文件(core dump)包含程序崩溃时的内存状态信息,可能包含敏感数据。以下是配置CentOS系统以限制核心文件访问权限的方法:
# 临时禁用当前会话的核心文件生成
ulimit -c 0
# 永久禁用所有用户的核心文件生成
echo "ulimit -c 0" >> /etc/profile
echo "ulimit -c 0" >> /etc/bashrc
# 编辑/etc/security/limits.conf文件
echo "* hard core 0" >> /etc/security/limits.conf
如果仍需生成核心文件用于调试,可以限制其访问权限:
# 创建专用目录并设置权限
mkdir /var/coredumps
chown root:root /var/coredumps
chmod 700 /var/coredumps
# 配置系统将核心文件写入该目录
echo "kernel.core_pattern = /var/coredumps/core.%e.%p.%h.%t" >> /etc/sysctl.conf
echo "kernel.core_uses_pid = 1" >> /etc/sysctl.conf
sysctl -p
# 设置核心文件默认权限为600
echo "fs.suid_dumpable = 0" >> /etc/sysctl.conf
sysctl -p
对于使用systemd的系统:
# 编辑/etc/systemd/coredump.conf
[Coredump]
Storage=none
ProcessSizeMax=0
然后重新加载systemd配置:
systemctl daemon-reload
# 确保SELinux处于enforcing模式
getenforce
# 如果未启用,编辑/etc/selinux/config并设置SELINUX=enforcing
# 创建自定义策略限制核心文件访问
检查当前核心文件设置:
ulimit -c
cat /proc/sys/kernel/core_pattern
sysctl kernel.core_uses_pid
以上配置可以有效限制普通用户对系统核心文件的访问权限,减少敏感信息泄露的风险。