Vérifier automatiquement les mises à jour de sécurité sur CentOS ou Scientific Linux?

20

Nous avons des machines exécutant des distributions basées sur RedHat telles que CentOS ou Scientific Linux. Nous souhaitons que les systèmes nous informent automatiquement de toute vulnérabilité connue des packages installés. FreeBSD le fait avec le port ports-mgmt / portaudit .

RedHat fournit une sécurité de plugin yum , qui peut vérifier les vulnérabilités par leur ID Bugzilla, ID CVE ou ID consultatif. De plus, Fedora a récemment commencé à prendre en charge yum-plugin-security . Je pense que cela a été ajouté dans Fedora 16.

Scientific Linux 6 ne prenait pas en charge la sécurité des plugins yum à la fin de 2011 . Il est livré avec /etc/cron.daily/yum-autoupdate, qui met à jour les RPM quotidiennement. Je ne pense pas que cela gère uniquement les mises à jour de sécurité.

CentOS ne prend pas en chargeyum-plugin-security .

Je surveille les listes de diffusion CentOS et Scientific Linux pour les mises à jour, mais c'est fastidieux et je veux quelque chose qui puisse être automatisé.

Pour ceux d'entre nous qui maintiennent les systèmes CentOS et SL, existe-t-il des outils qui peuvent:

  1. Nous informer automatiquement (progressivement, via cron) s'il existe des vulnérabilités connues avec mes RPM actuels.
  2. Facultativement, installez automatiquement la mise à niveau minimale requise pour corriger une vulnérabilité de sécurité, qui serait probablement yum update-minimal --securitysur la ligne de commande?

J'ai envisagé d'utiliser yum-plugin-changelogpour imprimer le journal des modifications de chaque package, puis analyser la sortie de certaines chaînes. Y a-t-il des outils qui le font déjà?

Stefan Lasiewski
la source
Avez-vous un système de gestion de configuration en place? Fantoche? CFEngine?
ewwhite
Oui, j'ai Cfengine. Je pense à Puppet.
Stefan Lasiewski
2
yum-updatesd avait l'habitude de faire quelque chose de similaire (notifier les nouvelles mises à jour et mentionner s'il y en avait), mais je ne pense pas que ce soit dans le dépôt CentOS 6 (ou EPEL). Vous pourrez peut-être adapter assez facilement les scripts sur le wiki CentOS .
cyberx86

Réponses:

8

Si vous voulez absolument l'utiliser yum security plugin, il existe un moyen de le faire, bien qu'un peu élaboré. Mais une fois que vous l'avez configuré, tout est automatisé.

La seule exigence est que vous aurez besoin d'avoir au moins un abonnement à RHN. Ce qui est un bon investissement de l'OMI, mais permet de s'en tenir au fait.

  1. Une fois que vous avez l'abonnement, vous pouvez utiliser mrepo , ou reposync , pour configurer un référentiel Yum interne, qui reflète le repos CentOS. (ou vous pouvez simplement utiliser rsync).
  2. Ensuite, utilisez le script joint à cette publication de la liste de diffusion , pour vous connecter périodiquement à votre abonnement RHN, pour télécharger des informations sur les packages de sécurité. Vous avez maintenant deux options.
    1. Extrayez uniquement les noms des packages du fichier "updateinfo.xml" généré. Et utilisez ces informations pour "rechercher" sur vos serveurs des Rpms nécessitant une sécurité ou d'autres mises à jour, à l'aide de marionnettes ou cfengine, ou ssh-in-a-for-loop. C'est plus simple, vous donne tout ce que vous voulez, mais vous ne pouvez pas l'utiliser yum security.
    2. L'autre option consiste à utiliser la modifyrepocommande comme indiqué ici , pour injecter updateinfo.xmldans repomd.xml. Avant de faire cela, vous devrez modifier le script perl pour changer les sommes Rpm MD5 à l'intérieur du xml, des sommes RHN aux sommes Centos. Et vous devrez vous assurer que les dépôts CentOS ont réellement tous les Rpms mentionnés updateinfo.xml, car ils sont parfois derrière RHN. Mais c'est bien, vous pouvez ignorer les mises à jour que CentOS n'a pas rattrapées, car il y a peu de choses à faire à ce sujet, à moins de les construire à partir de SRPM.

Avec l'option 2, vous pouvez installer le yum securityplugin sur tous les clients, et cela fonctionnera.

Edit: Cela fonctionne également pour les machines Redhat RHEL 5 et 6. Et est plus simple que d'utiliser une solution lourde comme Spacewalk ou Pulp.

Pas maintenant
la source
6

Scientific Linux peut désormais répertorier les mises à jour de sécurité à partir de la ligne de commande. De plus, je peux mettre à jour un système pour n'appliquer que les mises à jour de sécurité, ce qui est mieux que la valeur par défaut ("Il suffit de tout mettre à jour! Y compris les corrections de bugs qui ne vous intéressent pas et qui introduisent des régressions."

J'ai testé cela sur Scientific Linux 6.1 et 6.4. Je ne sais pas quand cela a été officiellement annoncé, mais je posterai plus quand je le découvrirai.

