内核加固项怎么批量核
内核参数加固项数量多、单值读取快,适合按组做批量核查:转发与路由类(是否允许转发、是否接受重定向、源地址路由)、网络防护类(SYN Cookies、rp_filter 反向路径过滤)、内存与调试类(地址空间随机化、内核日志与指针信息是否对普通用户开放)。一次取数几十毫秒即可完成对照,偏差项进入整改清单。核查的价值在于输出可比的数值快照,而不是逐条人工确认。
基本信息
| 加固项 | 内核参数加固与核查 |
|---|---|
| 适用平台 | Linux(sysctl、/proc/sys) |
| 权限要求 | 读取本身不需要 root,修改需要 |
| 达标判据 | 各项与基线值一致,且持久化配置存在 |
| 持久化位置 | /etc/sysctl.d/*.conf,避免直接改 /etc/sysctl.conf |
典型使用场景
- 主机基线的内核参数专项核查
- 新系统部署后一次性比对全部加固项
- 安全事件后确认参数是否被改回宽松值
- 容器宿主机参数统一,避免节点间行为不一致
- 性能排障中确认网络参数的当前取值
分三组取数
分三组取数
sysctl -a 2>/dev/null | grep -E 'net.ipv4.(ip_forward|conf.all.rp_filter|tcp_syncookies|accept_source_route|icmp_echo_ignore_broadcasts)'
sysctl -a 2>/dev/null | grep -E 'kernel.(randomize_va_space|dmesg_restrict|kptr_restrict|core_pattern)'
sysctl -a 2>/dev/null | grep -E 'net.ipv4.conf.(all|default).(send_redirects|accept_redirects|secure_redirects)'
sysctl -a 2>/dev/null | grep -E 'fs.(suid_dumpable|protected_(hardlinks|symlinks|regular))' # 文件系统防护组整改与复核
整改与复核
cat > /etc/sysctl.d/99-hardening.conf <<'EOF'
net.ipv4.tcp_syncookies = 1
kernel.randomize_va_space = 2
kernel.kptr_restrict = 2
kernel.dmesg_restrict = 1
EOF
sysctl --system # 使全部配置生效
sysctl net.ipv4.tcp_syncookies kernel.randomize_va_space # 复核偏差项已对齐常用加固项与基线值
| 参数 | 含义 | 常见基线值 |
|---|---|---|
| net.ipv4.ip_forward | 是否允许转发 | 普通服务器 0(容器宿主机通常为 1) |
| net.ipv4.conf.all.rp_filter | 反向路径过滤,防源地址伪造 | 1 或 2,视网络结构而定 |
| net.ipv4.tcp_syncookies | 半连接耗尽缓解 | 1 |
| kernel.randomize_va_space | 地址空间随机化 | 2 |
| kernel.kptr_restrict | 是否向普通用户暴露内核指针 | 1 或 2 |
| kernel.dmesg_restrict | 限制内核日志读取 | 1 |
| fs.protected_hardlinks、fs.protected_symlinks | 防硬链接与符号链接攻击 | 1 |
整改闭环要做两步:用 sysctl --system 使配置生效后,重跑同一条核查命令,把整改前后两段输出一起留档。只写出配置文件而不复核生效值,是“整改过了但没生效”的主要来源,例如参数被其他配置文件覆盖时优先级会以文件名字典序为准。
判定要结合角色:容器宿主机需要 ip_forward=1,路由器与网关需要转发功能,这些机器不能照搬普通服务器的基线值。核查脚本应当区分角色模板,报告里写明“该主机为何与此值不同”,否则会产出大量无法整改的伪问题。