インフラ作業支援ラボInfra Support Lab ← ガイド一覧← 戻る

RHEL 9のセキュリティ更新手順|DNF・RHSA・再起動・停止影響

Red HatのRHSAとRPM修正版、DNF更新方法、RHELサブスクリプション・EUS、停止影響・復元条件を確認し、本番に段階適用するための運用ガイド。

この記事の目的

修正対象のRHSA/RPMと更新範囲を確定し、業務停止を管理して適用する。

最初に確認

RHEL 9の実版、repo/Satellite、EUS/release lock、RHSAと停止影響。

本番適用前の注意:このページはRHEL 9専用。別OSへDNF/RHSAの手順を流用しないでください。掲載例は公式資料に基づく静的ガイドで、実機更新と復元を検証したものではありません。

1. 更新前に知っておくこと

対象環境と停止リスクを先に確認し、作業可否を判断します。

最初に確かめる3点
公式修正
RHSAとRPMのEVR、EUS/Satelliteとrepo同期を確認
更新範囲
security全件/minimal/特定RHSAのどれかを事前決定
再起動
kernel/重要プロセスとアプリの再起動計画を確認

対象・前提条件と企業システムの停止リスク

対象はRed Hat Enterprise Linux 9で、Red HatのDNF/RPM管理によるセキュリティ更新を行う環境です。RHEL 8、Rocky Linux、AlmaLinux、Oracle Linux、CentOS Stream、LeappによるRHELメジャーバージョンアップはこの手順をそのまま適用しません。サポート契約・配布元・EUS等のリリース固定条件も実環境で確認します。

サービス構成停止・変更リスク実施前の条件
単一サーバー/単一DBkernelや重要デーモン更新でOS/サービス再起動が必要になることがある停止時間承認、リモート外のコンソール、VMとDBの復元試験
LB配下の複数AP/Webサーバー対象1台を接続drain・更新・再起動・業務テスト後に段階復帰代替系容量、セッション/ジョブ、ヘルスチェックと観測期間
RHELを用いたDB/HPC/クラスタquorum・共有ストレージ・DBフェイルオーバーを誤ると業務・データ損失各ミドルウェアのベンダー手順、アプリ・DB担当の承認
RHSAの重大対応更新を急ぐことと停止を防ぐことのバランスが必要リスク承認と代替緩和、復旧担当、RTO/RPO

DNF自体に無停止保証はありません。クラスタであってもshared DB/ファイルシステムやアプリのセッション設計が単一障害点になることがあります。

RHSA・CVE・RPMのreleaseを使って修正版を判断

Red Hat Security Advisory(RHSA)は影響を受けるRHEL製品と修正パッケージを確認する一次資料。脆弱性の修正が上流版番号を変えないバックポートとして提供されることがあります。RPMのEpoch:Version-Release(EVR)とアドバイザリを照合し、上流バージョンだけで危険/安全を断定しないでください。

# 該当RHSAを確認してから、対象のパッケージを調査(参照) dnf updateinfo list --security dnf updateinfo summary # 実在するRHSAを指定して詳細を表示するコマンド例: # dnf updateinfo info RHSA-YYYY:NNNN # 対象パッケージ名も実在するものに置換 # rpm -q PACKAGE # dnf info PACKAGE
状態判断と次の操作
RHSAが存在し必要パッケージの候補がある導入済みEVRと修正版EVR、依存するrpmと他ベンダー製品を確認
RHSAが見つからない/更新が出ないSatellite同期、RHEL release固定、契約/配布元、モジュール/除外設定を確認
上流の修正バージョンより数字が古いRed Hatが提供した修正releaseとRHSA、対象リポジトリで判定
重要デーモンやkernel/GRUBの更新プロセス・OS再起動、bootloader/UEFI/BIOS構成、クラスター復旧経路を事前評価

Red Hat公式のアドバイザリは、Red Hat Product Securityから確認します。

RHELの実版・サブスクリプション・更新元を確かめる

