Controlla automaticamente gli aggiornamenti di sicurezza su CentOS o Scientific Linux?


20

Abbiamo macchine che eseguono distribuzioni basate su RedHat come CentOS o Scientific Linux. Vogliamo che i sistemi ci avvisino automaticamente se ci sono vulnerabilità note ai pacchetti installati. FreeBSD lo fa con la porta doors-mgmt / portaudit .

RedHat fornisce yum-plugin-security , che può verificare la presenza di vulnerabilità tramite il loro ID Bugzilla, ID CVE o ID di avviso. Inoltre, Fedora ha recentemente iniziato a supportare yum-plugin-security . Credo che questo sia stato aggiunto in Fedora 16.

Scientific Linux 6 non supportava yum-plugin-security alla fine del 2011 . Viene fornito con /etc/cron.daily/yum-autoupdate, che aggiorna RPM ogni giorno. Tuttavia, non credo che gestisca solo gli aggiornamenti di sicurezza.

CentOS non supportayum-plugin-security .

Controllo le mailing list di CentOS e Scientific Linux alla ricerca di aggiornamenti, ma questo è noioso e desidero qualcosa che possa essere automatizzato.

Per quelli di noi che mantengono i sistemi CentOS e SL, ci sono strumenti che possono:

  1. Automaticamente (in modo programmatico, tramite cron) ci informa se ci sono vulnerabilità note con i miei RPM attuali.
  2. Facoltativamente, installare automaticamente l'aggiornamento minimo richiesto per risolvere una vulnerabilità della sicurezza, che probabilmente si troverebbe yum update-minimal --securitysulla riga di comando?

Ho preso in considerazione l'utilizzo yum-plugin-changelogdi stampare il log delle modifiche per ciascun pacchetto e quindi analizzare l'output per determinate stringhe. Ci sono strumenti che lo fanno già?


Hai qualche sistema di gestione della configurazione in atto? Fantoccio? CFengine?
ewwhite,

Sì, ho Cfengine. Sto pensando a Puppet.
Stefan Lasiewski,

2
yum-updatesd era solito fare qualcosa di simile (notifica di nuovi aggiornamenti e menzione di eventuali aggiornamenti di sicurezza) - ma non credo che sia nei repository CentOS 6 (o EPEL). Tuttavia, potresti essere in grado di adattare abbastanza facilmente gli script sul Wiki di CentOS .
cyberx86,

Risposte:


8

Se vuoi assolutamente usarlo yum security plugin, c'è un modo per farlo, anche se un po 'elaborato. Ma una volta installato, è tutto automatizzato.

L'unico requisito è che dovrai avere almeno un abbonamento a RHN. Che è un buon investimento IMO, ma restiamo al punto.

  1. Una volta ottenuto l'abbonamento, è possibile utilizzare mrepo o reposync per impostare un repository Yum interno, che rispecchia i repository CentOS. (o potresti semplicemente usare rsync).
  2. Quindi utilizzare lo script allegato a questo post della mailing list , per connettersi periodicamente al proprio abbonamento RHN, per scaricare le informazioni sui pacchetti di sicurezza. Ora hai due opzioni.
    1. Estrarre solo i nomi dei pacchetti dal file "updateinfo.xml" generato. E usa queste informazioni per "cercare" nei tuoi server Rpms che necessitano di sicurezza o altri aggiornamenti, usando puppet o cfengine o ssh-in-a-for-loop. Questo è più semplice, ti dà tutto quello che vuoi, ma non puoi usarlo yum security.
    2. L'altra opzione è quella di utilizzare il modifyrepocomando come mostrato qui , per iniettare updateinfo.xmlin repomd.xml. Prima di fare ciò, dovrai modificare lo script perl per cambiare le somme Rpm MD5 all'interno dell'xml, dalle somme RHN a Centos. E dovrai assicurarti che i repository CentOS abbiano effettivamente tutti gli Rpms menzionati in updateinfo.xml, poiché a volte sono dietro RHN. Ma va bene, puoi ignorare gli aggiornamenti che CentOS non ha raggiunto, poiché c'è poco che puoi fare al riguardo, a meno di costruirli dagli SRPM.

Con l'opzione 2, puoi installare il yum securityplug-in su tutti i client e funzionerà.

Modifica: funziona anche con macchine Redhat RHEL 5 e 6. Ed è più semplice rispetto all'utilizzo di una soluzione pesante come Spacewalk o Pulp.


6

