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

Nous avons des machines utilisant des distros RedHat tels que CentOS ou Scientific Linux. Nous voulons que les systèmes nous avertissent automatiquement s'il existe des vulnérabilités connues des paquetages installés. FreeBSD fait cela avec le port ports-port mg / débit .

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

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

CentOS ne prend pas en charge la yum-plugin-security .

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

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

  1. Automatiquement (Progamictically, via cron) nous informer s'il existe des vulnérabilités connues avec mes RPM actuels.
  2. En option, installez automatiquement la mise à niveau minimale requise pour résoudre une vulnérabilité de sécurité, ce qui serait sans doute la yum update-minimal --security sur la ligne de commande?

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

Si vous souhaitez absolument utiliser votre yum security plugin , il existe un moyen de le faire, même si un peu élaboré. Mais une fois que vous l'avez configuré, tout est automatisé.

La seule exigence est que vous devrez avoir au moins un abonnement à RHN. Ce qui est un bon investissement IMO, mais permet de respecter le but.

  1. Une fois que vous avez l'abonnement, vous pouvez utiliser mrepo , ou reposync , pour configurer un compte de maison Yum, qui reflète les repos de 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 les informations sur les paquets de sécurité. Maintenant, vous avez deux options.
    1. Extraire uniquement les noms de paquets à partir du fichier "updateinfo.xml" généré. Et utilisez ces informations pour "rechercher" vos serveurs pour Rpms ayant besoin de 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 utiliser la yum security .
    2. L'autre option consiste à utiliser la commande modifyrepo comme indiqué ici , pour injecter updateinfo.xml dans repomd.xml . Avant de faire cela, vous devrez modifier le script perl pour changer les montants Rpm MD5 dans le xml, des sommes RHN à Centos. Et vous devrez vous assurer si CentOS repos a réellement tous les Rpms mentionnés dans updateinfo.xml , car ils sont derrière RHN parfois. Mais c'est bien, vous pouvez ignorer les mises à jour que CentOS n'a pas rattrapées, car il y a peu de choses que vous pouvez faire à ce sujet, à moins de les construire à partir des SRPM.

Avec l'option 2, vous pouvez installer votre plugin de yum security sur tous les clients, et cela fonctionnera.

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

Scientific Linux peut désormais afficher des mises à jour de sécurité à partir de la ligne de commande. En outre, je peux mettre à jour un système pour ne pas appliquer de mises à jour de sécurité, ce qui est préférable à celui par défaut ("Juste mettre à jour tout! Y compris les corrections de boges dont vous vous inquiétez et qui introduisent des régressions".

J'ai testé ceci sur Scientific Linux 6.1 et un 6.4. Je ne suis pas sûr de savoir quand cela a été officiellement annoncé, mais je vais poster plus lorsque je 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 

Ensuite, je peux appliquer l'ensemble minimal des modifications requises pour

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

Ou, juste tout le patch:

 [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'essaie de cette même commande sur une boîte CentOS6, je n'obtiens aucun résultat. Je sais pour le fait que certains des «137 forfaits disponibles» contiennent des corrections de sécurité, car j'ai reçu les notifications d'erreur par l'intermédiaire des 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 ~]# 

J'ai eu le même problème. J'ai pris une coupure sur la création d'un code Python pour combiner Yum Updates et avis du site Errata de Steve-Meer mentionné ci-dessus (je le filtre en fonction des paquets installés).

Dans le cas où cela contribue, voici la source: https://github.com/wied03/centos-package-cron

Comme vous avez CFEngine, vous pouvez appliquer des modifications aux groupes de systèmes en fonction des mises à jour de sécurité affichées à l' adresse suivante : http://twitter.com/#!/CentOS_Announce

Je ne suis pas le plus grand ingénieur de sécurité de serveur là-bas … mais j'ai tendance à constater que je me soucie seulement de quelques paquets en matière de sécurité. Tout ce qui est tourné vers le public (ssl, ssh, apache) ou a un exploit majeur obtient la priorité. Tout le reste est évalué trimestriellement. Je ne veux pas que ces choses soient mises à jour automatiquement car les paquets mis à jour peuvent potentiellement briser d'autres éléments sur un système de production.

Scientific Linux (au moins 6,2 et 6,3; je n'ai plus de systèmes 6.1) ne supporte pas seulement la yum-plugin-security mais le fichier de configuration pour yum-autoupdate , /etc/sysconfig/yum-autoupdate , vous permet d'activer uniquement L'installation de 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" 

Sur CentOS, vous pouvez utiliser

 yum list updates 

Au lieu de yum-plugin-security, ou peut-être voulez-vous essayer cette analyse de script en fonction des flux de nouvelles de sécurité CentOS: LVPS .

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

  • Référentiel miroir avec commande reposync
  • Créer un référentiel local avec la commande createrepo
  • Téléchargez et updateinfo.xml fichier updateinfo.xml avec le script generate_updateinfo.py
  • Injecter des métadonnées de mises à jour de sécurité générées dans votre dépôt local avec la commande modifyrepo

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 courrier électronique uniquement sur les mises à jour de sécurité disponibles en modifiant le fichier / etc / sysconfig / yum-cron:

 YUM_PARAMETER="--security"