# RHEL 9専用:現在版・動作カーネルと空き領域 cat /etc/redhat-release cat /etc/os-release uname -r df -h / /boot systemctl --failed # 配布元・契約の管理方式を調査 dnf repolist --enabled subscription-manager status # SCAでDisabled等ならidentityも確認(登録ID等は秘密情報として扱う) subscription-manager identity # 有効なrelease lock/EUSの扱いを確認(利用可能な環境) subscription-manager release --show # 自動更新スケジュールの確認 systemctl list-timers 'dnf-automatic*' # セキュリティerrata候補 dnf updateinfo list --security dnf updateinfo summary

Red Hat Subscription ManagementやSatellite・社内ミラーを使用する場合、取得元とアドバイザリメタデータの同期条件が異なります。Simple Content Access構成ではsubscription-manager statusのDisabled表示だけで契約・配布不良と判定せず、実際にリポジトリと必要な更新・アドバイザリが参照できるか確認します。

マイナー版/EUS/モジュールを固定している場合

RHEL 9.xの指定リリースに固定されている場合、最新のパッケージに更新しないことが意図した運用かもしれません。EUSの契約・リポジトリ、アプリ認定、kernel/moduleとドライバの適合を管理者と照合。release固定を解除して先に進むことはしません。

変更票・トランザクション・バックアップのGo/No-Go

対象のRHSA、対象rpm一覧、依存関係、利用しているサービスと停止影響、リリース固定、管理サーバー/衛星サーバーの同期時点を変更票に記録します。VM/OSの復元だけでなくDB・業務データの整合性復元を試験してください。

ゲート承認に必要な証拠
更新対象の一貫性RHELの実版、repo/Satellite、固定release、RHSAとrpm版が整合
変更の予測トランザクションに意図しない削除・依存変化・kernel/bootloader変更がない
無停止の可能性代替系容量、フェイルオーバー、セッション終了、DB整合性を試験済み
復旧条件バックアップ復元試験、コンソール、bootloader/旧kernelの起動可否、RPO/RTOの承認
監視・担当者基準となるSLO、HTTP 5xx、p95遅延、DBエラー、観測期間、中止・再開承認者が確定
# セキュリティ更新候補を確認。--assumenoで取引を適用しない sudo dnf upgrade --security --assumeno # kernel/bootloaderや別製品が対象なら専用の影響評価を優先

--assumenoは更新パッケージを適用しませんが、メタデータ取得やキャッシュ更新があり得ます。また承認を自動で拒否するため終了コードが非ゼロとなる場合があり、更新失敗と同一視しません。全件securityの予行結果をminimalや特定RHSAの実行判断に流用せず、それぞれ同じ対象/フラグで予行してください。大量削除や依存解決失敗、誤ったリポジトリが見えたら本実行は中止してください。

dnf-automaticと管理サーバーによる自動更新の区別

dnf-automaticが設定されている場合、管理者の定めたタイマーと/etc/dnf/automatic.confに従って更新が実行されることがあります。手動の更新窓と競合しないようにし、設定を読んだだけで自動実行を開始・停止しないでください。

# 読み取り:dnf-automaticの導入・設定・タイマー rpm -q dnf-automatic systemctl list-timers 'dnf-automatic*' systemctl status dnf-automatic-install.timer --no-pager # [commands] upgrade_type=security か default か確認 sudo grep -E '^upgrade_type\s*=' /etc/dnf/automatic.conf 2>/dev/null

自動更新タイマーの有効化・無効化、Satelliteによる配布タイミング変更は独立した変更管理の対象。複数の管理基盤が同時更新しないことを確認します。

2. 確認コマンドと結果の読み方

代表例を見てから、必要なコマンドの詳しい判定へ進みます。

代表的なコマンドの判断例

以下は結果の読み方を示す想定例であり、実環境の測定結果ではありません。

確認目安要確認・異常時
subscription-manager statusSCAのDisabledは想定内の場合あり実repoとRHSA配信も確認
dnf updateinfo list --security対象RHSAの候補表示空欄でも適用済みと即断しない
dnf needs-restarting古いライブラリを使うプロセス等空でもkernel/業務正常は別に確認

コマンドごとの正常・例外・異常判定

