Automatisch nach Sicherheitsupdates für CentOS oder Scientific Linux suchen?

20

Auf unseren Computern laufen RedHat-basierte Distributionen wie CentOS oder Scientific Linux. Wir möchten, dass die Systeme uns automatisch benachrichtigen, wenn bekannte Sicherheitslücken für die installierten Pakete bestehen. FreeBSD tut dies mit dem Port ports-mgmt / portaudit .

RedHat bietet Yum-Plugin-Sicherheit , die anhand ihrer Bugzilla-ID, CVE- ID oder Advisory-ID nach Schwachstellen suchen kann . Außerdem hat Fedora kürzlich damit begonnen, die YUM-Plugin-Sicherheit zu unterstützen . Ich glaube, das wurde in Fedora 16 hinzugefügt.

Scientific Linux 6 hat yum-plugin-security seit Ende 2011 nicht mehr unterstützt . Es wird mit ausgeliefert /etc/cron.daily/yum-autoupdate, wodurch die RPMs täglich aktualisiert werden. Ich denke jedoch nicht, dass dies nur Sicherheitsupdates behandelt.

CentOS unterstützt nichtyum-plugin-security .

Ich überwache die Mailinglisten von CentOS und Scientific Linux auf Aktualisierungen, aber das ist mühsam und ich möchte etwas, das automatisiert werden kann.

Für diejenigen von uns, die CentOS- und SL-Systeme warten, gibt es Tools, die Folgendes können:

  1. Automatisch (programmatisch, über cron) informieren Sie uns, wenn es bekannte Schwachstellen mit meinen aktuellen RPMs gibt.
  2. Installieren Sie optional automatisch das erforderliche Mindestupgrade, um eine Sicherheitsanfälligkeit zu beheben, die wahrscheinlich in yum update-minimal --securityder Befehlszeile angezeigt wird.

Ich habe darüber nachgedacht yum-plugin-changelog, das Changelog für jedes Paket auszudrucken und dann die Ausgabe für bestimmte Zeichenfolgen zu analysieren. Gibt es bereits Tools, die dies tun?

Stefan Lasiewski
quelle
Haben Sie ein Konfigurationsmanagementsystem eingerichtet? Marionette? CFEngine?
Ewwhite
Ja, ich habe Cfengine. Ich denke an Puppet.
Stefan Lasiewski
2
yum-updatesd hat früher etwas Ähnliches gemacht (über neue Updates benachrichtigen und gegebenenfalls Sicherheitsupdates erwähnen) - aber ich glaube nicht, dass es sich um CentOS 6 (oder EPEL) -Repos handelt. Möglicherweise können Sie die Skripte im CentOS-Wiki jedoch recht einfach anpassen .
cyberx86

Antworten:

8

Wenn Sie unbedingt verwenden möchten yum security plugin, gibt es eine Möglichkeit, dies zu tun, obwohl ein wenig aufwendig. Aber sobald Sie es eingerichtet haben, ist alles automatisiert.

Die einzige Voraussetzung ist, dass Sie mindestens ein Abonnement für RHN haben. Das ist eine gute Investition IMO, aber lassen Sie uns auf den Punkt bleiben.

  1. Sobald Sie das Abonnement haben, können Sie mrepo oder reposync verwenden , um ein internes Yum-Repo einzurichten , das CentOS-Repos widerspiegelt. (oder Sie könnten einfach rsync verwenden).
  2. Verwenden Sie dann das Skript, das diesem Posting der Mailingliste beigefügt ist , um regelmäßig eine Verbindung zu Ihrem RHN-Abonnement herzustellen und Informationen zu Sicherheitspaketen herunterzuladen. Jetzt haben Sie zwei Möglichkeiten.
    1. Extrahieren Sie nur die Paketnamen aus der generierten Datei "updateinfo.xml". Und verwenden Sie diese Informationen, um Ihre Server nach RPMs zu durchsuchen, für die Sicherheit oder andere Updates erforderlich sind. Verwenden Sie dazu Puppet oder Cfengine oder SSH-in-a-A-For-Loop. Dies ist einfacher, gibt Ihnen alles , was Sie wollen, aber Sie können nicht verwenden yum security.
    2. Die andere Möglichkeit besteht darin, den hiermodifyrepo gezeigten Befehl zum Injizieren zu verwenden . Bevor Sie dies tun, müssen Sie das Perl-Skript ändern, um die Rpm-MD5-Summen in der XML von RHN zu Centos-Summen zu ändern. Und Sie müssen sicherstellen, dass CentOS-Repos tatsächlich alle in erwähnten RPMs haben , da sie manchmal hinter RHN stehen. Aber das ist in Ordnung, Sie können die Aktualisierungen ignorieren, mit denen CentOS nicht Schritt gehalten hat, da Sie wenig dagegen tun können, außer sie aus SRPMs zu erstellen.updateinfo.xmlrepomd.xmlupdateinfo.xml

Mit Option 2 können Sie das yum securityPlugin auf allen Clients installieren , und es wird funktionieren.

Bearbeiten: Dies funktioniert auch für Redhat RHEL 5- und 6-Computer. Und ist einfacher als die Verwendung einer schwergewichtigen Lösung wie Spacewalk oder Pulp.

Nicht jetzt
quelle
6

Scientific Linux kann jetzt Sicherheitsupdates über die Befehlszeile auflisten. Außerdem kann ich ein System so aktualisieren, dass nur Sicherheitsupdates angewendet werden. Dies ist besser als die Standardeinstellung ("Aktualisiere einfach alles! Einschließlich Bugfixes, die dir egal sind und die Regressionen einführen").