Voici quelques exemples.

Liste un résumé des mises à jour de sécurité:

[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

Liste par 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

Et puis je peux appliquer l'ensemble minimal de changements requis pour

[root@node1 ~]# yum update-minimal --security

Ou tout simplement patcher:

[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 ~]#

Si j'essaye cette même commande sur une boîte CentOS6, je n'obtiens aucun résultat. Je sais pertinemment que certains des «137 packages disponibles» contiennent des correctifs de sécurité, parce que j'ai reçu les avis d'errata hier via les listes de diffusion 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 ~]#
Stefan Lasiewski
la source
5

J'ai eu le même problème. J'ai essayé de créer du code Python pour rassembler les mises à jour Yum et les conseils du site Errata steve-meier mentionné ci-dessus (je le filtre en fonction des packages installés).

Au cas où cela aiderait, voici la source: https://github.com/wied03/centos-package-cron

Brady Wied
la source
2

Puisque vous avez CFEngine, vous pouvez appliquer des modifications à des groupes de systèmes à la fois en fonction des mises à jour de sécurité publiées sur: http://twitter.com/#!/CentOS_Announce

Je ne suis pas le plus grand ingénieur en sécurité de serveurs ... mais j'ai tendance à ne me soucier que de quelques paquets en matière de sécurité. Tout ce qui est public (ssl, ssh, apache) ou qui a un exploit majeur est prioritaire. Tout le reste est évalué chaque trimestre. Je ne veux pas que ces choses soient mises à jour automatiquement car les packages mis à jour peuvent potentiellement casser d'autres éléments sur un système de production.

ewwhite
la source
Le fil Twitter mentionné ci-dessus est un mauvais conseil de l'OMI en 2017+. Il n'a reçu aucune mise à jour depuis le 10 octobre 2012.
slm
2

Scientific Linux (au moins 6.2 et 6.3; il ne me reste aucun système 6.1) prend en charge non seulement yum-plugin-securityle fichier de configuration pour yum-autoupdate, mais /etc/sysconfig/yum-autoupdatevous permet d'activer uniquement l'installation des mises à jour de sécurité.

# 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"
Joshua Hoblitt
la source
2

Sur CentOS, vous pouvez utiliser

yum list updates

au lieu de yum-plugin-security, ou peut-être voulez-vous essayer cette analyse de script basée sur les flux d'actualités de sécurité CentOS: LVPS .

Lars Windolf
la source
yum list updatesrépertorie toutes les mises à jour, lorsque je souhaite répertorier uniquement les mises à jour de sécurité .
Stefan Lasiewski
mises à jour de la liste yum
Sirex
2
yum list updates --securityne fonctionne pas (peut-être a besoin d'un plugin)
Taha Jahangir
1

Vous pouvez également essayer le projet generate_updateinfo . Il s'agit d'un script python qui traite le errata.latest.xmlfichier compilé par le projet CEFS et génère un updateinfo.xmlfichier avec des métadonnées de mises à jour de sécurité. Vous pouvez ensuite l'injecter dans votre référentiel de mise à jour CentOS 6 (7) local. Il est assez simple de l'intégrer aux référentiels personnalisés / locaux créés par la createrepocommande:

  • référentiel miroir avec reposynccommande
  • créer un référentiel local avec la createrepocommande
  • télécharger et générer un updateinfo.xmlfichier avec un generate_updateinfo.pyscript
  • injectez les métadonnées des mises à jour de sécurité générées dans votre référentiel local avec la modifyrepocommande
dsmsk80
la source
-1

Sur CentOS6, vous pouvez utiliser le plugin yum-security:

yum install yum-security

Vérifier avec:

yum --security check-update

Cette commande renvoie le code 0 si aucune mise à jour de sécurité n'est disponible.

En combinaison avec yum-cron, vous pouvez obtenir un e-mail uniquement sur les mises à jour de sécurité disponibles en modifiant le fichier / etc / sysconfig / yum-cron:

YUM_PARAMETER="--security"
Bertl
la source
1
Le plugin de sécurité Yum ne fonctionne pas pour moi sur CentOS6. Cependant, cela fonctionne sur RHEL et Scientific Linux.
Stefan Lasiewski
Qu'est-ce que cela signifie "cela ne fonctionne pas". Il fait partie de CentOS6-Base et est installé sur de nombreuses installations ici. yum-plugin-security.noarch 1.1.30-17.el6_5 @updates
Bertl
1
Ce que je veux dire, c'est que lorsque je lance yum --security check-update, la commande revient avec No packages needed for security; 137 packages available. Je sais pertinemment que certaines des mises à jour disponibles contiennent des correctifs de sécurité. Les mises à jour sont disponibles dans le référentiel «de base» de CentOS, mais elles ne sont pas marquées comme correctifs de sécurité. CentOS ne fournit pas actuellement de référentiel yum pour les correctifs de sécurité, contrairement à Red Hat, Scientific Linux et EPEL.
Stefan Lasiewski
1
Si cela fonctionne pour vous, pouvez-vous montrer comment cela fonctionne?
Stefan Lasiewski