我们有机器运行基于RedHat的发行版,如CentOS或Scientific Linux。 我们希望系统自动通知我们是否有已知的安装软件包漏洞。 FreeBSD通过ports-mgmt / portaudit端口来执行此操作。
RedHat提供了yum-plugin-security ,它可以通过Bugzilla ID, CVE ID或咨询ID来检查漏洞。 另外,Fedora最近开始支持yum-plugin-security 。 我相信这是在Fedora 16中添加的。
截至2011年底,科学Linux 6不支持yum-plugin-security 。 它附带/etc/cron.daily/yum-autoupdate
,每天更新RPMs。 但是,我不认为这只能处理安全更新。
CentOS不支持yum-plugin-security
。
我监视CentOS和Scientific Linux邮件列表以获取更新,但是这很乏味,我想要一些可以自动化的东西。
对于那些维护CentOS和SL系统的人,是否有任何工具可以:
yum update-minimal --security
。 我已经考虑使用yum-plugin-changelog
来打印每个包的更新日志,然后parsing某些string的输出。 有没有工具可以做到这一点?
如果你绝对想使用yum security plugin
,有一种方法可以做到这一点,虽然有点精心。 但一旦你安装好了,它就全部自动化了。
唯一的要求是,你将需要至less有一个订阅RHN。 这是一个很好的投资国际海事组织,但让我们坚持的重点。
yum security
。 repomd.xml
命令将updateinfo.xml
注入到repomd.xml
。 在这之前 ,你必须修改perl脚本来改变xml中的Rpm MD5总和,从RHN到Centos总和。 而且你必须确定CentOS回收站是否实际上拥有updateinfo.xml
提到的所有Rpms,因为它们有时是在RHN后面的。 但是没关系,你可以忽略CentOS没有涉及到的更新,因为你可以做的事情很less,而不是从SRPM构build它们。 使用选项2,您可以在所有客户端上安装yum security
插件,并且可以正常工作。
编辑:这也适用于Redhat RHEL 5和6机器。 而且比使用太空行走或纸浆等重量级的解决scheme更简单。
科学Linux现在可以从命令行列出安全更新。 此外,我可以更新一个系统,只应用安全更新,这是更好的默认(“只是更新一切!包括错误修正你不关心和哪些引入回归。
我已经在Scientific Linux 6.1和6.4上testing过了。 我不确定这是什么时候正式宣布,但我会发现更多的时候,我发现。
这里有些例子。
列出安全更新的摘要:
[root@node1 ~]# yum updateinfo Loaded plugins: changelog, downloadonly, fastestmirror, priorities, security Loading mirror speeds from cached hostfile Updates Information Summary: available 4 Security notice(s) 1 important Security notice(s) 3 moderate Security notice(s) 2 Bugfix notice(s) updateinfo summary done root@node1 ~]# yum list-sec Loaded plugins: changelog, downloadonly, fastestmirror, priorities, security Loading mirror speeds from cached hostfile SLSA-2013:1459-1 moderate/Sec. gnupg2-2.0.14-6.el6_4.x86_64 SLSA-2013:1436-1 moderate/Sec. kernel-2.6.32-358.23.2.el6.x86_64 SLSA-2013:1436-1 moderate/Sec. kernel-devel-2.6.32-358.23.2.el6.x86_64 SLSA-2013:1436-1 moderate/Sec. kernel-firmware-2.6.32-358.23.2.el6.noarch SLSA-2013:1436-1 moderate/Sec. kernel-headers-2.6.32-358.23.2.el6.x86_64 SLSA-2013:1457-1 moderate/Sec. libgcrypt-1.4.5-11.el6_4.x86_64 SLSA-2013:1270-1 important/Sec. polkit-0.96-5.el6_4.x86_64 SLBA-2013:1486-1 bugfix selinux-policy-3.7.19-195.el6_4.13.noarch SLBA-2013:1491-1 bugfix selinux-policy-3.7.19-195.el6_4.18.noarch SLBA-2013:1486-1 bugfix selinux-policy-targeted-3.7.19-195.el6_4.13.noarch SLBA-2013:1491-1 bugfix selinux-policy-targeted-3.7.19-195.el6_4.18.noarch updateinfo list done
CVE列表:
[root@node2 ~]# yum list-sec cves Loaded plugins: changelog, downloadonly, fastestmirror, priorities, security Loading mirror speeds from cached hostfile * epel: mirrors.kernel.org * sl6x: ftp.scientificlinux.org * sl6x-security: ftp.scientificlinux.org 7404 packages excluded due to repository priority protections CVE-2012-6085 moderate/Sec. gnupg2-2.0.14-6.el6_4.x86_64 CVE-2013-4351 moderate/Sec. gnupg2-2.0.14-6.el6_4.x86_64 CVE-2013-4402 moderate/Sec. gnupg2-2.0.14-6.el6_4.x86_64 CVE-2013-4162 moderate/Sec. kernel-2.6.32-358.23.2.el6.x86_64 CVE-2013-4299 moderate/Sec. kernel-2.6.32-358.23.2.el6.x86_64 CVE-2013-4162 moderate/Sec. kernel-firmware-2.6.32-358.23.2.el6.noarch CVE-2013-4299 moderate/Sec. kernel-firmware-2.6.32-358.23.2.el6.noarch CVE-2013-4242 moderate/Sec. libgcrypt-1.4.5-11.el6_4.x86_64 updateinfo list done
然后,我可以应用所需的最小的一组更改
[root@node1 ~]# yum update-minimal --security
或者,只是修补一切:
[root@node1 ~]# yum --quiet --security check-update gnutls.x86_64 2.8.5-14.el6_5 sl-security libtasn1.x86_64 2.3-6.el6_5 sl-security [root@node1 ~]# yum --quiet --security update ================================================================================================================= Package Arch Version Repository Size ================================================================================================================= Updating: gnutls x86_64 2.8.5-14.el6_5 sl-security 345 k libtasn1 x86_64 2.3-6.el6_5 sl-security 237 k Transaction Summary ================================================================================================================= Upgrade 2 Package(s) Is this ok [y/N]: Y [root@node1 ~]#
如果我在CentOS6盒子上尝试这个命令,我没有得到任何结果。 我知道一个事实,那就是137个可用的包中有一些包含安全修复,因为我昨天通过CentOS邮件列表收到了勘误通知。
[root@node1 ~]# yum --security check-update Loaded plugins: downloadonly, fastestmirror, security Loading mirror speeds from cached hostfile * base: mirrors.usc.edu * epel: mirrors.kernel.org * extras: mirror.web-ster.com * updates: mirrors.kernel.org Limiting package lists to security relevant ones No packages needed for security; 137 packages available [root@node1 ~]#
我有同样的问题。 我试图创build一些Python代码来将上面提到的steve-meier勘误网站中的Yum更新和build议(我基于已安装的包进行过滤)汇集在一起。
如果有帮助,这里是来源: https : //github.com/wied03/centos-package-cron
由于您拥有CFEngine,因此您可以根据以下网站上发布的安全更新对系统组进行更改: http : //twitter.com/#!/ CentOS_Announce
我不是那里最大的服务器安全工程师……但是我倾向于发现我只关心一些安全方面的软件包。 任何面向公共的(ssl,ssh,apache)或者有一个主要的漏洞都是优先的。 其他一切都按季度评估。 我不希望这些东西自动升级,因为更新的软件包可能会破坏生产系统上的其他项目。
科学Linux(至less6.2和6.3,我没有任何6.1系统)不仅支持yum-plugin-security
而且yum-autoupdate
, /etc/sysconfig/yum-autoupdate
的configuration文件允许你启用安全更新。
# USE_YUMSEC # This switches from using yum update to using yum-plugin-security # true - run 'yum --security' update rather than 'yum update' # false - defaults to traditional behavior running 'yum update' (default) # + anything other than true defaults to false #USE_YUMSEC="false" USE_YUMSEC="true"
在CentOS上你可以使用
yum list updates
而不是yum-plugin-security,或者你想试试这个基于CentOS安全新闻提要的脚本扫描: LVPS 。
你也可以尝试generate_updateinfo项目。 它是一个处理由errata.latest.xml
项目编译的errata.latest.xml
文件的python脚本,并生成带有安全更新元数据的updateinfo.xml
文件。 然后,您可以将其注入到您当地的CentOS 6(7)更新存储库。 将它与通过createrepo
命令创build的定制/本地存储库相集成非常简单:
reposync
命令 createrepo
命令创build本地存储库 generate_updateinfo.py
脚本下载并生成updateinfo.xml
文件 modifyrepo
命令将生成的安全更新元数据注入到本地存储库 在CentOS6上,你可以使用yum-security插件:
yum install yum-security
请检查:
yum --security check-update
如果没有安全更新可用,此命令将返回代码0。
结合yum-cron,您可以通过修改文件/ etc / sysconfig / yum-cron来获得只有可用安全更新的电子邮件:
YUM_PARAMETER="--security"