Ich habe dies sowohl auf Scientific Linux 6.1 als auch auf einem 6.4 getestet. Ich bin mir nicht sicher, wann dies offiziell angekündigt wurde, aber ich werde mehr posten, wenn ich es herausfinde.

Hier sind einige Beispiele.

Eine Zusammenfassung der Sicherheitsupdates auflisten:

[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 nach 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

Und dann kann ich die minimalen Änderungen anwenden, die für erforderlich sind

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

Oder patche einfach alles:

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

Wenn ich denselben Befehl auf einer CentOS6-Box versuche, erhalte ich keine Ergebnisse. Ich weiß, dass einige der '137 verfügbaren Pakete' Sicherheitsupdates enthalten, da ich gestern die Errata-Benachrichtigungen über die CentOS-Mailinglisten erhalten habe.

[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
quelle
5

Ich hatte das gleiche problem Ich habe versucht, Python-Code zu erstellen, um Yum-Updates und Hinweise von der oben genannten Steve-Meier-Errata-Site zusammenzuführen (ich filtere sie basierend auf installierten Paketen).

Falls es hilft, hier ist die Quelle: https://github.com/wied03/centos-package-cron

Brady Wied
quelle
2

Da Sie über CFEngine verfügen, können Sie Änderungen basierend auf den Sicherheitsupdates, die unter http://twitter.com/#!/CentOS_Announce veröffentlicht wurden , zu einem bestimmten Zeitpunkt auf Systemgruppen anwenden

Ich bin nicht der größte Server-Sicherheitstechniker, aber ich stelle tendenziell fest, dass ich mich nur um ein paar Pakete kümmere, wenn es um Sicherheit geht. Alles, was öffentlich zugänglich ist (ssl, ssh, apache) oder einen größeren Exploit hat, hat Priorität. Alles andere wird vierteljährlich bewertet. Ich möchte nicht, dass diese Dinge automatisch aktualisiert werden, da aktualisierte Pakete möglicherweise andere Elemente auf einem Produktionssystem beschädigen können.

ewwhite
quelle
Der oben erwähnte Twitter-Feed ist ein schlechter Rat, IMO in 2017+. Sie hat seit dem 10. Oktober 2012 keine Updates mehr erhalten.
slm
2

Scientific Linux (mindestens 6.2 und 6.3; ich habe keine 6.1 - Systeme links) nicht nur unterstützt , yum-plugin-securitysondern die Konfigurationsdatei für für yum-autoupdate, /etc/sysconfig/yum-autoupdateermöglicht es Ihnen , nur die Installation von Sicherheits - Updates zu aktivieren.

# 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
quelle
2

Auf CentOS können Sie verwenden

yum list updates

Anstelle von yum-plugin-security, oder vielleicht möchten Sie dieses Skript-Scannen ausprobieren, das auf CentOS-Sicherheits-Newsfeeds basiert: LVPS .

Lars Windolf
quelle
yum list updateslistet alle Updates auf, wenn ich nur Sicherheitsupdates auflisten möchte .
Stefan Lasiewski
Yum Liste Updates
Sirex
2
yum list updates --securityfunktioniert nicht (braucht vielleicht ein Plugin)
Taha Jahangir
1

Sie können auch generate_updateinfo project ausprobieren . Es ist ein Python-Skript, das errata.latest.xmlvom CEFS- Projekt kompilierte Dateien verarbeitet und updateinfo.xmlDateien mit Metadaten für Sicherheitsupdates generiert . Sie können es dann in Ihr lokales CentOS 6 (7) -Update-Repository einfügen. Es ist ziemlich einfach, es in benutzerdefinierte / lokale Repositorys zu integrieren, die mit folgendem createrepoBefehl erstellt wurden :

  • Spiegeln Sie das Repository mit dem reposyncBefehl
  • Erstellen Sie ein lokales Repository mit dem createrepoBefehl
  • updateinfo.xmlDatei mit generate_updateinfo.pyScript herunterladen und generieren
  • Fügen Sie generierte Metadaten für Sicherheitsupdates mit dem modifyrepoBefehl in Ihr lokales Repository ein
dsmsk80
quelle
-1

Unter CentOS6 können Sie das Plugin yum-security verwenden:

yum install yum-security

Erkundigen Sie sich bei:

yum --security check-update

Dieser Befehl gibt Code 0 zurück, wenn keine Sicherheitsupdates verfügbar sind.

In Kombination mit yum-cron können Sie eine E-Mail nur über verfügbare Sicherheitsupdates erhalten, indem Sie die Datei / etc / sysconfig / yum-cron ändern:

YUM_PARAMETER="--security"
Bertl
quelle
1
Das Yum-Sicherheits-Plugin funktioniert unter CentOS6 nicht. Es funktioniert jedoch unter RHEL und Scientific Linux.
Stefan Lasiewski
Was bedeutet "es funktioniert nicht"? Es ist Teil von CentOS6-Base und wird auf vielen Installationen hier installiert. yum-plugin-security.noarch 1.1.30-17.el6_5 @updates
Bertl
1
Ich meine, dass yum --security check-updateder Befehl beim Ausführen mit zurückkehrt No packages needed for security; 137 packages available. Ich weiß, dass einige der verfügbaren Updates Sicherheitsupdates enthalten. Die Updates stehen im CentOS-Basis-Repository zur Verfügung, sind jedoch nicht als Sicherheitsupdates gekennzeichnet. Im Gegensatz zu Red Hat, Scientific Linux und EPEL bietet CentOS derzeit kein umfangreiches Repository für die Sicherheitspatches.
Stefan Lasiewski
1
Wenn es für Sie funktioniert, können Sie zeigen, wie es funktioniert?
Stefan Lasiewski
1
Siehe diesen Thread zu diesem Problem: lists.centos.org/pipermail/centos-devel/2012-August/008675.html
Bertl