FIPSモードを有効にしたRHEL 8/RHEL 9で、Microsoft Defender for Endpoint on Linuxの導入や更新が失敗する場合は、Linuxプラットフォームを101.26052.0011以降へ更新してください。FIPSモードを無効化する必要はありません。
問題の影響を受けた端末では、101.26042.xのインストール処理が完了せず、Defenderが以前のバージョンのまま残ることがあります。そのため、「101.26042.xが表示されていないから影響なし」とは判断できません。現在のバージョン、FIPSの状態、パッケージリポジトリで提供されているバージョンを順番に確認し、修正版への更新を再実行する必要があります。Microsoftは、この問題が101.26052.0011以降で修正されたと案内しています。(Microsoft Learn)
この記事では、影響端末の見分け方、具体的な更新コマンド、更新後の確認項目、正常に更新できない場合の切り分け方法まで解説します。
FIPS有効RHELでDefender 101.26042.xを更新できない問題の修正版
今回の問題を整理すると、次のようになります。
| 項目 | 内容 |
|---|---|
| 対象OS | Red Hat Enterprise Linux 8/9 |
| 条件 | FIPSモードが有効 |
| 対象製品 | Microsoft Defender for Endpoint on Linux |
| 問題が発生するバージョン | Linuxプラットフォーム101.26042.x |
| 主な症状 | 新規インストールまたは更新が完了しない |
| 影響後の状態 | 以前のプラットフォームバージョンのまま残ることがある |
| 修正版 | 101.26052.0011以降 |
| 基本的な対応 | パッケージ情報を更新し、修正版以降へインストールまたは更新する |
Microsoftの公式情報では、FIPSモードを有効にした一部のRHEL 8/9端末で、101.26042.xのインストールに失敗する可能性があるとされています。失敗した端末は旧バージョンのまま残りますが、101.26052.0011以降で正常にインストールおよび更新できるようになりました。(Microsoft Learn)
なお、公開情報では詳細な技術的原因までは示されていません。OpenSSL、暗号プロバイダー、証明書検証などを原因として断定せず、まずはOS、FIPS状態、Defenderのバージョンという明確な条件で影響を判断するのが適切です。
101.26042.0011と101.26052.0011を混同しない
Defender for Endpoint on Linuxでは、近い時期にバージョン番号が似た別の問題も発生しています。
| 問題 | 影響するバージョン | 症状 | 修正版 |
|---|---|---|---|
| 更新後の再起動でDefenderサービスが無効になる問題 | 101.26042.0000~101.26042.0009 | 一部端末でDefenderサービスが無効になる | 101.26042.0011 |
| FIPS有効RHELでインストール・更新できない問題 | 101.26042.x | 更新に失敗し、旧バージョンのまま残る | 101.26052.0011以降 |
FIPS環境の更新失敗を修正するバージョンは101.26052.0011以降です。
101.26042.0011は、更新や再インストール後の再起動でDefenderサービスが無効になる別問題の修正版です。FIPS有効RHELにおける101.26042.xのインストール失敗を解決する修正版ではありません。(Microsoft Learn)
変更管理票や更新手順書には、単に「101.26042の修正版」と書くのではなく、次のように記載すると取り違えを防げます。
FIPS有効RHEL 8/9における101.26042.x更新失敗への対応として、Microsoft Defender for Endpoint on Linuxを101.26052.0011以降へ更新する。
影響端末かどうかを確認する方法
影響の有無は、次の順番で確認します。
RHELのメジャーバージョンを確認する
cat /etc/redhat-release
対象はRHEL 8またはRHEL 9です。
OS情報をまとめて確認する場合は、次のコマンドも利用できます。
hostnamectl
RHEL 7以前やRHEL 10、Ubuntu、SUSEなどは、Microsoftが示している今回の既知問題の対象条件とは一致しません。ただし、別の原因で更新に失敗している可能性はあります。
FIPSモードが有効か確認する
まず、次のコマンドを実行します。
fips-mode-setup --check
次のように表示されれば、FIPSモードが有効です。
FIPS mode is enabled.
スクリプトや構成管理ツールから判定する場合は、カーネルの状態も確認できます。
cat /proc/sys/crypto/fips_enabled
出力が1ならFIPSモードが有効、0なら無効です。Red Hatも、RHEL 8/9での確認方法としてfips-mode-setup --checkを案内しています。(Red Hat Documentation)
Defenderの現在のバージョンを確認する
Defenderのアプリケーションバージョンは、次のコマンドで確認できます。
mdatp health --field app_version
RPMパッケージとしてのインストール状況も確認しておきます。
rpm -q mdatp
mdatp healthのapp_versionは、端末上で動作しているMicrosoft Defenderアプリケーションのバージョンを示します。(Microsoft Learn)
判断基準は次のとおりです。
| 確認結果 | 判断 |
|---|---|
| RHEL 8/9、FIPS有効、101.26052.0011未満 | 修正版以降への更新対象 |
| RHEL 8/9、FIPS有効、101.26052.0011以降 | 今回の既知問題は修正済みの範囲 |
RHEL 8/9、FIPS有効、mdatpが未インストール | 修正版以降を新規インストールする |
| FIPS無効 | 今回の既知問題とは条件が異なる |
| 101.26052.0011以降でも更新エラーが続く | リポジトリ、バージョン固定、依存関係などを調査する |
重要なのは、101.26042.xへの更新に失敗した端末では、app_versionが101.26042.xにならず、それより前のバージョンが表示される可能性があることです。旧バージョンで正常稼働しているように見えても、更新履歴やパッケージマネージャーのエラーも併せて確認してください。
Defenderを101.26052.0011以降へ更新する手順
更新前の状態を記録する
作業前に、OS、FIPS、Defenderのバージョン、稼働状態を記録します。
cat /etc/redhat-release
fips-mode-setup --check
mdatp health --field app_version
mdatp health --field healthy
rpm -q mdatp
service mdatp status
複数台を更新する場合は、最低でも次の項目を台帳に残しておくと、更新漏れを防げます。
| 項目 | 記録例 |
|---|---|
| ホスト名 | server01.example.local |
| RHELバージョン | RHEL 9 |
| FIPS状態 | Enabled |
| 更新前バージョン | 101.xxxxx.xxxx |
| 提供されている更新版 | 101.26052.0011以上 |
| 更新結果 | 成功/失敗 |
| 更新後の正常性 | healthy: true |
リポジトリ情報を更新する
古いメタデータが残っていると、修正版が公開されていても候補に表示されないことがあります。
yumを使用する場合は、次のコマンドを実行します。
sudo yum clean metadata
sudo yum makecache
sudo yum list --showduplicates mdatp
dnfを使用する場合は、次のとおりです。
sudo dnf clean metadata
sudo dnf makecache
sudo dnf list --showduplicates mdatp
一覧に101.26052.0011以降が表示されることを確認してください。
必ずしも101.26052.0011を指定して固定する必要はありません。利用中の更新チャネルや社内リポジトリで、それより新しい承認済みバージョンが提供されている場合は、そのバージョンへ更新できます。
既存のDefenderを更新する
MicrosoftがRHEL系Linux向けに案内している更新コマンドは、次のとおりです。
sudo yum update mdatp
dnfを使用している環境では、次のコマンドで更新できます。
sudo dnf update mdatp
MicrosoftのLinux向け更新ドキュメントでも、RHELおよびその派生環境ではyum update mdatpが手動更新方法として示されています。(Microsoft Learn)
更新予定のパッケージ一覧が表示されたら、対象バージョンが101.26052.0011以降であることを確認してから処理を進めます。
新規インストールに失敗していた場合
101.26042.xの新規インストールに失敗し、rpm -q mdatpで未インストールと表示される場合は、修正版以降をインストールします。
sudo yum install mdatp
または次のコマンドを使用します。
sudo dnf install mdatp
Microsoftは、RHEL系環境におけるDefender for Endpoint on Linuxの導入で、dnfとyumの両方を利用できると案内しています。(Microsoft Learn)
新規インストールの場合は、パッケージを入れただけではMicrosoft Defenderテナントへの関連付けが完了しません。組織で採用しているオンボーディング方法に従い、Defenderポータルから取得したオンボーディングパッケージや構成管理ツールを使用して登録を完了してください。
更新後に確認する項目
更新コマンドが正常終了しただけで作業完了とせず、Defenderのバージョンと稼働状態を確認します。
mdatp health --field app_version
mdatp health --field healthy
mdatp health --field definitions_status
mdatp health --field org_id
service mdatp status
fips-mode-setup --check
主な確認基準は次のとおりです。
| 確認項目 | 正常と判断する目安 |
|---|---|
app_version | 101.26052.0011以降 |
healthy | true |
definitions_status | up_to_date、または更新直後の一時的なupdating |
org_id | オンボーディング済み組織のIDが表示される |
mdatpサービス | active (running) |
| FIPSモード | 更新前と同様に有効 |
mdatp healthでは、アプリケーションバージョン、定義ファイルの状態、エンジンの稼働状態、製品全体の正常性などを確認できます。(Microsoft Learn)
新規インストール直後は、最新のマルウェア対策定義を取得している間、一時的にhealthyがfalseになることがあります。その場合はdefinitions_statusを確認し、定義更新の完了後に再度正常性を確認します。(Microsoft Learn)
Microsoftのドキュメントでは、Defender for Endpoint on Linuxのインストールまたは更新後は、auditDをimmutable modeで使用している場合を除き、通常はOS再起動を必要としないとされています。(Microsoft Learn)
更新候補に101.26052.0011以降が表示されない場合
修正版が一覧に表示されない場合は、Defenderそのものではなく、リポジトリや更新管理の問題を先に調べます。
Microsoftリポジトリが有効か確認する
sudo yum repolist
または次のコマンドを使用します。
sudo dnf repolist
Microsoft関連のリポジトリ設定を検索する場合は、次のコマンドが利用できます。
grep -Rin "packages.microsoft.com" /etc/yum.repos.d/
社内ミラー、Red Hat Satellite、プロキシ型リポジトリなどを使用している場合は、Microsoft側で修正版が公開されていても、内部リポジトリへの同期が完了していない可能性があります。
その場合は端末側で何度更新しても解決しません。内部リポジトリに101.26052.0011以降のmdatpパッケージが同期されているかを確認してください。
更新チャネルを確認する
Defender for Endpoint on Linuxでは、prod、insiders-slow、insiders-fastなどのチャネルが使用されます。チャネルによって更新の提供時期が異なります。Microsoftは、導入後にチャネルを切り替える場合、単にリポジトリ設定を書き換えるのではなく、パッケージのアンインストールと再インストールが必要だと案内しています。(Microsoft Learn)
修正版を早く取得する目的だけで、本番サーバーのチャネルを安易に変更するのは避けてください。まず現在のチャネルで101.26052.0011以降が提供されているかを確認し、組織の変更管理ルールに従って対応します。
バージョン固定や除外設定を確認する
リポジトリには修正版があるのに「Nothing to do」と表示される場合は、パッケージのバージョン固定を確認します。
versionlockを使用している環境では、次のコマンドを実行します。
sudo dnf versionlock list
mdatpが古いバージョンに固定されている場合は、固定設定の変更手続きを行ってください。
DNFやYUMの除外設定も確認します。
grep -RinE "exclude=.*mdatp|includepkgs=.*mdatp" \
/etc/dnf /etc/yum.conf /etc/yum.repos.d/ 2>/dev/null
自動更新ツール、構成管理ツール、社内のパッチ管理基盤側でバージョンが固定されている可能性もあります。
更新処理が失敗する場合のログ確認
パッケージマネージャーのエラーだけでは原因を判断できない場合は、Defenderのインストールログを確認します。
sudo journalctl --no-pager | grep 'microsoft-mdatp' > installation.log
grep 'postinstall end' installation.log
Microsoftのトラブルシューティング資料でも、microsoft-mdatpのログを抽出し、postinstall endが記録されているか確認する方法が案内されています。(Microsoft Learn)
更新後にサービスが起動していない場合は、状態を確認します。
service mdatp status
サービス停止が確認された場合に限り、再起動を試します。
sudo service mdatp restart
問題が解消しない場合は、Microsoftサポートへ渡す診断ファイルを作成できます。
sudo mdatp diagnostic create
コマンドが正常終了すると、作成された診断ファイルの保存先が表示されます。(Microsoft Learn)
よくある間違った対処
mdatp definitions updateだけを実行する
次のコマンドは、マルウェア対策のセキュリティインテリジェンスを更新するためのものです。
mdatp definitions update
Defender本体のLinuxプラットフォームパッケージを101.26052.0011以降へ更新するコマンドではありません。
今回必要なのは、パッケージマネージャーによる次の更新です。
sudo yum update mdatp
Microsoftの資料でも、定義更新のmdatp definitions updateと、ソフトウェア更新のyum update mdatpは別の操作として示されています。(Microsoft Learn)
FIPSモードを一時的に無効化する
今回の問題は修正版への更新で解決できるため、FIPSモードを無効化する必要はありません。
Red Hatは、FIPSモードの設定完了後に無効化するとシステムが不整合な状態になる可能性があり、FIPSを解除する必要がある場合の正しい方法は完全な再インストールだと警告しています。(Red Hat Documentation)
更新回避のためにFIPSを解除すると、セキュリティ基準や監査要件にも影響します。FIPSを維持したまま、101.26052.0011以降へ更新してください。
101.26042.0011へ更新すればよいと判断する
101.26042.0011は、101.26042.0000~101.26042.0009で発生したサービス無効化問題の修正版です。
FIPS有効RHELで101.26042.xをインストールできない問題については、101.26052.0011以降が必要です。似たバージョン番号を取り違えないようにしてください。
healthy: trueだけを見て更新不要と判断する
旧バージョンのDefenderが正常に動作している場合、healthyがtrueでも、FIPS問題による更新失敗が残っている可能性があります。
次の2項目をセットで確認してください。
mdatp health --field app_version
mdatp health --field healthy
正常性だけでなく、バージョンが101.26052.0011以降であることが重要です。
複数サーバーへ安全に展開するポイント
多数のRHELサーバーを管理している場合は、すべての端末を同時更新せず、段階的に展開します。
まず、RHELのメジャーバージョン、FIPS設定、更新チャネル、用途が本番環境と同じ検証端末を選びます。そこで次の項目を確認します。
- パッケージ更新が正常終了する
- FIPSモードが維持されている
app_versionが101.26052.0011以降になっているhealthyがtrueになるmdatpサービスが稼働している- Defenderポータルへのテレメトリ送信が継続している
- 業務アプリケーションに影響がない
検証後は、冗長構成の片系、非重要サーバー、一般サーバー、重要サーバーの順で展開すると、障害時の影響を抑えられます。
また、101.26052.0011は「固定すべき推奨最新版」ではなく、今回の問題が修正された最低ラインです。実際の展開では、利用しているチャネルや社内承認済みリポジトリで提供される、101.26052.0011以降の適切なバージョンを選択してください。
FIPS有効RHELのDefender更新失敗は修正版への再更新で解決する
FIPSモードを有効にしたRHEL 8/9でDefender for Endpoint on Linux 101.26042.xの導入や更新に失敗した場合は、次の順番で対応します。
fips-mode-setup --checkでFIPSが有効か確認するmdatp health --field app_versionで現在のバージョンを確認する- リポジトリに101.26052.0011以降があるか確認する
sudo yum update mdatpまたはsudo dnf update mdatpを実行する- 更新後にバージョン、正常性、サービス状態、FIPS状態を再確認する
FIPSを無効化したり、mdatp definitions updateだけで対応したりしても、今回のプラットフォーム更新問題は解決しません。影響端末が旧バージョンのまま残っていないかを確認し、101.26052.0011以降への更新を確実に実施してください。

コメント