Автоматически проверять наличие обновлений безопасности в CentOS или Scientific Linux?

20

У нас есть машины с дистрибутивами на базе RedHat, такими как CentOS или Scientific Linux. Мы хотим, чтобы системы автоматически уведомляли нас о любых известных уязвимостях в установленных пакетах. FreeBSD делает это с портом ports-mgmt / portaudit .

RedHat обеспечивает yum-plugin-security , который может проверять уязвимости по их идентификатору Bugzilla, CVE или консультативному идентификатору. Кроме того, недавно Fedora начала поддерживать yum-plugin-security . Я считаю, что это было добавлено в Fedora 16.

Scientific Linux 6 не поддерживал безопасность yum-plugin-безопасности по состоянию на конец 2011 года . Он поставляется с /etc/cron.daily/yum-autoupdate, который обновляет RPM ежедневно. Я не думаю, что это обрабатывает только обновления безопасности, однако.

CentOS не поддерживаетyum-plugin-security .

Я отслеживаю обновления списков рассылки CentOS и Scientific Linux, но это утомительно, и я хочу что-то, что можно автоматизировать.

Для тех из нас, кто поддерживает системы CentOS и SL, есть ли инструменты, которые могут:

  1. Автоматически (программно, через cron) сообщать нам, если есть известные уязвимости в моих текущих RPM.
  2. При желании автоматически установить минимальное обновление, необходимое для устранения уязвимости безопасности, которая, вероятно, будет yum update-minimal --securityв командной строке?

Я рассмотрел использование yum-plugin-changelogдля распечатки журнала изменений для каждого пакета, а затем проанализировать вывод для определенных строк. Есть ли инструменты, которые делают это уже?

Стефан Ласевский
источник
Есть ли у вас система управления конфигурацией? Марионетка? Cfengine?
Ewwhite
Да, у меня есть Cfengine. Я думаю о Puppet.
Стефан Ласевский
2
yum-updatesd делал что-то подобное (уведомлял о новых обновлениях и упоминал, если они были обновлениями безопасности) - но я не верю, что это в репозиториях CentOS 6 (или EPEL). Вы можете довольно легко адаптировать скрипты в CentOS Wiki .
cyberx86

Ответы:

8

Если вы абсолютно хотите использовать yum security plugin, есть способ сделать это, хотя и немного сложнее. Но как только вы это настроите, все будет автоматизировано.

Единственное требование - вам необходимо иметь хотя бы одну подписку на RHN. Что является хорошим инвестиционным ИМО, но давайте придерживаться сути.

  1. Получив подписку, вы можете использовать mrepo или reposync для настройки внутреннего репозитория Yum, отражающего репозитории CentOS. (или вы можете просто использовать rsync).
  2. Затем используйте скрипт, прикрепленный к этому сообщению в списке рассылки , чтобы периодически подключаться к вашей подписке RHN, чтобы загружать информацию о пакетах безопасности. Теперь у вас есть два варианта.
    1. Извлеките только имена пакетов из сгенерированного файла "updateinfo.xml". И используйте эту информацию для «поиска» на ваших серверах Rpms, нуждающихся в безопасности или других обновлениях, используя puppet, или cfengine, или ssh-in-a-for-loop. Это проще, дает вам все, что вы хотите, но вы не можете использовать yum security.
    2. Другой вариант - использовать modifyrepoкоманду, как показано здесь , для внедрения updateinfo.xmlв repomd.xml. Перед этим вам нужно будет изменить скрипт perl, чтобы изменить суммы Rpm MD5 внутри xml, от значений RHN до Centos. И вам нужно будет убедиться, что в репозиториях CentOS действительно указаны все Rpms updateinfo.xml, поскольку они иногда отстают от RHN. Но это нормально, вы можете игнорировать обновления, с которыми CentOS не догнал, так как мало что можно с этим поделать, за исключением построения их из SRPM.

С опцией 2 вы можете установить yum securityплагин на всех клиентах, и он будет работать.

Изменить: Это также работает для Redhat RHEL 5 и 6 машин. И это проще, чем использование тяжелого решения, такого как Spacewalk или Pulp.

Не сейчас
источник
6