以下はRHEL 9で想定される出力と運用判断例。実機での測定値ではありません。「正常」は変更対象と一致、「要確認」は想定内だが追加照合が必要、「異常」は作業停止、「判定不能」は権限不足・コマンド未導入・repo未同期などで成功とも失敗とも扱わない状態です。

DNFの--assumenoは実rpm更新を行わない予行ですが、メタデータ・キャッシュに影響する場合があります。トランザクションの自動拒否に伴う非ゼロ終了を更新失敗と同一視しません。権限・配布元・対象RHSA/EVR・実行前後のログを変更記録に残してください。
全コマンドの想定出力と結果別の判断を見る

実機の環境や版によって出力は変わります。必要な箇所を開き、対象ホストと終了コードも照合してください。

コマンド想定出力・意味合否と次に行う操作
cat /etc/redhat-releaseRed Hat Enterprise Linux release 9.x9系で管理対象のマイナー/サポート状態と一致なら正常。8系・別ディストリ・想定外なら停止
cat /etc/os-releaseID=rhel、VERSION_ID=9.x等識別値/管理対象と一致。異なるOSは手順を混用しない。ファイル読取失敗なら判定保留
uname -r現在実行中のKernel版更新前値を保存。Kernel更新後の新旧を照合し、旧版なら計画rebootを検討
df -h / /boot利用率・空き容量カーネル/ログを含めて十分な空きがあること。/boot満杯や不足ならNo-Go
systemctl --failed0 loaded units listed. またはfailed unit0ならunit障害なし(業務正常は別)。新規failedなら原因調査。systemd非稼働は判定不能
dnf repolist --enabled有効repo名、BaseOS/AppStream/EUS/Satellite等実際の契約/固定マイナーと一致なら正常。必要repo欠落・意図外repoは配布/契約を確認
subscription-manager statusOverall Status: Disabledなど(SCA時)、Subscribed等Disabledだけでは異常にしない。SCA/組織構成と実repo到達性・RHSA配信を確認。コマンド未導入は管理方式を調査
subscription-manager release --show指定releaseかRelease not setなどEUS/リリース固定と作業票が一致。固定が意図外の場合は更新保留。勝手に解除しない
systemctl list-timers 'dnf-automatic*'timer名・NEXT/LAST、導入なしなら空定常更新との競合がないこと。空でもSatellite等の別自動更新を否定できない
dnf updateinfo list --securityRHSAとrpm対象一覧、対象なしなら空対象RHSAが候補か、すでに適用済みかをEVRと照合。空だけで修正済みとは断定しない
dnf updateinfo summaryセキュリティ通知件数・severity別の要約対象通知を特定。0件時はrepo/Satellite同期・リリース固定・実導入版を確認
dnf updateinfo info RHSA-ID対象RHSAの対象製品/修正RPM詳細、無効IDなら情報なし実在するRHSAを使用。合致しない/情報なしはID・同期・repoを調査
rpm -q PACKAGE実インストールRPMのName-Version-ReleaseRHSA対象の正確なEVRと照合。未導入/名前違いなら該当性を確認
dnf info PACKAGEInstalled/Availableの版やrepo情報修正版が期待repoから入手可能。repo別の候補/除外/モジュールを確認
sudo dnf upgrade --security --assumenoTransaction Summary、候補rpm、新規/削除/更新一覧(適用なし)対象/依存・kernelが承認と一致。N自動応答で非ゼロ終了でも適用失敗とは限らない。異常/変更は中止
sudo dnf upgrade-minimal --security --assumenominimal方式に固有のtransaction候補minimalで本実行する場合はこの予行が必須。security全件のプレビューを使い回さない
sudo dnf upgrade --advisory=RHSA-ID --assumeno当該RHSAと依存のみの候補一覧ID/EVR/依存/配布元が承認済みと一致。別RHSAや候補違いなら作業中止
sudo dnf upgrade --security更新済rpmを反映する取引・完了ログ(状態変更)予行のtransactionと一致し正常終了が前提。終了後も修正EVR・プロセス・業務確認必須
sudo dnf upgrade-minimal --security最小更新方針の取引・完了ログ(状態変更)同一minimal予行・承認があること。依存と実版が変われば再承認
sudo dnf upgrade --advisory=RHSA-ID選定したRHSA単位の取引(状態変更)実在IDと同一予行、承認内容が一致。実施後のRPMと業務テストまで確認
rpm -q kernel-core導入されているkernel RPM群uname -rと照合。新kernel導入のみでは稼働kernelは更新されない
sudo dnf history info last最後のDNF transactionの実施日時・対象rpm・return code作業時刻/ユーザー/対象が一致。別の自動更新取引なら検証対象を特定し直す
rpm -q dnf-automaticdnf-automaticの導入版、未導入ならエラー未導入は必ずしも障害でない。タイマー0でもSatellite/別管理方式を調査
systemctl status dnf-automatic-install.timeractive/inactive/not-foundと次回予定運用方針に一致。activeなら手動更新と競合しない窓を確保
sudo grep ... /etc/dnf/automatic.confupgrade_type=security/defaultなどsecurity限定要件ならsecurityが設定済みか確認。ファイルなしは未導入/他管理方式を確認
sudo dnf needs-restarting古いライブラリ等を使用するPIDとコマンド、空欄もある列挙されたプロセスを1件ずつ調査し製品別の再起動方法を選択。空でもkernel/業務合格とは別
journalctl -p err -b --no-pager -n 50当該起動内のerrorイベント、空もある変更前後の差分で重大な新規ログを判定。journal空でも外形試験は別
sudo dnf historyDNFのtransaction ID/日時一覧対象変更のIDを特定。自動更新と重複していないか照合
sudo grep -E '^upgrade_type\s*=' /etc/dnf/automatic.confupgrade_type=security/default等、設定なしのこともある自動更新範囲と承認が一致。見つからないときはd n f automatic導入有無と設定場所を確認
systemctl status dnf-automatic-install.timer --no-pagerTimerのactive/inactive/unknown有効でも停止すべきとは限らない。更新窓との競合を調査
subscription-manager identity登録ID/名前/組織などの登録情報(機密情報を含む)SCAでstatusがDisabled等なら、登録実体を確認。表示内容を公開しない

