インテリジェントプラットフォーム管理インターフェイス( IPMI ) は、ホスト システムのCPU、ファームウェア( BIOSまたはUEFI )、およびオペレーティングシステムとは独立して管理および監視機能を提供する自律型コンピュータ サブシステムのコンピュータインターフェイス仕様のセットです。IPMI は、システム管理者がコンピュータ システムの帯域外管理および動作監視に使用するインターフェイスのセットを定義します。たとえば、IPMI を使用すると、オペレーティングシステムやログイン シェルではなくハードウェアへのネットワーク接続を使用して、電源がオフになっている、またはその他の理由で応答しないコンピュータを管理できます。別の使用例としては、カスタムオペレーティングシステムをリモートでインストールすることが挙げられます。IPMI がない場合、カスタム オペレーティングシステムをインストールするには、管理者がコンピュータの近くに物理的にいて、OSインストーラを含むDVDまたはUSB フラッシュ ドライブを挿入し、モニターとキーボードを使用してインストール プロセスを完了する必要があります。IPMI を使用すると、管理者はISO イメージをマウントし、インストーラ DVD をシミュレートして、リモートでインストールを実行できます。[ 1 ]
この仕様はインテルが主導し、1998年9月16日に初めて公開されました。シスコ、デル[ 2 ] 、ヒューレット・パッカード・エンタープライズ、インテル[ 3 ] [ 4 ]など、200社以上のコンピュータシステムベンダーがこれをサポートしています。
標準化されたインターフェースとプロトコルを使用することで、IPMI に基づくシステム管理ソフトウェアは、複数の異なるサーバーを管理できます。メッセージベースのハードウェアレベルのインターフェース仕様である IPMI は、オペレーティングシステム(OS) とは独立して動作するため、管理者はオペレーティングシステムやシステム管理ソフトウェアが存在しない場合でも、システムをリモートで管理できます。したがって、IPMI の機能は、次の 3 つのシナリオのいずれでも動作します。
システム管理者は、IPMI メッセージングを使用して、プラットフォームの状態 (システム温度、電圧、ファン、電源、シャーシ侵入など) を監視したり、インベントリ情報を照会したり、範囲外の状態のハードウェア ログを確認したり、リモート コンソールから同じ接続を介して要求を発行する (システムの電源オフと再起動など)、ウォッチドッグ タイマーを設定するなどの復旧手順を実行したりできます。この規格では、システムが簡易ネットワーク管理プロトコル(SNMP) プラットフォーム イベント トラップ (PET)を送信するためのアラート メカニズムも定義されています。
監視対象システムは電源がオフになっている可能性がありますが、電源と監視媒体(通常はローカルエリアネットワーク(LAN)接続)に接続されている必要があります。IPMIはオペレーティングシステムの起動後も機能し、管理データと構造をシステム管理ソフトウェアに公開します。IPMIはインターフェースの構造と形式のみを標準として規定しており、詳細な実装は異なる場合があります。IPMIバージョン1.5の実装では、直接帯域外LANまたはシリアル接続、あるいはサイドバンドLAN接続を介してリモートクライアントと通信できます。サイドバンドLAN接続は、ボードのネットワークインターフェースコントローラ(NIC)を利用します。このソリューションは専用LAN接続よりも安価ですが、帯域幅が制限され、セキュリティ上の問題もあります。
IPMIバージョン2.0に準拠したシステムは、 LAN経由のシリアル通信にも対応しており、LAN経由でシリアルコンソールの出力をリモートで表示できます。IPMI 2.0を実装するシステムは通常、IP経由のKVM、リモート仮想メディア、帯域外組み込みWebサーバーインターフェース機能も備えていますが、厳密に言えば、これらはIPMIインターフェース規格の範囲外です。
DCMI (データセンター管理インターフェース)は、IPMIをベースとした類似の標準規格ですが、データセンター管理により適した設計となっています。IPMIで定義されているインターフェースを使用しますが、オプションのインターフェースの数を最小限に抑え、電力制限制御機能などを備えています。