Scientific Linux ora può elencare gli aggiornamenti di sicurezza dalla riga di comando. Inoltre posso aggiornare un sistema per applicare solo gli aggiornamenti di sicurezza, che è meglio del default ("Aggiorna tutto! Compresi correzioni di bug che non ti interessano e che introducono regressioni."

Ho provato questo su Scientific Linux 6.1 e 6.4. Non sono sicuro quando questo è stato annunciato ufficialmente, ma ne posterò di più quando lo scoprirò.

Ecco alcuni esempi.

Elencare un riepilogo degli aggiornamenti di sicurezza:

[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

Elenco per 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

E quindi posso applicare la serie minima di modifiche richieste

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

O semplicemente patch tutto:

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

Se provo lo stesso comando su una scatola CentOS6, non ottengo alcun risultato. So per certo che alcuni dei "137 pacchetti disponibili" contengono correzioni di sicurezza, perché ieri ho ricevuto gli avvisi errata tramite le mailing list di 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 ~]#

5

Ho avuto lo stesso problema. Mi sono preso una mano a creare del codice Python per mettere insieme Yum Updates e gli avvisi dal sito Errata di Meve sopra menzionato (lo filtro in base ai pacchetti installati).

Nel caso in cui aiuti, ecco la fonte: https://github.com/wied03/centos-package-cron


2

Dato che hai CFEngine, puoi applicare le modifiche ai gruppi di sistemi in base agli aggiornamenti di sicurezza pubblicati su: http://twitter.com/#!/CentOS_Announce

Non sono il più grande ingegnere della sicurezza dei server là fuori ... ma tendo a scoprire che mi preoccupo solo di alcuni pacchetti quando si tratta di sicurezza. Tutto ciò che è rivolto al pubblico (ssl, ssh, apache) o che ha un grande exploit ha la priorità. Tutto il resto viene valutato trimestralmente. Non voglio che queste cose vengano aggiornate automaticamente perché i pacchetti aggiornati possono potenzialmente rompere altri elementi su un sistema di produzione.


Il feed di Twitter di cui sopra è un cattivo consiglio IMO nel 2017+. Non ha ricevuto alcun aggiornamento dal 10 ottobre 2012.
slm

2

Scientific Linux (almeno 6.2 e 6.3, non ho alcun 6.1 sistemi di sinistra) non solo supporta yum-plugin-security, ma il file di configurazione per il per yum-autoupdate, /etc/sysconfig/yum-autoupdate, consente di abilitare solo l'installazione degli aggiornamenti di sicurezza.

# 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"

2

Su CentOS puoi usare

yum list updates

invece di yum-plugin-security, o forse vuoi provare questa scansione di script basata sui feed di notizie sulla sicurezza di CentOS: LVPS .


yum list updateselencherò tutti gli aggiornamenti, quando voglio elencare solo gli aggiornamenti di sicurezza .
Stefan Lasiewski,

aggiornamenti della lista yum --sicurezza
Sirex

2
yum list updates --securitynon funziona (forse ha bisogno di un plugin)
Taha Jahangir,

1

Puoi anche provare il progetto generate_updateinfo . Si tratta di uno script Python che elabora i errata.latest.xmlfile compilati dal progetto CEFS e genera updateinfo.xmlfile con metadati degli aggiornamenti di sicurezza. È quindi possibile iniettarlo nel repository di aggiornamento CentOS 6 (7) locale. È abbastanza semplice integrarlo con repository personalizzati / locali creati dal createrepocomando:

  • repository mirror con reposynccomando
  • creare un repository locale con createrepocomando
  • scarica e genera updateinfo.xmlfile con generate_updateinfo.pyscript
  • iniettare i metadati degli aggiornamenti di sicurezza generati nel repository locale con modifyrepocomando

-1

Su CentOS6, è possibile utilizzare il plug-in yum-security:

yum install yum-security

Controllare con:

yum --security check-update

Questo comando restituisce il codice 0 se non sono disponibili aggiornamenti di sicurezza.

In combinazione con yum-cron, è possibile ricevere un'e-mail solo sugli aggiornamenti di sicurezza disponibili modificando il file / etc / sysconfig / yum-cron:

YUM_PARAMETER="--security"

1
Il plug-in di sicurezza Yum non funziona per me su CentOS6. Funziona su RHEL e Scientific Linux, tuttavia.
Stefan Lasiewski,

Cosa significa "non funziona". Fa parte di CentOS6-Base ed è installato su molte installazioni qui. yum-plugin-security.noarch 1.1.30-17.el6_5 @updates
Bertl

1
Quello che voglio dire è che quando corro yum --security check-update, il comando ritorna con No packages needed for security; 137 packages available. So per certo che alcuni degli aggiornamenti disponibili contengono correzioni di sicurezza. Gli aggiornamenti sono disponibili nel repository 'base' di CentOS, ma non sono contrassegnati come correzioni di sicurezza. Attualmente CentOS non fornisce un repository yum per le patch di sicurezza, diversamente da Red Hat, Scientific Linux ed EPEL.
Stefan Lasiewski,

1
Se funziona per te, puoi mostrare come funziona?
Stefan Lasiewski,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.