想定出力例:SCAと更新前transaction

# 以下は説明用で実測出力ではありません $ subscription-manager status Overall Status: Disabled # SCA構成では単独で異常とは限らない $ sudo dnf upgrade --security --assumeno Transaction Summary Upgrade N Packages Is this ok [y/N]: N # Nを自動で選ぶためrpm更新は適用されない

本番Go:対象RHSAの修正EVR、適切なrepo/契約、重要プロセスの再起動・OSブート、実サービス通信と監視の基準値が全て満たされ、観測時間中に新しい重大アラートがない。いずれか未確認の場合は次ホストへの更新を禁止する。

想定出力と作業記録の取り方

# 想定例。実機で観測した値ではありません $ cat /etc/redhat-release Red Hat Enterprise Linux release 9.x (Plow) $ dnf updateinfo list --security # (ここに運用中に検出した実際のRHSAとrpmを記録) $ systemctl --failed 0 loaded units listed.

リリースが9.xでもEUSや固定版の条件が違う可能性があります。監査票にはRHSA、repo、前後rpm EVR、実行カーネル、停止時間、DB整合性、監視しきい値と復帰承認者を記録してください。

3. 安全な進め方・完了確認と復旧

環境ごとの作業計画を前提に、変更・監視・中止・復旧の順で確認します。

次へ進める条件:対象RHSAの予行と適用をそろえ、OS・サービス・業務を確認。

DNFでセキュリティ更新・最小更新・特定RHSAを使い分ける

全セキュリティerrataに対して最新の対象パッケージを適用

# 対象RHSA・トランザクション・保守窓を承認済みの場合のみ実施 sudo dnf upgrade --security

この操作はセキュリティerrata対象の最新の利用可能なパッケージへの更新であり、依存関係によって更新範囲が広がり得ます。RHEL 9のdnf upgrade(--securityなし)はバグ修正・機能改善を含めた通常更新です。

