Czy automatycznie sprawdzać dostępność aktualizacji bezpieczeństwa w CentOS lub Scientific Linux?


20

Posiadamy maszyny z systemem operacyjnym opartym na RedHat, takim jak CentOS lub Scientific Linux. Chcemy, aby systemy automatycznie powiadamiały nas o wszelkich znanych lukach w zainstalowanych pakietach. FreeBSD robi to z portem port-mgmt / portaudit .

RedHat zapewnia yum-plugin-security , które mogą sprawdzać podatności na podstawie ich Bugzilla ID, CVE ID lub doradczego. Ponadto Fedora niedawno zaczęła obsługiwać zabezpieczenia yum-plugin . Myślę, że zostało to dodane w Fedorze 16.

Scientific Linux 6 nie obsługiwał zabezpieczeń wtyczek yum pod koniec 2011 roku . Jest dostarczany z /etc/cron.daily/yum-autoupdate, który codziennie aktualizuje RPM. Nie sądzę jednak, że dotyczy to tylko aktualizacji zabezpieczeń.

CentOS nie obsługujeyum-plugin-security .

Monitoruję listy mailingowe CentOS i Scientific Linux pod kątem aktualizacji, ale jest to żmudne i chcę czegoś, co można zautomatyzować.

Dla tych z nas, którzy obsługują systemy CentOS i SL, są jakieś narzędzia, które mogą:

  1. Automatycznie (Progamatycznie, przez crona) informuj nas, jeśli znane są luki w zabezpieczeniach moich obecnych RPM.
  2. Opcjonalnie automatycznie zainstalować minimalną aktualizację wymaganą do usunięcia luki w zabezpieczeniach, która prawdopodobnie byłaby yum update-minimal --securityw linii poleceń?

Rozważyłem użycie yum-plugin-changelogdo wydrukowania dziennika zmian dla każdego pakietu, a następnie parsowanie danych wyjściowych dla niektórych ciągów. Czy są już jakieś narzędzia, które to robią?


Czy masz system zarządzania konfiguracją? Marionetka? CFEngine?
ewwhite

Tak, mam Cfengine. Myślę o Puppet.
Stefan Lasiewski

2
yum-updatesd robił kiedyś coś podobnego (powiadamiał o nowych aktualizacjach i wspominał, jeśli jakieś były aktualizacjami bezpieczeństwa) - ale nie wierzę, że jest to repozytorium CentOS 6 (lub EPEL). Możesz być jednak w stanie dość łatwo dostosować skrypty na CentOS Wiki .
cyberx86

Odpowiedzi:


8

Jeśli absolutnie chcesz użyć yum security plugin, istnieje sposób, aby to zrobić, choć trochę skomplikowane. Ale po skonfigurowaniu wszystko jest zautomatyzowane.

Jedynym wymaganiem jest to, że musisz mieć co najmniej jedną subskrypcję RHN. Co jest dobrą inwestycją IMO, ale trzymajmy się rzeczy.

  1. Po otrzymaniu subskrypcji możesz użyć mrepo lub reposync , aby skonfigurować własne repozytorium Yum, które odzwierciedla repozytorium CentOS. (lub możesz po prostu użyć rsync).
  2. Następnie użyj skryptu dołączonego do tego posta na liście mailowej , aby okresowo łączyć się z subskrypcją RHN, aby pobrać informacje o pakietach bezpieczeństwa. Teraz masz dwie opcje.
    1. Wyodrębnij tylko nazwy pakietów z wygenerowanego pliku „updateinfo.xml”. I wykorzystaj te informacje, aby „przeszukać” swoje serwery w poszukiwaniu Rpms wymagających zabezpieczeń lub innych aktualizacji, używając marionetki, cfengine lub ssh-in-a-for-loop. To jest prostsze, daje ci wszystko, czego chcesz, ale nie możesz z niego korzystać yum security.
    2. Inną opcją jest użycie modifyrepopolecenia, jak pokazano tutaj , wstrzyknąć updateinfo.xmldo repomd.xml. Zanim to zrobisz, będziesz musiał zmodyfikować skrypt Perla, aby zmienić sumy Rpm MD5 wewnątrz xml, z RHN na sumy Centos. I musisz się upewnić, czy repozytoria CentOS rzeczywiście zawierają wszystkie Rpms updateinfo.xml, ponieważ czasami są za RHN. Ale to dobrze, możesz zignorować aktualizacje, których CentOS nie nadrobił, ponieważ niewiele można z tym zrobić, poza budowaniem ich z SRPM.

Dzięki opcji 2 możesz zainstalować yum securitywtyczkę na wszystkich klientach i będzie działać.

Edycja: Działa to również w przypadku maszyn Redhat RHEL 5 i 6. I jest prostszy niż stosowanie ciężkiego rozwiązania, takiego jak Spacewalk lub Pulp.


6

