网络安全形式越来越差,系统漏洞发现的频率越来越高,对于重要的漏洞操作系统往往会同步发布补丁,而如果采用人工维护模式不可能及时打上补丁,对于在互联网上运行的系统来说是非常危险,如何自动让操作系统给自己打补丁呢?本文记录如何实现每天、每小时自动更新操作系统安全补丁的技术实现。
一、安装yum-cron软件包
yum install yum-cron -y
二、启动yum-cron软件
systemctl enable yum-cron.service
将yum-cron加入开机启动项
systemctl start yum-cron.service
手工启动yum-cron服务
systemctl status yum-cron.service
查看yum-cron服务状态
三、yum-cron每日更新配置文件
每日更新配置文件位于/etc/yum/yum-cron.conf
查找修改apply_update=no 修改为 apply_update=yes
四、yum-cron每小时更新配置文件
每小时更新配置文件位于/etc/yum/yum-cron-hourly.conf
查找修改apply_update=no 修改为 apply_update=yes
update_message=yes
download_updates=yes
五、修改配置执行频率为每小时一次
vi /etc/cron.daily/0yum-daily.cron
exec /usr/sbin/yum-cron /etc/yum/yum-cron-hourly.conf
|
六、检查配置效果,确实是否可以自动更新系统
tail -200 /var/log/messages
tail -200 /var/log/yum.log
通过对比系统消息日志与yum安装日志更新日期时间与文件名可以得知,自动更新确实已经生效,并且在22日中午12:01分启动,12点45分开始记录更新成功日志,也就是说,按照约定yum-cron确实在12:01分启动了检查更新,但是到其真正更新中间经历了近45分钟时间。
七、更新效果
1、更新前扫描器发现了一个4月1日发现的httpd高危漏洞
2、自动更新完成后,扫描器再次扫描已经没有apache httpd高危漏洞
八、使用ansible-playbook批量部署
1、安装yum-cron的role
ansible-galaxy install samdoran.yum_cron
2、编辑yml文件
---
- hosts: all
vars:
yumcron_apply_updates:
daily: 'yes'
hourly: 'yes'
roles:
- samdoran.yum_cron
3、执行效果查询
ansible lab -m command -a 'systemctl status yum-cron'
九、总结
使用python定制的软件yum-cron是个在redhat与centos上实现操作系统自动更新的优秀软件,该软件可以采用按天或按小时更新的模式对系统进行更新,如果管理的服务器很多,则建议通过ansible自动部署。