Автоматически проверять наличие обновлений безопасности в CentOS или Scientific Linux?
У нас есть машины с дистрибутивами на базе 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
, который обновляет обороты ежедневно. Я не думаю, что это обрабатывает только обновления безопасности, однако.
CentOS не поддерживаетyum-plugin-security
,
Я отслеживаю обновления списков рассылки CentOS и Scientific Linux, но это утомительно, и я хочу что-то, что можно автоматизировать.
Для тех из нас, кто поддерживает системы CentOS и SL, есть ли инструменты, которые могут:
- Автоматически (программно, через cron) сообщать нам, если есть известные уязвимости в моих текущих RPM.
- При желании можно автоматически установить минимальное обновление, необходимое для устранения уязвимости в системе безопасности, которая, вероятно,
yum update-minimal --security
в командной строке?
Я рассмотрел использование yum-plugin-changelog
распечатать журнал изменений для каждого пакета, а затем проанализировать выходные данные для определенных строк. Есть ли инструменты, которые делают это уже?
8 ответов
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 ~]#
Если вы абсолютно хотите использовать yum security plugin
Есть способ сделать это, хотя немного сложнее. Но как только вы это настроите, все будет автоматизировано.
Единственное требование - вам необходимо иметь хотя бы одну подписку на RHN. Что является хорошим инвестиционным ИМО, но давайте придерживаться сути.
- Получив подписку, вы можете использовать mrepo или reposync для настройки внутреннего репозитория Yum, отражающего репозитории CentOS. (или вы можете просто использовать rsync).
- Затем используйте скрипт, прикрепленный к этому сообщению в списке рассылки, чтобы периодически подключаться к вашей подписке RHN, чтобы загружать информацию о пакетах безопасности. Теперь у вас есть два варианта.
- Извлеките только имена пакетов из сгенерированного файла "updateinfo.xml". И используйте эту информацию для "поиска" на ваших серверах Rpms, нуждающихся в безопасности или других обновлениях, используя puppet или cfengine или ssh-in-a-for-loop. Это проще, дает вам все, что вы хотите, но вы не можете использовать
yum security
, - Другой вариант заключается в использовании
modifyrepo
команда, как показано здесь, чтобы ввестиupdateinfo.xml
вrepomd.xml
, Перед этим вам нужно будет изменить скрипт perl, чтобы изменить суммы Rpm MD5 внутри xml, от значений RHN до Centos. И вы должны будете убедиться, что репозитории CentOS действительно имеют все Rpms, упомянутые вupdateinfo.xml
, поскольку они иногда отстают от RHN. Но это нормально, вы можете игнорировать обновления, с которыми CentOS не догнал, так как мало что можно с этим поделать, за исключением построения их из SRPM.
- Извлеките только имена пакетов из сгенерированного файла "updateinfo.xml". И используйте эту информацию для "поиска" на ваших серверах Rpms, нуждающихся в безопасности или других обновлениях, используя puppet или cfengine или ssh-in-a-for-loop. Это проще, дает вам все, что вы хотите, но вы не можете использовать
С вариантом 2, вы можете установить yum security
Плагин на всех клиентах, и он будет работать.
Изменить: Это также работает для Redhat RHEL 5 и 6 машин. И это проще, чем использование тяжелого решения, такого как Spacewalk или Pulp.
У меня такая же проблема. Я попытался создать некоторый код на Python, чтобы собрать обновления Yum и рекомендации с упомянутого выше сайта Steve-Meier Errata (я фильтрую его на основе установленных пакетов).
В случае, если это помогает, вот источник: https://github.com/wied03/centos-package-cron
На CentOS вы можете использовать
yum list updates
вместо yum-plugin-security или, может быть, вы хотите попробовать это сканирование сценариев на основе новостных лент безопасности CentOS: LVPS.
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"
Поскольку у вас есть CFEngine, вы можете применять изменения к группам систем одновременно на основе обновлений безопасности, размещенных по адресу: http://twitter.com/
Я не самый большой инженер по серверной безопасности... но я склонен считать, что мне небезразлично лишь несколько пакетов, когда речь заходит о безопасности. Все, что является общедоступным (ssl, ssh, apache) или имеет существенный эксплойт, получает приоритет. Все остальное оценивается ежеквартально. Я не хочу, чтобы эти вещи обновлялись автоматически, потому что обновленные пакеты могут потенциально сломать другие элементы в производственной системе.
Вы также можете попробовать создать generate_updateinfo проект. Это скрипт Python, который обрабатывает errata.latest.xml
файл, скомпилированный проектом CEFS и генерирующий updateinfo.xml
файл с метаданными обновлений безопасности. Затем вы можете добавить его в свой локальный репозиторий обновлений CentOS 6 (7). Довольно просто интегрировать его с пользовательскими / локальными репозиториями, созданными createrepo
команда:
- зеркальный репозиторий с
reposync
команда - создать локальный репозиторий с
createrepo
команда - скачать и сгенерировать
updateinfo.xml
файл сgenerate_updateinfo.py
скрипт - внедрить сгенерированные метаданные обновлений безопасности в локальный репозиторий с помощью
modifyrepo
команда
Для Centos 6, Centos 7 и Centos 8 самый простой способ - использовать Updateinfo Стива Мейера : репозиторий yum с информацией об ошибках CentOS.
Это готовое репо yum, которое обслуживает и обновляет автор проекта CEFS.
Это платная услуга, но на данный момент она стоит всего 3 доллара в месяц за неограниченное количество серверов (но рекомендуется использовать зеркало для большого парка).
Обратите внимание, что это то же самое, что вы можете сделать самостоятельно в соответствии с ответом dsmsk80. Но разве вы не предпочитаете поддерживать энтузиаста, который сделал это решение возможным?:)
На CentOS6 вы можете использовать плагин yum-security:
yum install yum-security
Проверить с:
yum --security check-update
Эта команда возвращает код 0, если нет доступных обновлений безопасности.
В сочетании с yum-cron вы можете получать электронную почту только при наличии доступных обновлений безопасности, изменив файл / etc / sysconfig / yum-cron:
YUM_PARAMETER="--security"