IPMIサブシステムは、ベースボード管理コントローラ(BMC)と呼ばれるメインコントローラと、サテライトコントローラと呼ばれるさまざまなシステムモジュールに分散配置された他の管理コントローラで構成されます。同じシャーシ内のサテライトコントローラは、I²C (Inter-Integrated Circuit)の拡張実装であるインテリジェントプラットフォーム管理バス/ブリッジ(IPMB)と呼ばれるシステムインターフェイスを介してBMCに接続します。BMCは、インテリジェントプラットフォーム管理コントローラ(IPMC)バスまたはブリッジを介して、サテライトコントローラまたは別のシャーシ内の別のBMCに接続します。BMCは、この仕様で定義されている特殊なワイヤプロトコルであるリモート管理制御プロトコル(RMCP)を使用して管理できます。RMCP+( RMCPよりも強力な認証機能を備えたUDPベースのプロトコル)は、LAN上のIPMIに使用されます。
複数のベンダーがBMCチップを開発・販売しています。組み込みアプリケーションで使用されるBMCはメモリ容量が限られている場合があり、IPMIの全機能を実装するには最適化されたファームウェアコードが必要です。高度に統合されたBMCは複雑な命令を実行でき、サービスプロセッサの完全な帯域外機能を提供できます。IPMIインターフェースを実装するファームウェアは、さまざまなベンダーから提供されています。フィールド交換可能ユニット(FRU)リポジトリには、ベンダーIDや製造元など、交換可能なデバイスの在庫情報が格納されます。センサーデータレコード(SDR)リポジトリには、ボード上に存在する個々のセンサーの特性が格納されます。たとえば、ボードには温度、ファン速度、電圧などのセンサーが含まれている場合があります。