セキュリティ修正に必要な最小限のバージョン変更

# 先に同じ対象・オプションでプレビュー(更新を適用しない) sudo dnf upgrade-minimal --security --assumeno # 表示されたtransactionを承認済みのときだけ実行 sudo dnf upgrade-minimal --security

修正に必要なバージョンを目指す選択肢。サポート契約、依存関係や複数アドバイザリの整合が必要で、必ず小さな停止影響になるとは限りません。

特定RHSAだけを対象にする場合

# RHSA番号を実在するアドバイザリに置換(全行コメントの例) # sudo dnf upgrade --advisory=RHSA-YYYY:NNNN --assumeno # 予行・承認後に同じRHSAとコマンドで更新: # sudo dnf upgrade --advisory=RHSA-YYYY:NNNN # minimal版でも同じ考え方で予行: # sudo dnf upgrade-minimal --advisory=RHSA-YYYY:NNNN --assumeno # sudo dnf upgrade-minimal --advisory=RHSA-YYYY:NNNN

実際のRHSA・関連rpm・依存・対象パッケージをDNFと提供元のアドバイザリで確認してから実行してください。「1つのRHSAだけだから停止が発生しない」とは限りません。

GRUB更新が含まれる場合:RHEL 9公式はBIOS環境とIBM Power環境でGRUBパッケージ更新後のブートローダー再インストールを必要としています。起動方式(BIOS/UEFI/IBM Power)と実際の起動デバイス・PRePパーティション、復旧コンソールと復元手順を担当者が確認し、プラットフォーム別のRed Hat公式手順で別途作業を計画してください。GRUB再インストールは起動不能リスクがあるため、デバイスを推測してコマンドを実行しないでください。Red Hat公式:GRUBの再インストール。

更新前後のDNFトランザクション記録

# 参照(実環境のDNF履歴) sudo dnf history sudo dnf history info last rpm -q kernel-core uname -r

トランザクション実行後にRHELのカーネル/GRUB、サービス・アプリの再起動要否を別に評価。OSの再起動は停止/冗長切替の計画とセットで承認してください。

ステージングのトランザクションと本番実行を一致させる

本番更新は承認された更新方式ごとに、同じリポジトリ・release lock・RHSA・オプションの--assumenoによる取引を記録します。RHSA/パッケージ候補が予行から変化した、別のrpm/カーネル変更が現れた、依存の削除・新規導入が追加された場合はNo-Goに戻して再承認。Satelliteの同期やEUS切替によって候補が変わる場合も同様です。

SCA環境でのsubscription-managerの結果

Simple Content Access(SCA)でsubscription-manager statusがDisabledと表示されても、直ちに異常ではありません。dnf repolist --enabledで必要なリポジトリを確認し、dnf updateinfoと対象RHSAの配信・実際のRPM EVRを突き合わせる。ネットワークや認証の不具合、アドバイザリ同期遅延を「更新不要」と解釈しないでください。

HA・LB構成では一台ずつ更新し段階復帰

企業向けの運用順序

  1. ステージングで対象RHSA/rpmの更新とアプリ依存、設定差分、kernel/サービス再起動を先に試験。
  2. LB/クラスタから対象1台への新規リクエストを停止、既存接続・長時間ジョブをdrainして残存系の処理能力を確認。
  3. 承認したDNFトランザクションで更新し、必要なサービス・OS再起動を製品/クラスタ別手順に従って実施。
  4. 復帰前にRHELの実版、重要unit、業務の実通信・DB・ログを確認し、異常なら隔離したまま更新を停止。
  5. LBへ少量のトラフィックで段階復帰し、SLOと外形監視に合格したら次ホストを更新。

単一ノード・状態保持基盤は停止を前提に判断

LB退避やクラスタフェイルオーバーがない場合、無停止は保証できません。DBのquorum/レプリケーション/データ整合は製品別の正式Runbookを使用。復旧可能なデータの保持と許容停止が承認されるまでGoにしないでください。

適用後:RHSA・プロセス・OS・業務を確認

