
/proc 是内核虚拟文件系统,实时暴露所有进程PID、命令行、环境变量、文件句柄、权限等敏感信息。默认所有普通用户可读取全部进程信息,存在信息泄露风险:
Linux Kernel 3.3+ 提供 hidepid + gid 挂载参数限制进程可见性:
1. 仅全局隐藏所有普通用户进程
mount -o remount,rw,hidepid=2 /proc2. 全局隐藏 + 放行指定监控组(推荐)
# 1. 创建专用监控组(GID>1000)groupadd -g 1500 monitor# 2. 运维用户加入该组usermod -aG monitor test# 3. 重新挂载生效mount -o remount,rw,hidepid=2,gid=1500 /proc
验证效果。
编辑挂载表:
vim /etc/fstab添加一行到文件末尾:
proc /proc proc defaults,hidepid=2,gid=1500 0 0验证挂载语法无报错:
mount -a无输出即代表配置正常,重启永久生效。
1. Red Hat 官方明确不推荐 RHEL 7/8/9 使用hidepid
官方知识库编号:access.redhat.com/solutions/6704531
核心原因:与 systemd 深度耦合的功能会受影响,包括:
systemctl、journalctl 无法正确关联用户服务;
su/sudo、PAM认证、会话管理偶发卡死;
系统服务状态查询和依赖关系解析异常。
2. 其他通用风险点
鉴于 hidepid 与 systemd 的冲突,生产环境优先使用以下无副作用加固手段:
方案1:限制ps/top等SUID工具权限(简单)
groupadd procadminusermod -aG procadmin root,adminchmod 705 /bin/ps /usr/bin/top /usr/bin/lsofchgrp procadmin /bin/ps /usr/bin/top /usr/bin/lsof
-缺点:只能限制命令行工具,无法阻止直接读取 /proc 文件。
方案2:内核参数 + 文件权限收紧(更优)
# 收紧关键目录权限chmod 0700 /proc/selfchmod 0600 /proc/cmdline /proc/kcore# 设置内核安全参数echo ”kernel.kptr_restrict = 2” >> /etc/sysctl.confecho ”kernel.dmesg_restrict = 1” >> /etc/sysctl.confsysctl -p
方案3:强制访问控制(最佳实践)
SELinux(RHEL/CentOS默认):通过精细化策略限制进程访问范围,是 Red Hat 官方推荐的首选加固方式。
AppArmor(Ubuntu/Debian):提供类似的应用级访问控制。
方案4:多租户隔离使用容器/虚拟机业务隔离最佳实践:不同用户业务运行在独立容器或虚拟机,从底层实现进程视图隔离,不依赖 /proc 挂载参数。
临时取消hidepid
mount -o remount,rw,defaults /proc删除永久配置:编辑 /etc/fstab,移除相关行。
删除监控组(可选):
groupdel monitor适合使用hidepid(极少数场景)
严禁使用 hidepid
RHEL 7+/CentOS 7+/Rocky/AlmaLinux 等所有现代发行版;
任何使用 systemd 的系统;
容器集群、需要日志审计、自动化运维、多服务协同的生产环境。
最终建议:在现代企业级 Linux 生产环境中,请优先采用“方案2(内核参数)+ 方案3(SELinux)”的组合,这既能有效降低信息泄露风险,又能保证系统完整性和稳定性。hidepid 只应在充分了解风险后的非生产环境下进行测试。



认准红帽官方授权
微思-红帽官方授权合作伙伴!


