CentOS 8 物理机安装后的关键安全加固与维护指南当你在物理服务器上完成CentOS 8的基础安装后真正的系统管理工作才刚刚开始。由于CentOS 8已停止官方支持系统管理员面临的首要挑战是如何在缺乏安全更新的情况下确保系统安全稳定运行。本文将深入探讨五个关键领域的配置优化帮助你构建一个既安全又可维护的生产环境。1. 迁移至Vault存档源的完整方案CentOS 8官方源已不可用迁移到vault.centos.org存档源是系统可维护性的基础。这个操作看似简单但需要考虑网络连接稳定性、软件包完整性和后续维护的便利性。1.1 一键迁移脚本与验证执行以下命令完成源切换#!/bin/bash # 备份原有repo文件 mkdir -p /etc/yum.repos.d/backup mv /etc/yum.repos.d/CentOS-* /etc/yum.repos.d/backup/ # 生成新的repo配置 cat /etc/yum.repos.d/CentOS-Base.repo EOF [base] nameCentOS-$releasever - Base baseurlhttp://vault.centos.org/$contentdir/$releasever/BaseOS/$basearch/os/ gpgcheck1 enabled1 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial [extras] nameCentOS-$releasever - Extras baseurlhttp://vault.centos.org/$contentdir/$releasever/extras/$basearch/os/ gpgcheck1 enabled1 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF # 清理缓存并重建 dnf clean all dnf makecache验证源是否生效dnf repolist enabled注意vault.centos.org的访问速度可能较慢建议在网络空闲时段执行批量更新操作。对于生产环境可以考虑搭建本地镜像源。1.2 关键软件包锁定策略在缺乏安全更新的环境下建议锁定关键软件包版本以防止意外升级# 锁定内核版本 dnf install yum-plugin-versionlock dnf versionlock kernel* # 查看已锁定包 dnf versionlock list2. 安全增强SELinux与防火墙的平衡配置安全增强型Linux(SELinux)是CentOS的重要安全特性但过于严格的策略可能导致服务异常。我们需要在安全与可用性之间找到平衡点。2.1 SELinux策略优化查看当前SELinux状态sestatus临时修改模式(无需重启)setenforce 0 # 宽松模式 setenforce 1 # 强制模式永久配置建议# 修改/etc/selinux/config SELINUXenforcing SELINUXTYPEtargeted常见问题排查命令# 查看SELinux拒绝日志 ausearch -m avc -ts recent # 生成自定义策略模块 audit2allow -a -M mypolicy semodule -i mypolicy.pp2.2 Firewalld精细控制基础服务放行firewall-cmd --permanent --add-servicessh firewall-cmd --permanent --add-servicehttp firewall-cmd --permanent --add-servicehttps firewall-cmd --reload高级端口管理示例# 开放特定端口范围 firewall-cmd --permanent --add-port3000-4000/tcp # 限制源IP访问 firewall-cmd --permanent --add-rich-rulerule familyipv4 source address192.168.1.0/24 port port22 protocoltcp accept # 查看活跃区域配置 firewall-cmd --list-all3. SSH安全加固实战SSH是服务器的主要入口也是攻击者的首要目标。以下配置可以显著提升SSH安全性。3.1 基础安全配置编辑/etc/ssh/sshd_config关键参数Port 2222 # 修改默认端口 PermitRootLogin no MaxAuthTries 3 LoginGraceTime 1m ClientAliveInterval 300 ClientAliveCountMax 0 PasswordAuthentication no # 强制使用密钥认证重启服务生效systemctl restart sshd3.2 密钥认证全流程生成密钥对(客户端执行)ssh-keygen -t ed25519 -f ~/.ssh/server_access -C adminserver部署公钥到服务器ssh-copy-id -i ~/.ssh/server_access.pub -p 2222 userserver测试连接ssh -i ~/.ssh/server_access -p 2222 userserver关键提示务必在另一个会话中测试连接后再关闭当前连接避免配置错误导致无法访问。4. 系统账户与权限管理合理的账户权限规划是系统安全的重要防线。以下是生产环境的最佳实践。4.1 管理员账户设置创建运维账户并配置sudo权限useradd -m -s /bin/bash opsadmin passwd opsadmin # 配置sudo权限 echo opsadmin ALL(ALL) NOPASSWD: ALL /etc/sudoers.d/10-opsadmin visudo -c # 验证配置语法4.2 服务账户隔离原则为每个服务创建独立账户useradd -r -s /sbin/nologin -d /var/lib/mysql mysql useradd -r -s /sbin/nologin -d /var/www nginx关键目录权限示例chmod 750 /home/* chmod 700 /etc/ssh/*_key5. 基础工具更新与监控配置在受限的更新源环境下选择性更新关键组件尤为重要。5.1 关键组件更新清单安全相关组件优先更新dnf update --nobest -y \ openssl openssh \ kernel-core \ systemd \ glibc必要工具安装dnf install -y \ epel-release \ htop \ tmux \ ncdu \ lsof \ sysstat \ fail2ban5.2 基础监控配置配置sysstat收集系统指标# 修改/etc/sysconfig/sysstat SADC_OPTIONS-S DISK启用并查看服务systemctl enable --now sysstat sar -u 1 3 # CPU使用率示例Fail2Ban基础配置# /etc/fail2ban/jail.local [sshd] enabled true port 2222 maxretry 3长期维护建议虽然上述措施可以提升系统安全性但CentOS 8已结束生命周期这一事实无法改变。建议评估迁移到Rocky Linux或AlmaLinux的可行性建立完善的漏洞监控机制考虑使用容器技术隔离老旧应用制定详细的系统更新和迁移路线图每次系统维护后建议使用以下命令检查关键配置# 检查异常用户 awk -F: ($3 1000) {print $1} /etc/passwd # 检查SUID文件 find / -perm /4000 -type f -exec ls -ld {} \; # 检查监听端口 ss -tulnp记住没有绝对安全的系统只有持续的安全实践才能确保业务稳定运行。