すべてのプロダクト
Search
ドキュメントセンター

CloudOps Orchestration Service:パッチマネージャーの仕組み

最終更新日:Jan 17, 2025

このトピックでは、パッチマネージャーの仕組みと、システムパッチをスキャンしてステータスを確認し、不足しているパッチをインストールする方法について説明します。

Linux

パッチマネージャーでサポートされている Linux オペレーティングシステムには、CentOS、Alibaba Cloud Linux、Debian、Ubuntu などがあります。オペレーティングシステムが異なれば、使用するパッケージマネージャーも異なります。パッケージマネージャーが異なれば、システムパッチのスキャンとインストールの原則も異なります。

オペレーティングシステム

パッケージマネージャー

CentOS 7、Alibaba Cloud Linux 2、および Red Hat Enterprise Linux 7

YUM

CentOS Stream 9、Alibaba Cloud Linux 3、Red Hat Enterprise Linux 8 および 9、Anolis OS 8、AlmaLinux OS 8 および 9、Rocky Linux 8 および 9、および Fedora 37、38、および 39

DNF

Ubuntu 16.04、18.04、20.04、22.04、および 24.04

APT

Debian 11/12

APT

SUSE Linux Enterprise Server (SLES) 12 および 15、および openSUSE 15

Zypper

YUM または DNF でのパッチベースラインの仕組み

CentOS、Alibaba Cloud Linux、Red Hat Enterprise Linux、Anolis OS などのオペレーティングシステムは、YUM または DNF を使用してソフトウェアパッケージを管理します。2 つのパッケージマネージャーはどちらも更新通知機能をサポートしています。ソフトウェアリポジトリでは、updateinfo.xml という名前のファイルにソフトウェアセキュリティ更新の通知が保存されます。更新通知には、特定の問題を修正するソフトウェアパッケージのセットが含まれています。更新通知に含まれるソフトウェアパッケージは、セキュリティパッケージと見なされます。パッチベースラインの作成時にセキュリティ以外の更新を含めるを選択しない場合、パッチマネージャーは、パッケージの最新のアップグレード可能なバージョンが更新通知に含まれている必要があります。

次の表に、updateinfo.xml ファイルのフィールドを示します。

パラメーター

説明

type

更新通知のタイプ。有効な値:

Security

Bugfix

Enhancement

Recommended

Newpackage

title

更新通知のタイトル。

severity

更新通知の重大度レベル。有効な値:

Critical

Important

Moderate

Low

Unspecified

summary

更新通知の簡単な説明。

description

更新通知の詳細な説明。

references

更新通知の参照情報。参照情報には、一般的な脆弱性とエクスポージャー (CVE) および Bugzilla 情報が含まれる場合があります。

pkglist

更新通知に関連付けられている RPM パッケージ。

パッチマネージャーは、パッチベースラインで指定されたルールに基づいて、updateinfo.xml ファイルに保存されている更新通知をフィルタリングします。たとえば、CentOS のパブリックベースラインでは、次のルールが指定されています。

'PatchFilterGroup': [
    {
        'Values': [
            '*'
        ],
        'Key': 'Product'
    },
    {
        'Values': [
            'Security',
            'Bugfix'
        ],
        'Key':'Classification'
    },
    {
        'Values': [
            'Critical',
            'Important'
        ],
        'Key': 'Severity'
    }
]

上記のルールは、スキャンまたはインストールのために、Security または Bugfix タイプで、Critical または Important の重大度レベルの更新パッケージを照合するために使用されます。このルールは、次の yum コマンドと同等です。

yum check-update --security --bugfix --secseverity=Critical,Important

このルールは、次の dnf コマンドと同等です。

dnf  check-update --security --bugfix --secseverity=Critical
dnf  check-update --security --bugfix --secseverity=Important

作成するカスタムベースラインのルールで、スキャンまたはインストールする必要のあるパッチのタイプと重大度レベルを指定しない場合、そのルールは次の yum および dnf コマンドと同等です。

yum check-update --security
dnf check-update --security

インストールするパッチパッケージがフィルタリングされると、パッチマネージャーは yum(update api) または dnf update コマンドを実行してパッチパッケージをインストールします。パッチパッケージがインストールされると、パッチマネージャーはインスタンスを再起動します。再起動を許可パラメーターをいいえに設定すると、パッチマネージャーはインスタンスを再起動しません。

注:Alibaba Cloud Linux 2 はカーネルライブパッチをサポートしています。インスタンスでカーネルライブパッチが有効になっていて、インスタンスにカーネルライブパッチのみがインストールされている場合、パッチマネージャーはインスタンスを再起動しません。詳細については、「カーネルライブパッチ機能の概要」をご参照ください。

APT でのパッチベースラインの仕組み

Debian および Ubuntu では、パッチベースラインは DEB パッケージの Priority フィールドと Section フィールドに基づいてパッチを選択します。Priority フィールドはパッケージの優先度を示します。Section フィールドはパッケージのタイプを示します。

パッチマネージャーは、次の手順に基づいてシステムパッチをスキャンまたはインストールします。

1. apt update コマンドを実行して、ソフトウェアリポジトリのパッケージリストをリフレッシュします。

