linux内核参数文件权限审计与加固需聚焦读写控制:检查/proc/sys/、/etc/sysctl.conf及关键开关的权限,禁止非root写入,收紧配置文件权限,启用fs.protected_sysctl=2并固化高危参数。

Linux内核参数文件(如 /proc/sys/ 下的节点、/etc/sysctl.conf 及其包含文件)直接影响系统安全、网络行为与资源限制。权限不当可能导致普通用户篡改关键参数,引发拒绝服务、提权或绕过安全策略等风险。审计与加固需聚焦“谁可读、谁可写”,而非仅修改数值。
识别高危内核参数文件及其默认权限
以下路径是权限审计重点,需逐个检查:
-
/proc/sys/目录下所有子项(如/proc/sys/net/ipv4/ip_forward):多数默认为-w-------(仅 root 可写),但部分发行版或自定义配置可能放宽; -
/etc/sysctl.conf和/etc/sysctl.d/*.conf:配置文件若被非 root 用户写入,重启后将持久生效; -
/proc/sys/kernel/modprobe、/proc/sys/kernel/unprivileged_bpf_disabled等敏感开关:写权限失控可导致内核模块加载或 eBPF 提权; -
/proc/sys/vm/swappiness、/proc/sys/fs/file-max等虽不直接提权,但被恶意修改可引发系统不稳定。
执行最小权限审计命令
用标准工具快速定位异常权限:
- 检查
/proc/sys/下所有可写节点:find /proc/sys -type f -writable 2>/dev/null | xargs -r ls -l - 检查 sysctl 配置文件权限:
ls -l /etc/sysctl.conf /etc/sysctl.d/*.conf 2>/dev/null - 确认关键参数是否被非 root 用户修改过(对比预期值):
sysctl -n net.ipv4.ip_forward kernel.unprivileged_bpf_disabled
输出中若出现 -rw-r--r-- 或更宽松的写权限(如 -rw-rw-rw-),即为风险项。
加固操作:分层限制写权限
权限加固不是简单 chmod,而要结合运行时控制与持久化配置:
-
禁止非 root 写入 /proc/sys/ 节点:确保
sysctl命令和 procfs 挂载无异常。检查mount | grep proc,确认无mode=0777或uid=/gid=非 root 设置; -
收紧配置文件权限:执行
chmod 600 /etc/sysctl.conf和chmod 600 /etc/sysctl.d/*.conf,并确保属主为 root; -
锁定关键参数不可运行时修改:对如
kernel.modules_disabled=1这类参数,在启动时通过内核命令行(grub.cfg中添加modules_disabled=1)固化,比仅依赖/proc权限更可靠; -
启用 fs.protected_sysctl=2(Linux 4.17+):该参数阻止非特权用户通过命名空间逃逸修改 sysctl,需在
/etc/sysctl.conf中设置并运行sysctl -p加载。
验证与持续监控建议
加固后必须验证效果,并纳入基线检查:
- 以普通用户身份尝试修改:
su -c 'echo 1 > /proc/sys/net/ipv4/ip_forward' -s /bin/sh nobody—— 应返回Permission denied; - 使用
aide或tripwire对/etc/sysctl.d/目录做完整性校验,防止配置被静默篡改; - 在安全合规扫描脚本中加入检查项,例如:
test $(stat -c "%U:%G" /etc/sysctl.conf) = "root:root" && test $(stat -c "%a" /etc/sysctl.conf) = "600"; - 定期复查
/proc/sys/下新挂载的子系统(如 cgroup v2、io_uring 相关参数),新内核版本可能引入未受控节点。










