作为IT工程师,我理解您需要保护CentOS系统免受恶意程序通过自动更新机制入侵的风险。以下是全面的防护方案:
# 检查已启用的仓库
yum repolist enabled
# 禁用不信任的仓库
yum-config-manager --disable <repository-name>
# 确保只使用CentOS官方基础仓库和更新仓库
yum-config-manager --enable base updates
# 编辑配置文件
vi /etc/yum.conf
# 添加或修改以下参数
gpgcheck=1 # 强制检查GPG签名
localpkg_gpgcheck=1 # 检查本地包的GPG签名
repo_gpgcheck=1 # 检查仓库元数据的GPG签名
# 在每个.repo文件中确保有以下设置
[base]
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
# 安装yum-cron
yum install yum-cron -y
# 配置安全更新策略
vi /etc/yum/yum-cron.conf
# 重要设置
update_cmd = security # 只应用安全更新
download_updates = yes # 先下载不安装
apply_updates = no # 不自动应用更新
random_sleep = 360 # 随机延迟(秒)
# 验证所有安装的包
rpm -Va > /tmp/rpm_verify.log
# 检查关键系统文件
rpm -qf /bin/bash /usr/sbin/sshd /bin/ls /usr/bin/yum | xargs rpm -V
# 确保SELinux处于强制模式
getenforce
# 如果未启用
vi /etc/selinux/config
SELINUX=enforcing
# 关键目录设置不可变属性(谨慎使用)
chattr +i /etc/yum.repos.d/*
chattr +i /etc/yum.conf
chattr +i /etc/pki/rpm-gpg/*
# 限制yum更新源IP(如果使用内部镜像)
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="your.trusted.mirror.ip" service name="http" accept'
firewall-cmd --reload
# 确保仓库URL使用https://
vi /etc/yum.repos.d/CentOS-Base.repo
# 修改所有http://为https://
# 记录所有yum操作
vi /etc/yum.conf
[main]
history_record=yes
yum install aide -y
aide --init
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
# 设置定期检查
如果怀疑系统已被恶意更新入侵:
1. 立即断开网络
2. 检查最近安装的包: rpm -qa --last | head -20
3. 验证可疑包: rpm -V <package-name>
4. 从备份恢复或重新安装干净系统
这些措施将显著降低您的CentOS系统通过自动更新机制被恶意程序入侵的风险,同时保持必要的安全更新能力。