1. 全面提升主机安全的基础
目标是通过基线硬化、最小化安装与补丁管理,降低常见漏洞被利用的风险,确保 CentOS 系统在默认配置之外具备更强的防护能力。
在 CentOS 环境中,持续的安全防护需要从系统层、服务配置和日志审计等多维度共同作用,以形成可重复、可审计的安全基线,便于快速识别和应对潜在威胁。
系统更新与补丁管理
定期应用安全补丁是抵御漏洞利用的第一道防线。通过定期升级内核、系统组件和已知漏洞相关包,可以显著降低被攻击的概率。
在 CentOS 上,您可以采用自动更新组件来简化运维,同时保留对关键时间点的人工审查渠道。
# CentOS 7/8 常见更新与自动化示例# 1) 使用 yum-cron(CentOS 7/8 都可用,适合较稳态环境)
yum install -y yum-cron
systemctl enable --now yum-cron
# 配置文件位于 /etc/yum/yum-cron.conf,可以开启持续更新的安全通道# 2) 使用 dnf-automatic(CentOS 8/Stream 常用)
dnf install -y dnf-automatic
systemctl enable --now dnf-automatic.timer
# 编辑 /etc/dnf/automatic.conf 设置 apply_updates = yes
通过上述方式实现持续更新的同时,关注仅限安全更新,避免引入未经过充分测试的变更影响生产稳定性。
最小化安装与基线配置
最小化安装和服务裁剪能够显著降低攻击面,推荐将 GUI 界面和不必要的服务彻底禁用或移除,并基于最小权限原则进行配置。
建立稳定的基线配置,便于后续的合规审计与快速回滚。下面的步骤仅供参考,需结合实际环境调整。
# 将系统切换到多用户模式,禁用 GUI
systemctl set-default multi-user.target
systemctl disable graphical.target# 查看并禁用不必要的服务(示例,实际应从清单中筛选出不需要的服务)
systemctl list-unit-files | grep enabled
systemctl disable --now bluetooth.service cups.service wpa_supplicant.service# 删除不必要的软件包(示例,请针对自家服务器实际清单执行)
yum remove -y elinks bind-utils whois
同时建议对系统组件进行基线配置核对,确保 默认账户、密码策略、日志轮转等要素符合安全要求。
审计配置与日志轮转
完善的审计与日志机制是事后溯源和合规审查的核心,可帮助快速定位异常行为并支撑取证工作。
为 CentOS 配置基础的审计能力,并确保日志长期可用与可检索。下列示例覆盖基本审计与日志轮转配置。
# 安装并启用 auditd
yum install -y audit
systemctl enable --now auditd# 配置简单的审计策略(示例)
cat >/etc/audit/rules.d/99-local.rules << 'EOF'
-w /etc/ssh/sshd_config -p wa -k ssh_config_change
-w /etc/passwd -p wa -k passwd_change
-w /etc/shadow -p wa -k shadow_change
-w /var/log/ -p wa -k log_change
-E 2
EOF
systemctl restart auditd# 日志轮转与归档(确保 /var/log/audit 轮转并定期备份)
2. 访问控制与认证强化
访问控制与认证机制的强化,是防止未授权操作和凭证泄露的核心。通过改进 SSH、账户策略与 SELinux 等措施,可以显著提升系统防御能力。
以下内容将帮助您建立更为严格的访问控制体系,降低被攻破的概率,并提升响应速度。
SSH 安全配置
将 SSH 作为最关键的远程入口点,需要禁用根账户对公钥外的远程登录、尽量使用密钥认证,并限制可连接的用户。
通过编辑 /etc/ssh/sshd_config,可以实现多项安全增强:
# /etc/ssh/sshd_config 示例
Port 22
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
UsePAM yes
PermitUserEnvironment no
AllowUsers admin1 admin2
修改配置后,请重新加载 SSH 服务以生效:
systemctl reload sshd
强化密钥管理与双因素认证
为提升认证强度,可结合密钥管理与双因素认证策略,减少仅凭密码进行远程访问的风险。
配置示例(以 Google Authenticator 为例)如下:
# 安装并配置 PAM 模块
yum install -y google-authenticator# 在 /etc/pam.d/sshd 中添加
auth required pam_google_authenticator.so# 修改 SSH 配置以启用两步验证
sed -i 's/#ChallengeResponseAuthentication yes/ChallengeResponseAuthentication yes/' /etc/ssh/sshd_config
sed -i 's/UsePAM yes/UsePAM yes/' /etc/ssh/sshd_configsystemctl restart sshd
账户与权限策略
通过严格的密码策略、最小权限分离和 sudo 访问控制,降低内部威胁与误操作风险。
常见策略包括密码 aging、强制使用 sudo、限定 sudo 权限等。
# 强制账户密码策略
sed -i 's/PASS_MAX_DAYS.*/PASS_MAX_DAYS 90/' /etc/login.defs
sed -i 's/PASS_MIN_DAYS.*/PASS_MIN_DAYS 1/' /etc/login.defs
sed -i 's/PASS_WARN_AGE.*/PASS_WARN_AGE 14/' /etc/login.defs# 限制 sudo 权限,建议仅授权特定用户/用户组
# 使用 visudo 将以下行加入 /etc/sudoers
# %wheel ALL=(ALL) ALL
SELinux 与防护策略
将 SELinux 置于强制或相对强制模式,是对系统行为控制的重要手段,能够在不修改应用的情况下提升安全性。
常用的配置与检查如下:
# 将 SELinux 设置为强制执行
setenforce 1# 永久生效:编辑 /etc/selinux/config
# SELINUX=enforcing
# SELINUXTYPE=targeted# 检查当前模式与策略
sestatus
3. 网络边界与日志监控
网络边界的正确配置和持续的日志监控,是防御现代攻击链的重要环节。本节聚焦防火墙策略、入侵检测与集中化日志管理。
通过合理的网络分段、最小化暴露以及对异常行为的快速告警,可以显著提升对抗外部威胁的能力。

