SuperAPI AI 工具集

linux-server-hardening

安全与审计

查看项目

更新于 10-16 08:04

技能介绍

用途:在完成安全审计后,把已核实的发现逐项转化为可确认、可回滚、可验证的加固改动,覆盖 SSH、防火墙、强制访问控制、服务、文件权限与内核参数。不用于只读的发现报告(改用 linux-security-analysis),也不用于与安全无关的狭窄运维变更。

发行版差异:SSH 与 sysctl 加固基本一致;主要差别在强制访问控制——Debian/Ubuntu 用 AppArmor(aa-status、/etc/apparmor.d/),RHEL 系(Fedora、RHEL、CentOS Stream、Rocky、Alma、Oracle)默认强制 SELinux(getenforce、sestatus)。防火墙分别为 ufw 与 firewalld,自动更新为 unattended-upgrades 与 dnf-automatic,sudo 管理员组为 sudo 与 wheel。RHEL 上切勿用 setenforce 0 绕过拒绝,应诊断并设置正确上下文/布尔值/端口。

必需输入:已核实发现与证据;主机角色、发行版、依赖与运行时长;每次改动的授权与回滚窗口;用于访问控制的恢复通道(控制台或独立特权会话)。缺失时只输出建议方案,不做变更。

处理顺序(按优先级):1) SSH:禁用密码认证与 root 登录,MaxAuthTries 3,配置 /etc/ssh/sshd_config.d/99-hardening.conf,须保持现有会话并用第二终端验证,sshd -t 校验;2) 防火墙 UFW 默认拒绝入站,仅放行 22/80/443;3) 内核 sysctl 加固,配置 /etc/sysctl.d/99-linux-skills.conf;4) Nginx 关闭 server_tokens、加安全头、屏蔽点文件;5) PHP-FPM 关闭 expose_php/display_errors/allow_url_include,加固会话 cookie,禁用危险函数;6) MySQL bind-address=127.0.0.1 并运行 mysql_secure_installation,应用用户最小权限;7) Redis 绑定 127.0.0.1、设密码、重命名危险命令;8) 文件权限,如 /etc/shadow 640、凭证文件 600、SSH 密钥 600、/var/www 无可写文件;9) 自动更新启用。

使用方式:先运行审计 sudo bash ~/.claude/skills/scripts/server-audit.sh,先修 FAIL 再修 WARN;加固后重跑审计确认原 FAIL 转 PASS。可选快路径:sudo install-skills-bin linux-server-hardening 安装脚本,如 sk-selinux-denials(仅 RHEL 系,汇总 AVC 拒绝、audit2why 解释,经确认后生成策略模块,绝不禁用 SELinux)。参考文件:references/hardening-checklist.md、sysctl-reference.md、selinux-reference.md。

限制:无审计证据、root、恢复通道、维护窗口或验证工具时,只能给出最窄的方案与确切命令,发现保持未关闭,不得声称加固完成。高危改动需逐项验证并设检查点;验证不符须回滚并停止相关改动;不得在无恢复途径时改 SSH、防火墙、PAM 或 MAC 策略。桌面/工作站例外:AppImage 运行时包等属于工作站包配置,不应装到无头服务器。