>CentOS虚拟机安全防护措施完全指南 (2026)
在云计算和虚拟化技术日益普及的今天,CentOS作为企业级Linux发行版,在虚拟机环境中被广泛应用。然而,虚拟机的安全防护往往被忽视,导致系统面临各种安全威胁。本文将详细介绍CentOS虚拟机的全方位安全防护措施,帮助系统管理员构建坚固的安全防御体系。
>一、系统与账户安全基础
>1.1 系统更新与补丁管理
保持系统更新是安全防护的第一道防线。CentOS系统应建立固定的更新周期:
>
更新所有软件包
yum update -y
>仅更新安全补丁
yum update --security -y
建议设置自动更新策略,并保留更新日志以便审计。对于生产环境,应在测试环境验证后再应用到生产系统。
>1.2 账户与口令安全
强口令策略:
- 口令长度至少10位,包含大小写字母、数字和特殊字符
- 定期更换口令(建议90天)
- 禁止使用常见口令或字典单词
清理无用账户:
查看空口令账户
awk -F: '($2 == "") {print}' /etc/shadow
>锁定或删除不必要的系统账户
passwd -l adm
passwd -l lp
passwd -l sync
1.3 权限最小化原则
配置sudo权限:
创建普通用户并授予必要的sudo权限
禁止root直接远程登录
配置/etc/sudoers文件,使用visudo命令编辑
>
添加用户到wheel组
usermod -aG wheel username
>在sudoers中配置
%wheel ALL=(ALL) ALL
限制su命令:
只允许wheel组用户使用su
echo "auth required pam_wheel.so use_uid" >> /etc/pam.d/su
二、SSH安全加固
>2.1 基础SSH配置
编辑/etc/ssh/sshd_config:
>
禁止root直接登录
PermitRootLogin no
>使用SSH协议2
Protocol 2
>禁用空口令登录
PermitEmptyPasswords no
>设置登录超时
ClientAliveInterval 300
ClientAliveCountMax 2
2.2 密钥认证替代口令
生成SSH密钥对:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
禁用口令认证:
PasswordAuthentication no
PubkeyAuthentication yes
2.3 防暴力破解 - Fail2ban部署
安装并配置Fail2ban:
>
安装
yum install epel-release -y
yum install fail2ban -y
>配置/etc/fail2ban/jail.local
[sshd]
enabled = true
maxretry = 3
bantime = 86400
findtime = 600
三、防火墙与网络安全
>3.1 Firewalld配置
>
启动并启用firewalld
systemctl start firewalld
systemctl enable firewalld
>开放必要端口
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
>可选:屏蔽ICMP探测
firewall-cmd --permanent --add-icmp-block-inversion
3.2 端口与服务最小化
关闭不必要的服务和端口
使用netstat -tulnp或ss -tulnp查看监听端口
仅开放业务必需端口
>
查看开放端口
ss -tulnp
>停止并禁用不必要服务
systemctl stop telnet.socket
systemctl disable telnet.socket
四、文件系统与权限防护
>4.1 关键文件属性保护
使用chattr保护关键系统文件:
>
设置不可修改属性
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
>查看属性
lsattr /etc/passwd
4.2 权限与umask设置
>
设置默认权限掩码
echo "umask 027" >> /etc/profile
>检查敏感文件权限
chmod 600 /etc/shadow
chmod 644 /etc/passwd
chmod 644 /etc/group
五、日志审计与入侵检测
>5.1 系统日志配置
确保关键日志正常采集:
>
查看SSH登录日志
tail -f /var/log/secure
>使用ausearch审计
ausearch -m USER_LOGIN -ts recent
5.2 审计服务配置
>
启用auditd服务
systemctl enable auditd
systemctl start auditd
>添加审计规则
auditctl -w /etc/passwd -p wa -k passwd_changes
auditctl -w /etc/shadow -p wa -k shadow_changes
六、虚拟化层安全
>6.1 SELinux配置
>
检查SELinux状态
getenforce
>设置为Enforcing模式
setenforce 1
sed -i 's/SELINUX=disabled/SELINUX=enforcing/' /etc/selinux/config
6.2 虚拟机镜像安全
虚拟机镜像集中存放在/var/lib/libvirt/images/
设置正确的SELinux上下文
定期扫描镜像文件完整性
>
检查镜像文件安全上下文
ls -Z /var/lib/libvirt/images/
七、备份与恢复策略
>7.1 备份方案
>
系统备份示例
tar -czvf /backup/centos-$(date +%Y%m%d).tar.gz \
--exclude=/proc --exclude=/sys \
--exclude=/dev --exclude=/backup \
/
>使用rsync增量备份
rsync -avz --delete / /backup/current/
7.2 恢复演练
定期进行恢复测试
保留多个备份版本
异地备份重要数据
>八、安全基线检查清单
建立定期安全检查机制:
1. 每日检查:
- 查看系统日志
- 检查异常登录
- 监控资源使用
2. 每周检查:
- 更新系统补丁
- 审计用户账户
- 检查防火墙规则
3. 每月检查:
- 完整安全扫描
- 备份完整性验证
- 安全策略评审
>九、总结
CentOS虚拟机的安全防护是一个系统工程,需要从多个层面进行综合防护:
预防层:系统加固、权限控制、补丁管理
检测层:日志审计、入侵检测、异常监控
响应层:事件处理、灾难恢复、备份还原
通过实施上述措施,可以显著提升CentOS虚拟机的安全防护水平,降低安全风险。安全是一个持续的过程,需要定期审查和更新安全策略,以应对不断变化的威胁环境。
---
实用建议:建议将本文提到的安全配置编写成自动化脚本,在虚拟机部署时自动执行,确保安全防护的一致性和完整性。同时,建立安全事件响应流程,确保在发生安全事件时能够快速、有效地应对。