web-dev-qa-db-ja.com

CentOSまたはScientific Linuxのセキュリティアップデートを自動的に確認しますか?

CentOSやScientific LinuxなどのRedHatベースのディストリビューションを実行しているマシンがあります。インストールされたパッケージに既知の脆弱性がある場合は、システムが自動的に通知するようにします。 FreeBSDは ports-mgmt/portaudit ポートでこれを行います。

RedHatは、Bugzilla ID、 [〜#〜] cve [〜#〜] IDまたはアドバイザリIDで脆弱性をチェックできる yum-plugin-security を提供します。さらに、Fedoraは最近 yum-plugin-security をサポートし始めました。これはFedora 16で追加されたと思います。

Scientific Linux 6はサポートしていません 2011年後半にyum-plugin-securityをサポート 。 RPMを毎日更新する/etc/cron.daily/yum-autoupdateが同梱されています。ただし、これはセキュリティ更新のみを処理するとは思わない。

CentOSは yum-plugin-securityをサポートしていません をサポートしています。

私はCentOSとScientific Linuxのメーリングリストの更新を監視していますが、これは面倒で、自動化できるものが必要です。

CentOSとSLシステムを保守している私たちにとって、次のことができるツールはありますか?

  1. 現在のRPMに既知の脆弱性があるかどうかを自動的に(プロログマティックに、cronを介して)お知らせください。
  2. オプションで、セキュリティの脆弱性に対処するために必要な最小限のアップグレードを自動的にインストールします。これはおそらくコマンドラインのyum update-minimal --securityでしょうか?

yum-plugin-changelogを使用して各パッケージの変更ログを出力し、特定の文字列の出力を解析することを検討しました。これをすでに行うツールはありますか?

20

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ボックスでこれと同じコマンドを実行しても、結果が得られません。 CentOSメーリングリストを介して昨日エラッタ通知を受け取ったため、「利用可能な137パッケージ」の一部にセキュリティ修正が含まれているという事実を知っています。

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

絶対にyum security pluginを使用したい場合は、少し複雑ですが、これを行う方法があります。しかし、一度設定すると、すべて自動化されます。

唯一の要件は、RHNに少なくとも1つのサブスクリプションが必要であることです。これは良い投資IMOですが、要点に固執します。

  1. サブスクリプションを取得したら、 mrepo または reposync を使用して、社内でYum repoを設定し、CentOSリポジトリをミラーリングします。 (または、rsyncを使用することもできます)。
  2. 次に、この メーリングリストの投稿 に添付されているスクリプトを使用して、定期的にRHNサブスクリプションに接続し、セキュリティパッケージ情報をダウンロードします。今、あなたには2つの選択肢があります。
    1. 生成された「updateinfo.xml」ファイルからパッケージ名のみを抽出します。そして、その情報を使用して、puppetやcfengine、またはssh-in-a-for-loopを使用して、セキュリティやその他の更新が必要なRpmをサーバーから「検索」します。これはより簡単で、必要なすべてが得られますが、yum securityは使用できません。
    2. 他のオプションは、示されているようにmodifyrepoコマンドを使用することです hereupdateinfo.xmlrepomd.xmlに挿入します。 前にこれを行うには、Perlスクリプトを変更して、xml内のRpm MD5合計をRHNからCentos合計に変更する必要があります。そして、CentOSリポジトリが実際にupdateinfo.xmlに記載されているすべてのRpmを持っているかどうかを確認する必要があります。これは、RHNの背後にある場合があるためです。しかし、それは問題ありません。CentOSが追いついていないアップデートは無視できます。SRPMからビルドする以外には、それについてできることはほとんどないためです。

オプション2を使用すると、yum securityプラグインをすべてのクライアントにインストールでき、機能します。

編集:これはRedhat RHEL 5および6マシンでも機能します。また、SpacewalkやPulpなどのヘビーウェイトソリューションを使用するよりも簡単です。

8
Not Now

同じ問題がありました。私はいくつかのPython一緒にプルするコードを作成するYumアップデートとアドバイザリーを上記のsteve-meier Errataサイトから取得しました(インストールされているものに基づいてフィルタリングします)パッケージ)。

それが役立つ場合は、ここにソースがあります: https://github.com/wied03/centos-package-cron

5
Brady Wied

CentOSで使用できます

yum list updates

yum-plugin-securityの代わりに、あるいは、CentOSセキュリティニュースフィードに基づいてこのスクリプトスキャンを試してみたい場合があります [〜#〜] lvps [〜#〜]

2
Lars Windolf

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
Joshua Hoblitt

CFEngineがあるため、次の場所に投稿されたセキュリティ更新に基づいて、システムのグループに変更を同時に適用できます。 http://Twitter.com/#!/CentOS_Announce

私は世の中で最大のサーバーセキュリティエンジニアではありません...しかし、セキュリティに関しては、いくつかのパッケージしか気にしないと思う傾向があります。一般に公開されているもの(ssl、ssh、Apache)や大きなエクスプロイトがあるものが優先されます。それ以外はすべて四半期ごとに評価されます。更新されたパッケージは本番システムの他のアイテムを破壊する可能性があるため、これらを自動的にアップグレードしたくありません。

2
ewwhite

generate_updateinfo プロジェクトを試すこともできます。これは、python処理するerrata.latest.xmlファイルを処理するスクリプトです [〜#〜] cefs [〜#〜] プロジェクトを作成し、セキュリティ更新メタデータを含むupdateinfo.xmlファイルを生成します。これをローカルのCentOS 6(7)更新リポジトリに注入できます。createrepoコマンド:

  • reposyncコマンドでリポジトリをミラーリングする
  • createrepoコマンドでローカルリポジトリを作成する
  • updateinfo.xmlスクリプトを使用してgenerate_updateinfo.pyファイルをダウンロードして生成する
  • modifyrepoコマンドを使用して、生成されたセキュリティ更新メタデータをローカルリポジトリに挿入する
1
dsmsk80