防火墙与端口控制
控制对外暴露的端口和服务,确保仅开放必要的入口,是最直接的防护措施之一。
在 CentOS 下,推荐使用 firewalld 进行区域化管理与永久规则配置。
# 查看默认区域并设置
firewall-cmd --get-default-zone
# 允许 SSH 服务,保持最小暴露
firewall-cmd --permanent --zone=public --add-service=ssh
# 移除不必要的服务(示例)
firewall-cmd --permanent --zone=public --remove-service=ftp
# 重新加载防火墙
firewall-cmd --reload
入侵检测与日志审计
引入入侵检测与日志审计工具,是快速发现异常行为并进行响应的关键。
常用做法包括安装 fail2ban、配置基本的日志审计策略,以及将日志集中化到日志服务器或 SIEM。
# 安装并配置 fail2ban(针对 SSH 保护)
yum install -y epel-release
yum install -y fail2ban
systemctl enable --now fail2ban# 简单 jail 配置:/etc/fail2ban/jail.d/sshd.conf
[sshd]
enabled = true
port = ssh
logpath = /var/log/secure
maxretry = 5
bantime = 3600
结合上述策略,可以实现对暴力破解等常见攻击的有效防护。
监控与告警策略
建立集中化日志采集与告警机制,确保异常事件能够被及时发现和响应。
建议将日志转发到集中日志服务器,并设置合理的告警阈值,以支持快速处置。
# 远端日志收集(示例:rsyslog 发送到日志服务器)
echo '*.info;mail.none;authpriv.none;cron.none @logserver.example.com:514' >> /etc/rsyslog.conf
systemctl restart rsyslog# 如果使用本地日志轮转与远端归档
# 结合 rsyslog 的远端目标与 logrotate 的策略
4. 审计与持续加固实践
持续加固是安全的长期保障,需结合审计、配置管理与应急能力进行闭环管理,以实现稳定的防护能力提升。
通过合规性检查、自动化基线、以及快速响应能力,您可以在 CentOS 上维持长期的安全状态。
审计日志与合规性
系统化的审计策略有助于事后分析以及合规性验证,包括保存关键配置变更与访问记录。
以下配置示例展示了如何通过规则捕获重要变更事件,并进行快速检索。
# 基本审计规则示例
cat >/etc/audit/rules.d/99-local.rules << 'EOF'
-w /etc/ssh/sshd_config -p wa -k ssh_config_change
-w /etc/passwd -p wa -k passwd_change
-w /etc/shadow -p wa -k shadow_change
-w /var/log/ -p wa -k log_change
-E 2
EOF
systemctl restart auditd
ausearch -k ssh_config_change | head
自动化基线与配置管理
借助配置管理与基线工具,可以实现对系统配置的一致性、可追溯性和快速回滚。
通过集中化的策略,您可以确保新创建的主机自动符合既定基线。
# 使用 Ansible 强制执行基线(示例)
ansible-playbook -i hosts hardening.yml --limit 'centos_servers'
应急响应与备份
具备完整的备份与应急响应能力,是降低中断时间与数据损失的关键,应覆盖数据、配置和关键服务的快速恢复。
务必建立定期备份,并验证恢复流程的可用性。
# 简单备份示例(示意)
rsync -a --delete /etc/ /backup/etc/ --progress
rsync -a --delete /var/lib/mysql/ /backup/mysql/ --progress


