
账号与权限最小化管理
生产环境必须杜绝共享账号和 root 直接登录。创建专用运维账号,通过 sudo 授予明确命令权限,禁用密码登录,强制使用 ssh 密钥认证。对关键服务(如数据库、中间件)单独设立运行用户,确保其仅拥有必要文件读写和进程操作权限。定期审计 /etc/passwd 和 /etc/group,删除闲置账号和无主组。
系统服务与端口精简
关闭所有非必需服务,例如 telnet、ftp、rsh 等明文传输服务。使用 systemctl list-unit-files –type=service –state=enabled 检查开机自启项,逐项确认必要性。对必须开放的端口(如 22、80、443),在防火墙(iptables 或 nftables)中限制源 IP 范围,禁止全网暴露。Web 后端服务建议监听 127.0.0.1,由反向代理统一对外暴露。
内核与软件持续更新与加固
启用自动安全更新(如 unattended-upgrades 或 dnf-automatic),但需在测试环境验证后再推至生产。禁用内核模块加载(kernel.modules_disabled=1),关闭核心转储(fs.suid_dumpable=0),开启 ASLR 和 stack-protector 编译选项。对 nginx/apache/mysql 等组件,使用官方稳定版而非系统默认旧版本,并移除示例配置、测试页面和调试接口(如 phpinfo.php、/server-status)。
日志审计与异常监控闭环
集中收集关键日志:SSH 登录记录(/var/log/secure)、系统启动(journald)、应用错误日志、防火墙丢包日志。配置 rsyslog 或 fluentd 将日志实时转发至独立日志服务器,防止被篡改或清空。部署轻量级 HIDS(如 osquery 或 AIDE)监控二进制文件、配置文件、系统用户等关键资产变化。设置告警规则——例如 5 分钟内同一 IP 多次 SSH 失败、非工作时间 root 登录、敏感目录权限突变等,触发企业微信/钉钉通知。