ベースボード管理コントローラ(BMC)は、IPMIアーキテクチャにおけるインテリジェンスを提供する役割を担います。これは、コンピュータ(一般的にはサーバー)のマザーボードに組み込まれた専用のマイクロコントローラです。BMCは、システム管理ソフトウェアとプラットフォームハードウェア間のインターフェースを管理します。BMCは、専用のファームウェアとRAMを備えています。
コンピュータシステムに組み込まれた様々な種類のセンサーは、温度、冷却ファン速度、電源状態、オペレーティングシステム(OS)の状態などのパラメータをBMC(ビル管理コントローラ)に報告します。BMCはこれらのセンサーを監視し、いずれかのパラメータが事前に設定された制限値を超え、システムの潜在的な障害を示す場合、ネットワーク経由でシステム管理者にアラートを送信できます。管理者はBMCとリモートで通信し、システムのリセットや電源の再投入など、ハングアップしたOSを復旧させるための是正措置を講じることもできます。これらの機能により、システムの総所有コストを削減できます。
IPMIバージョン2.0に準拠したシステムは、 LAN経由のシリアル通信にも対応しており、LAN経由でシリアルコンソールの出力をリモートで表示できます。IPMI 2.0を実装するシステムは通常、IP経由のKVM、リモート仮想メディア、帯域外組み込みWebサーバーインターフェース機能も備えていますが、厳密に言えば、これらはIPMIインターフェース規格の範囲外です。
BMCへの物理インターフェースには、SMBuse、RS-232シリアルコンソール、アドレスおよびデータライン、そしてシステム内の他の管理コントローラからIPMI要求メッセージをBMCが受信できるようにするIPMBが含まれます。
BMCへの直接シリアル接続は、接続自体が安全であるため暗号化されません。LAN経由でのBMCへの接続は、ユーザーのセキュリティ上の懸念に応じて暗号化を使用する場合と使用しない場合があります。
BMCは、サーバーに対する低レベルで広範囲なアクセスと制御を行うインフラストラクチャであるため、その一般的なセキュリティについて懸念があります。ベンダーの実装はクローズドソースおよびプロプライエタリソフトウェアに基づいており、その作成方法や含まれているセキュリティ脆弱性についてほとんど透明性がありません。[ 5 ] [ 6 ] [ 7 ] [ 8 ]。
BMC(特にAspeed製のBMC)は、基本的な表示やリモート管理のために、エントリーレベルのGPU(通常は2Dハードウェアアクセラレーションのみをサポート)を統合している場合があります。
OpenBMCは、 Linux Foundationの共同プロジェクトであり、無料のオープンソースBMCプロジェクトで、これらの問題を軽減する透明性があり、十分に文書化され、テスト済みのBMC管理ソフトウェアを構築することを目的としています。[ 9 ]
2013年7月2日、Rapid7は最新のIPMI 2.0プロトコルと様々なベンダーによる実装のセキュリティ侵入テストに関するガイドを公開した。[ 10 ]
2013年の情報源の中には、ベースボード管理コントローラ(BMC)の設計と脆弱性に関連するセキュリティ上の懸念から、IPMIの旧バージョンを使用しないよう勧めるものもあった。 [ 5 ] [ 11 ] [ 12 ]
しかし、他の管理インターフェースと同様に、セキュリティのベストプラクティスでは、IPMI管理ポートを信頼できる管理者のみに制限された専用の管理LANまたはVLANに配置することが推奨されます。[ 13 ]
IPMI仕様はRAKP+と、計算上解読が事実上不可能なより強力な暗号で更新されました。[ 14 ]その結果、ベンダーはこれらの脆弱性を修正するパッチを提供しています。
DMTF組織は、最新のデータセンター環境で動作するように、 Redfishと呼ばれる安全で拡張性の高いインターフェース仕様を開発しました。[ 15 ]
IPMI標準の枠外にも、独自のシステム実装によってはいくつかの解決策が存在する可能性があります。デフォルトの短いパスワードや「cipher 0」ハッキングは、データセンターや中規模から大規模な環境で一般的に用いられる、 SSL経由の認証、認可、アカウンティング(AAA)のためのRADIUSサーバー を使用することで容易に克服できます。ユーザーのRADIUSサーバーは、 FreeRADIUS / OpenLDAPまたはMicrosoft Active Directoryおよび関連サービスを使用して、 AAAをLDAPデータベースに安全に保存するように構成できます。
ロールベースアクセスは、上位ロールに対する制限を強化することで、現在および将来のセキュリティ問題に対応する手段を提供します。ロールベースアクセスは、管理者、オペレーター、ユーザーの3つのロールでサポートされています。
全体として、ユーザーロールはBMCへの読み取り専用アクセス権限を持ち、電源のオン/オフ切り替えやマザーボード上のメインCPUの表示/ログインといったリモート制御機能は一切ありません。したがって、ユーザーロールを持つハッカーは機密情報に一切アクセスできず、システムを制御することもできません。ユーザーロールは通常、SNMPネットワーク監視ソフトウェアがSNMPアラートを受信した後、センサーの読み取り値を監視するために使用されます。
オペレーターの役割は、システムがハングアップした稀なケースにおいて、NMIクラッシュ/コアダンプファイルを生成し、システムを再起動または電源を再投入するために使用されます。このような場合、オペレーターはシステムソフトウェアにアクセスしてクラッシュ/コアダンプファイルを収集することもできます。
管理者ロールは、システムの初回インストール時の試運転時に、最初の起動時にBMCを構成するために使用されます。
したがって、賢明なベストプラクティスは、LDAP/RADIUS でオペレーターおよび管理者ロールの使用を無効にし、LDAP/RADIUS 管理者が必要な場合にのみ有効にすることです。たとえば、RADIUS では、ロールの設定 Auth-Type を次のように変更できます。
認証タイプ := 拒否
そうすることで、ユーザー名がRADIUSサーバーによって拒否されるため、RAKPハッシュ攻撃が成功することを防ぐことができます。
IPMI標準仕様は、数々の反復を経て進化してきた。[ 16 ] [ 17 ]
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)