2. パッチベースラインを使用して、アップグレード可能なパッケージを照合します。セキュリティ以外の更新を含めるを選択しない場合、パッチマネージャーは、パッケージの最新のアップグレード可能なバージョンがセキュリティリポジトリにある必要があります。次のコンテンツは、さまざまなオペレーティングシステムのセキュリティリポジトリの名前をリストしています。

Debian Server 8: debian-security jessie
Debian Server 9: debian-security stretch
Debian Server 10: debian-security buster
Debian Server 11: debian-security bullseye
Debian Server 12: debian-security bookworm
Ubuntu Server 16.04 LTS: xenial-security
Ubuntu Server 18.04 LTS: bionic-security
Ubuntu Server 20.04 LTS: focal-security
Ubuntu Server 22.04 LTS: jammy-security

Debian または Ubuntu のパブリックベースラインでは、優先度が Required または Important のパッケージを照合するために、次のルールが指定されています。

'PatchFilterGroup': [
    {
        'Values': [
            '*'
        ],
        'Key': 'Product'
    },
    {
        'Values': [
            'Required',
            'Important'
        ],
        'Key': 'Severity'
}

上記のルールは、次の手順と同等です。

1. apt list --upgradable コマンドを実行して、すべてのアップグレード可能なパッケージをクエリします。

2. apt list -a package-name コマンドを実行して、パッケージのすべてのアップグレード可能なバージョンをクエリします。コマンド出力では、パッケージのバージョンは最新のものから順にソートされます。

3. apt show package-name=={Version} コマンドを実行して、パッケージのアップグレード可能なバージョンの優先度と、バージョンがベースラインルールを満たしているかどうかを確認します。

4. ベースラインルールを満たすパッケージのバージョンがセキュリティリポジトリにあるかどうかを確認します。

パッチマネージャーは apt update api コマンドを実行して、インストールする必要のあるパッチパッケージをインストールします。パッチパッケージがインストールされると、パッチマネージャーはインスタンスを再起動します。再起動を許可パラメーターをいいえに設定すると、パッチマネージャーはインスタンスを再起動しません。

Zypper でのパッチベースラインの仕組み

SLES および openSUSE では、Zypper はパッチを使用してシステムパッチを管理します。zypper list-patches コマンドを実行して、適用可能なパッチをリストできます。パッチは、特定のソフトウェアパッケージセットを修正するために使用されます。次の表に、パッチの属性を示します。

status

not needed: パッチは不要です。

applied: パッチはインストールされています。

need: パッチをインストールする必要があります。

カテゴリ

Category

  • security: セキュリティの脆弱性とバグを修正するセキュリティパッチ。

  • recommended: システムのパフォーマンス、機能、または互換性を向上させるのに役立つ推奨パッチ。

  • optional: 追加機能を提供したり、重要でない問題を修正したりするオプションのパッチ。

  • feature: 新しい操作を追加したり、既存の機能を改善したりする機能パッチ。

  • document: ドキュメント。

  • yast: YaST は、openSUSE および SUSE Linux ディストリビューション用のシステム管理ツールです。

重大度

Severity

  • low: 低レベルの問題またはリスク。

  • moderate: 中程度の問題またはリスク。

  • important: 重要な問題またはリスク。

  • critical: 重大な問題またはリスク。

  • unspecified: 指定されていない問題またはリスク。

Created On

パッチが作成された日付。

Zypper パッチベースラインは、パッチの Category 属性と Severity 属性に基づいてパッチを選択します。例:

"PatchFilterGroup": [
    {
        "Values": [
            "*"
        ],
        "Key": "Product"
    },
    {
        "Values": [
            "security",
            "recommended"
        ],
        "Key": "Classification"
    },
    {
        "Values": [
            "Critical",
            "Important",
            "Moderate"
        ],
        "Key": "Severity"
    }
],

上記のルールは、重大度が Critical、Important、または Moderate の security および recommended パッチパッケージを照合するために使用されます。

Windows

Windows でのシステムパッチの更新方法

パッチ更新プログラムがスキャンまたはインストールされると、パッチ マネージャーは、パッチ リストの後続の更新プログラムによって置き換えられる更新プログラムを自動的に削除します。そのため、パッチ マネージャーには、インストールする最新の更新プログラムのみが表示されます。たとえば、パッチ KB4550961 がパッチ KB4556846 に置き換えられた場合、パッチ KB4556846 のみがパッチ更新プログラムとして使用されます。

必要なパッチ更新に依存関係がある場合は、最初に依存関係をインストールする必要があります。その後、パッチ更新が再度スキャンされた後に、必要な更新を検出してインストールできます。たとえば、パッチ KB5005076 がパッチ KB4566425 に依存しており、パッチ KB4566425 がインストールされていない場合、パッチ更新のスキャン後、パッチ KB5005076 は検出されません。この場合、最初にパッチ KB4566425 をインストールする必要があります。

注:パッチマネージャーは、Windows Server 2012 R2、Windows Server 2016、Windows Server 2019、および Windows Server 2022 のシステムパッチ更新のみをサポートしています。