CentOS Stream 8安全性如何保障
小樊
45
2025-12-21 11:00:49
CentOS Stream 8 安全性保障实践
定位与更新机制
- CentOS Stream 8 是滚动更新的开发版本,位于 RHEL 上游与下游之间,获取安全修复通常更快,但节奏与稳定版 RHEL 不同,生产环境需配套更严格的变更管控与回退预案。
- 建议将系统纳入持续更新流程:定期执行 dnf update;对关键系统启用 dnf-automatic 自动下载并安装安全更新,减少暴露窗口。
- 若从 CentOS Linux 8 迁移至 CentOS Stream 8,应先备份,再执行:
- dnf swap centos-linux-repos centos-stream-repos
- dnf distro-sync
完成后重启以启用新内核与组件。
账户与登录安全
- 清理与收敛特权:识别并锁定非必要 UID 0 账户(如 awk -F ‘:’ ‘{print $1,$3}’ /etc/passwd | grep ‘0$’);删除不再使用的默认账户(如 adm、lp、sync 等)。
- 强化口令策略:在 /etc/login.defs 设置 PASS_MIN_LEN 10;要求包含大小写字母、数字与特殊字符;排查并整改空口令账户。
- 保护关键文件:对 /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow 设置不可变属性(chattr +i),防止被非授权篡改。
- 会话与登录安全:设置 TMOUT=300(/etc/profile)自动注销闲置会话;通过 /etc/securetty 限制 root 可登录终端;在 /etc/ssh/sshd_config 中禁用 root 远程登录、禁止空密码、按需仅允许特定用户(PermitRootLogin no、PermitEmptyPasswords no、AllowUsers your_ops);必要时改用密钥认证并关闭口令登录。
网络与边界防护
- 启用并持久化 firewalld:systemctl enable --now firewalld;仅放行必需服务/端口(例如 firewall-cmd --permanent --add-service=ssh && firewall-cmd --reload)。
- 精细化端口管控:按业务需要仅开放必要端口(如 1883/8883 MQTT、9092 Kafka、3000 Grafana),变更前评估影响并灰度发布。
- 访问控制与抗攻击:通过 /etc/hosts.allow、/etc/hosts.deny 实施主机级访问控制;配置 PAM/系统资源限制缓解 DoS;必要时限制 NFS 共享的访问范围与权限。
服务最小化与系统加固
- 服务最小化:停用与业务无关的服务与守护进程(如 acpid、autofs、bluetooth、cpuspeed、cups、ip6tables 等),减少攻击面。
- 启动与权限:仅保留必要的开机自启服务;严格控制 /etc/rc.d/init.d/ 等启动脚本权限,确保仅 root 可变更。
- 控制台与物理安全:禁用 Ctrl+Alt+Delete 重启组合键,降低本地物理攻击风险。
审计、监控与补丁策略
- 日志与审计:确保 systemd-journald 与 rsyslog 正常运行,集中采集与安全相关日志(如 auth、secure、audit),并设置外发与留存策略。
- 入侵防护:部署 fail2ban 对 SSH 等暴力破解进行自动封禁,缩短攻击驻留时间。
- 变更与回退:对内核、OpenSSL、glibc、数据库、中间件等关键组件变更,采用灰度/蓝绿发布与回滚预案;定期验证 GPG 签名与仓库元数据完整性。
- 漏洞处置:出现高危漏洞时优先通过官方仓库更新;若上游暂未提供修复版本,可在评估风险后临时引入可信第三方仓库或采用应用层加固与网络隔离等补偿控制,并在修复窗口内完成替换。
- 风险提示:修改 root 登录、SSH 配置、防火墙策略、PAM 与系统服务等操作,可能导致业务中断或锁定风险;务必在维护窗口内执行,保留本地/控制台访问通道,先小范围验证再全网推广。