Scientific Linux теперь может перечислять обновления безопасности из командной строки. Кроме того, я могу обновить систему, чтобы применять только обновления безопасности, что лучше, чем по умолчанию («Просто обновите все! Включая исправления ошибок, которые вас не волнуют и которые представляют регрессии».

Я проверил это на Scientific Linux 6.1 и 6.4. Я не уверен, когда это было официально объявлено, но я опубликую больше, когда узнаю.

Вот несколько примеров.

Перечислите сводку обновлений безопасности:

[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

Список по 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

И тогда я могу применить минимальный набор изменений, необходимых для

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

Или просто исправьте все:

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

Если я попробую эту же команду на коробке CentOS6, я не получу никаких результатов. Я точно знаю, что некоторые из «137 доступных пакетов» содержат исправления безопасности, потому что вчера я получил уведомления об ошибках через списки рассылки 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

У меня такая же проблема. Я попытался создать некоторый код на Python, чтобы собрать обновления Yum и рекомендации с упомянутого выше сайта Steve-Meier Errata (я фильтрую его на основе установленных пакетов).

В случае, если это помогает, вот источник: https://github.com/wied03/centos-package-cron

Брейди Вид
источник
2

Поскольку у вас есть CFEngine, вы можете применять изменения к группам систем одновременно на основе обновлений безопасности, размещенных по адресу: http://twitter.com/#!/CentOS_Announce

Я не самый большой инженер по серверной безопасности ... но я склонен считать, что мне небезразлично лишь несколько пакетов, когда речь заходит о безопасности. Все, что является общедоступным (ssl, ssh, apache) или имеет существенный эксплойт, получает приоритет. Все остальное оценивается ежеквартально. Я не хочу, чтобы эти вещи обновлялись автоматически, потому что обновленные пакеты могут потенциально сломать другие элементы в производственной системе.

ewwhite
источник
Упомянутый выше твиттер - плохой совет ИМО в 2017 году. Он еще не получил обновление с 10 октября 2012 года
SLM
2

Scientific Linux (по крайней мере , 6,2 и 6,3, у меня нет каких - либо 6.1 системы слева) не только поддерживает , yum-plugin-securityно файл конфигурации для yum-autoupdate, /etc/sysconfig/yum-autoupdateпозволяет вам включить только установку обновлений безопасности.

# 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

На CentOS вы можете использовать

yum list updates

вместо yum-plugin-security или, может быть, вы хотите попробовать это сканирование сценариев на основе новостных лент безопасности CentOS: LVPS .

Ларс Виндольф
источник
yum list updatesбудет перечислять все обновления, когда я хочу перечислить только обновления безопасности .
Стефан Ласевский,
Обновления списка yum --security
Sirex
2
yum list updates --securityне работает (возможно, нужен плагин)
Таха Джахангир
1

Вы также можете попробовать создать generate_updateinfo проект. Это скрипт python, который обрабатывает errata.latest.xmlфайл, скомпилированный проектом CEFS, и генерирует updateinfo.xmlфайл с метаданными обновлений безопасности. Затем вы можете добавить его в свой локальный репозиторий обновлений CentOS 6 (7). Довольно просто интегрировать его с пользовательскими / локальными репозиториями, созданными createrepoкомандой:

  • зеркальный репозиторий с reposyncкомандой
  • создать локальный репозиторий с помощью createrepoкоманды
  • скачать и сгенерировать updateinfo.xmlфайл со generate_updateinfo.pyскриптом
  • введите сгенерированные метаданные обновлений безопасности в локальный репозиторий с помощью modifyrepoкоманды
dsmsk80
источник
-1

На CentOS6 вы можете использовать плагин yum-security:

yum install yum-security

Проверить с:

yum --security check-update

Эта команда возвращает код 0, если нет доступных обновлений безопасности.

В сочетании с yum-cron вы можете получать электронную почту только при наличии доступных обновлений безопасности, изменив файл / etc / sysconfig / yum-cron:

YUM_PARAMETER="--security"
BERTL
источник
1
Плагин безопасности Yum не работает для меня на CentOS6. Однако он работает на RHEL и Scientific Linux.
Стефан Ласевски,
Что это значит "это не работает". Он является частью CentOS6-Base и устанавливается здесь во многих случаях. yum-plugin-security.noarch 1.1.30-17.el6_5 @updates
Бертл,
1
Я имею в виду, что когда я запускаю yum --security check-update, команда возвращается с No packages needed for security; 137 packages available. Я точно знаю, что некоторые из доступных обновлений содержат исправления безопасности. Обновления доступны в базовом репозитории CentOS, но они не помечены как исправления безопасности. В настоящее время CentOS не предоставляет репозиторий yum для исправлений безопасности, в отличие от Red Hat, Scientific Linux и EPEL.
Стефан Ласевский
1
Если это работает для вас, вы можете показать, как это работает?
Стефан Ласевский
1
Посмотрите эту ветку
Бертл,