# RHEL 9:修正確認と更新履歴 dnf updateinfo list --security sudo dnf history info last rpm -q kernel-core uname -r systemctl --failed journalctl -p err -b --no-pager -n 50 # 旧ライブラリを使用しているプロセスの参考 sudo dnf needs-restarting # サービス・kernelの再起動候補を追加調査
検証対象成功条件失敗時の判断
RHSA/パッケージ対象rpmの導入EVRがRHSAの修正済みパッケージと一致repo/リリース固定/除外/依存に戻る
Kernel・サービス必要な再起動後に実行カーネルと重要unitが正常、古いライブラリ保持のプロセスを評価再起動窓・bootloader・関連サービスを再検証
外形監視・DBアプリのHTTP/認証/DB read-writeとバッチが基準内LBへ復帰せず隔離、次ホストの更新禁止

dnf needs-restartingはプロセスを列挙し、systemdサービスと一対一ではありません。needs-restartingの提供/実行可否はdnf needs-restarting --helpが利用できるかを確認し、必要に応じて関連パッケージを調査し、何を再起動する必要があるかをアプリの担当者と判断。カーネル更新時は再起動後の実行カーネルを確認します。

作業判定票:Go / Hold / Abort / Recovery を明確化

以下の欄を更新前に実環境の数値・対象・責任者で記入し、未確定のまま本番更新しません。閾値を記事の架空数値で共通化しないでください。

工程必要な証跡・判断者許可・保留・中止条件
Preflight / Go対象host/node、現行/目標版、パッケージ差分、公式修正情報、復旧試験、切替担当と承認者すべて照合済みならGo。未実施/権限不足/候補違いはHold
Canary / Hold対象をLB/スケジューラで隔離、OS・アプリログ、重要ユニット・業務APIの基準値事前SLOしきい値超過、データ異常、想定外の再起動ならAbort
段階復帰 / Goアプリ認証、HTTP成功率・5xx、p95、DB read/write、Job、監視、観測時間の記録合格後に対象を復帰し観測完了した場合のみ次ホストへ。回復せず原因不明ならHold
復旧 / Recovery原因ログ、バックアップと復元点、データ互換性、RTO/RPO、復旧承認者変更を止め、既知の復旧手順を使用。ロールバック不能なら担当者へエスカレーション

復旧・切り戻し・中止条件

状況次の調査・復旧判断
DNFが依存エラー/異常終了トランザクションとDNFログ、repo/Satellite同期とディスク容量を保全。無条件の再実行は避ける
再起動後にSSH不可・OS起動失敗管理コンソールでbootloader/GRUB、kernel、認証/SELinuxのログ・設定を調査
RHSA後にアプリ異常・5xx増加そのホストをLBから隔離し、旧設定・依存rpm、サービスの状態と業務ログを比較
DB/共有ストレージ不整合rpmを戻すだけでは復旧しない。クラスター/DB管理者が整合性と復元点を決定
復元試験未実施・旧版互換性不明本番更新を止め、バックアップの有効性・RPO/RTOを再承認

dnf history undo/rollback等はすべてのパッケージを安全に戻せる保証ではありません。特にkernel/DBと既にデータ変更した製品は、依存と整合性を確認すること。必要ならVMやDBの検証済み復元手順を選びます。

公式根拠と関連運用ガイド

Ubuntu 22.04/24.04の更新(別記事)/Kubernetes更新/journalctl調査/ディスク容量

公式参照日:2026年11月1日。作業当日のバージョンと契約/EUS条件・配布元の修正情報を再照合してください。

更新前の確認チェックを開く (任意・作業メモ作成)

更新前リスクをチェックして、作業メモを作る

構成・停止条件・復旧準備とRHSAとDNF更新範囲を確認。未確認事項と次に読む説明を整理し、チェック結果をテキスト保存できます。実機診断や更新の実行許可ではありません。

ブラウザ内で判定し、入力内容をこの機能から外部送信・自動保存しません。機密情報は入力しないでください。

Ubuntuの更新は別手順

Ubuntuでaptを使う場合はUbuntu専用ガイドへ移動してください。

Ubuntu専用更新ガイド