Scientific Linux może teraz wyświetlać aktualizacje zabezpieczeń z wiersza poleceń. Ponadto mogę zaktualizować system tak, aby stosował tylko aktualizacje zabezpieczeń, co jest lepsze niż domyślne („Po prostu zaktualizuj wszystko! W tym poprawki błędów, na których ci nie zależy i które wprowadzają regresje”.

Przetestowałem to zarówno na Scientific Linux 6.1, jak i 6.4. Nie jestem pewien, kiedy to zostało oficjalnie ogłoszone, ale opublikuję więcej, gdy się dowiem.

Oto kilka przykładów.

Wyświetl podsumowanie aktualizacji zabezpieczeń:

[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

Lista według 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

A potem mogę zastosować minimalny zestaw wymaganych zmian

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

Lub po prostu załataj wszystko:

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

Jeśli spróbuję tego samego polecenia na polu CentOS6, nie otrzymam żadnych wyników. Wiem na pewno, że niektóre z „dostępnych 137 pakietów” zawierają poprawki bezpieczeństwa, ponieważ wczoraj otrzymałem powiadomienia o błędach za pośrednictwem list mailingowych 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 ~]#


2

Ponieważ masz CFEngine, możesz wprowadzać zmiany w grupach systemów jednocześnie na podstawie aktualizacji zabezpieczeń opublikowanych pod adresem : http://twitter.com/#!/CentOS_Announce

Nie jestem największym inżynierem ds. Bezpieczeństwa serwerów ... ale zdaję sobie sprawę, że dbam o kilka pakietów, jeśli chodzi o bezpieczeństwo. Priorytetem jest wszystko, co ma charakter publiczny (ssl, ssh, apache) lub ma duży exploit. Wszystko inne jest oceniane kwartalnie. Nie chcę, aby te rzeczy były aktualizowane automatycznie, ponieważ zaktualizowane pakiety mogą potencjalnie uszkodzić inne elementy w systemie produkcyjnym.


Wspomniany wyżej kanał Twittera to zła rada IMO w 2017 roku. Nie otrzymał żadnych aktualizacji od 10 października 2012 r.
slm

2

Scientific Linux (przynajmniej 6.2 i 6.3; nie mam żadnych układów z lewej) 6.1 nie obsługuje tylko yum-plugin-securityale plik konfiguracyjny dla yum-autoupdate, /etc/sysconfig/yum-autoupdate, pozwala wyłączyć tylko instalację aktualizacji zabezpieczeń.

# 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

Z CentOS możesz korzystać

yum list updates

zamiast yum-plugin-security, a może chcesz wypróbować skanowanie skryptu na podstawie kanałów informacyjnych bezpieczeństwa CentOS: LVPS .


yum list updateswyświetli wszystkie aktualizacje, gdy chcę wymienić tylko aktualizacje bezpieczeństwa .
Stefan Lasiewski

mniam aktualizacje lista --security
Sirex

2
yum list updates --securitynie działa (być może potrzebuje wtyczki)
Taha Jahangir

1

Możesz także wypróbować projekt generate_updateinfo . Jest to skrypt Pythona, który przetwarza errata.latest.xmlplik skompilowany przez projekt CEFS i generuje updateinfo.xmlplik z metadanymi aktualizacji zabezpieczeń. Następnie możesz wstrzyknąć go do lokalnego repozytorium aktualizacji CentOS 6 (7). Całkiem łatwo zintegrować go z niestandardowymi / lokalnymi repozytoriami utworzonymi za pomocą createrepopolecenia:

  • repozytorium lustrzane z reposyncpoleceniem
  • utwórz lokalne repozytorium za pomocą createrepopolecenia
  • pobierz i wygeneruj updateinfo.xmlplik ze generate_updateinfo.pyskryptem
  • wstrzykuj wygenerowane metadane aktualizacji zabezpieczeń do lokalnego repozytorium za pomocą modifyrepopolecenia

-1

Na CentOS6 możesz użyć wtyczki yum-security:

yum install yum-security

Sprawdź z:

yum --security check-update

To polecenie zwraca kod 0, jeśli nie są dostępne aktualizacje zabezpieczeń.

W połączeniu z yum-cron możesz otrzymać wiadomość e-mail tylko na temat dostępnych aktualizacji zabezpieczeń, modyfikując plik / etc / sysconfig / yum-cron:

YUM_PARAMETER="--security"

1
Wtyczka bezpieczeństwa Yum nie działa dla mnie na CentOS6. Działa jednak na RHEL i Scientific Linux.
Stefan Lasiewski

Co to znaczy „to nie działa”. Jest częścią CentOS6-Base i jest instalowany w wielu instalacjach tutaj. yum-plugin-security.noarch 1.1.30-17.el6_5 @updates
Bertl

1
Mam na myśli to, że kiedy uruchamiam yum --security check-update, polecenie powraca za pomocą No packages needed for security; 137 packages available. Wiem na pewno, że niektóre z dostępnych aktualizacji zawierają poprawki bezpieczeństwa. Aktualizacje są dostępne w „podstawowym” repozytorium CentOS, ale nie są oznaczone jako poprawki bezpieczeństwa. CentOS nie zapewnia obecnie repozytorium yum dla poprawek bezpieczeństwa, w przeciwieństwie do Red Hat, Scientific Linux i EPEL.
Stefan Lasiewski

1
Jeśli to działa, czy możesz pokazać, jak to działa?
Stefan Lasiewski

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.