IPMI
IPMI (Intelligent Platform Management Interface, интеллектуальный интерфейс управления платформой) — это стандартизированный интерфейс для аппаратного мониторинга и управления серверами и другими компьютерными системами, работающий независимо от операционной системы и основного процессора. IPMI позволяет администраторам удалённо контролировать состояние оборудования (температуру, напряжение, скорость вентиляторов), включать, выключать и перезагружать систему, а также получать доступ к консоли через сеть, даже если основная ОС не загружена или зависла.
История и развитие
Стандарт IPMI был разработан в 1998 году компаниями Intel, Dell, Hewlett-Packard и NEC с целью создания универсального, не зависящего от производителя протокола для управления серверным оборудованием. Первая версия спецификации (IPMI v1.0) была опубликована в 1999 году. Она определяла базовые функции мониторинга, управления питанием и доступа к системным журналам.
В 2004 году вышла версия IPMI v1.5, которая добавила поддержку удалённого доступа по локальной сети (LAN) через протоколы RMCP (Remote Management Control Protocol) и возможность использования виртуальных носителей (например, монтирование ISO-образов через сеть). Это значительно расширило возможности удалённого администрирования.
Наиболее распространённая версия — IPMI v2.0, принятая в 2005 году. Она ввела поддержку шифрования (аутентификация по протоколу RAKP-HMAC-SHA1, шифрование сессий AES), улучшенную работу с сенсорами и системами охлаждения, а также расширенную поддержку виртуальных носителей и удалённой консоли (Serial over LAN — SOL). Последующие обновления (например, IPMI v2.0 Rev 1.1) уточняли детали, но не меняли архитектуру.
Несмотря на широкое распространение, IPMI критикуется за устаревшие механизмы безопасности (отсутствие обязательной поддержки современных криптографических алгоритмов, возможность атак через уязвимости в реализации). В современных серверах IPMI часто заменяется или дополняется более новыми протоколами, такими как Redfish (стандарт DMTF на основе RESTful API) или BMC (Baseboard Management Controller) с собственными веб-интерфейсами.
Архитектура и компоненты
IPMI реализуется через выделенный микроконтроллер, называемый BMC (Baseboard Management Controller) — контроллер управления материнской платой. BMC имеет собственный процессор, память, сетевой интерфейс и питание (обычно от дежурной линии блока питания), что позволяет ему работать независимо от основного процессора и операционной системы.
Основные компоненты системы IPMI:
- BMC — центральный элемент, обрабатывающий команды, собирающий данные с сенсоров и управляющий питанием.
- IPMB (Intelligent Platform Management Bus) — внутренняя шина, соединяющая BMC с другими управляющими модулями (например, на шасси или блоках питания).
- SDR (Sensor Data Record) — база данных с описанием всех сенсоров системы (тип, пороговые значения, единицы измерения).
- FRU (Field Replaceable Unit) — записи, содержащие информацию о заменяемых компонентах (модель, серийный номер, версия прошивки).
- SEL (System Event Log) — системный журнал событий, хранящий записи о критических ошибках, предупреждениях и изменениях состояния.
- LAN-интерфейс — выделенный или разделяемый с основной системой сетевой порт для удалённого доступа.
Функциональные возможности
IPMI предоставляет администратору широкий набор функций, доступных через командную строку (утилита ipmitool), веб-интерфейс или API.
Управление питанием
- Включение, выключение и перезагрузка сервера (в том числе «жёсткая» перезагрузка при зависании).
- Получение статуса состояния питания (включён, выключен, в режиме ожидания).
- Управление питанием через график (например, автоматическое включение после восстановления питания).
Мониторинг оборудования
- Считывание показаний сенсоров: температура процессора, материнской платы, жёстких дисков; напряжение на линиях питания; скорость вращения вентиляторов.
- Настройка пороговых значений для генерации событий (например, предупреждение при превышении температуры).
- Просмотр системного журнала событий (SEL) для диагностики неисправностей.
Удалённый доступ
- Serial over LAN (SOL) — эмуляция последовательного порта через сеть, позволяющая получить доступ к консоли ОС (например, для настройки BIOS или загрузчика).
- Виртуальные носители — монтирование ISO-образов, дискет или USB-накопителей через сеть, что позволяет устанавливать ОС или загружать диагностические утилиты без физического доступа.
- Удалённая консоль — графический интерфейс, передающий изображение с видеокарты сервера (обычно через VNC или собственный протокол).
Аутентификация и безопасность
- Поддержка пользователей с разными уровнями доступа (администратор, оператор, пользователь).
- Аутентификация по паролю или через протокол RAKP (с поддержкой SHA-1, SHA-256 в современных реализациях).
- Шифрование сессий (AES-128, AES-256) для защиты от перехвата трафика.
Интерфейсы и протоколы
IPMI использует набор протоколов для взаимодействия между BMC, управляющими модулями и внешними системами:
- IPMB (I²C-based) — внутренняя шина для связи между BMC и другими компонентами (например, на шасси).
- KCS (Keyboard Controller Style) — интерфейс для доступа к BMC через системную шину (например, через порт 0xCA2/0xCA3 в x86-системах).
- SMIC (Server Management Interface Chip) — альтернативный интерфейс для доступа к BMC.
- BT (Block Transfer) — интерфейс для передачи больших блоков данных (например, для обновления прошивки).
- RMCP/RMCP+ — протоколы удалённого управления по сети (RMCP — для IPMI v1.5, RMCP+ — для v2.0 с шифрованием).
- LAN-интерфейс — стандартный Ethernet (обычно 100 Мбит/с или 1 Гбит/с), выделенный или разделяемый с основной системой.
Применение
IPMI широко используется в серверном оборудовании, системах хранения данных (NAS, SAN), сетевом оборудовании (коммутаторы, маршрутизаторы) и промышленных компьютерах. Основные сценарии применения:
- Удалённое администрирование — управление серверами в дата-центрах и удалённых офисах без физического доступа.
- Мониторинг и оповещение — автоматическое отслеживание состояния оборудования и отправка уведомлений (SNMP, email) при возникновении неисправностей.
- Автоматизация — интеграция с системами управления инфраструктурой (например, Ansible, Puppet) для автоматического включения/выключения серверов по расписанию.
- Диагностика — анализ системных журналов для выявления причин сбоев (например, перегрев, отказ вентилятора, сбой питания).
Критика и ограничения
Несмотря на широкое распространение, IPMI имеет ряд недостатков:
- Безопасность — многие реализации BMC содержат уязвимости (например, стандартные пароли, незашифрованные каналы, возможность удалённого выполнения кода). В 2019 году была обнаружена серия уязвимостей (CVE-2019-6260 и др.), затрагивающих BMC от нескольких производителей.
- Устаревшая архитектура — IPMI не поддерживает современные требования к шифрованию (например, обязательное использование TLS) и аутентификации (многофакторная аутентификация).
- Зависимость от производителя — реализации IPMI часто имеют проприетарные расширения, что затрудняет совместимость между разными вендорами.
- Производительность — BMC обычно имеет ограниченные вычислительные ресурсы, что может приводить к задержкам при обработке команд.
В ответ на эти недостатки были разработаны альтернативные стандарты, такие как Redfish (RESTful API на основе HTTPS) и IPMI over LAN с улучшенной безопасностью, которые постепенно вытесняют классический IPMI в новых серверных платформах.
Интересные факты
- Утилита
ipmitoolявляется де-факто стандартом для управления IPMI из командной строки в Linux и Windows. - Некоторые материнские платы для настольных ПК (например, от ASUS и Gigabyte) также имеют встроенный BMC, но он обычно ограничен базовыми функциями.
- В 2018 году исследователи из компании Eclypsium продемонстрировали возможность атаки на BMC через уязвимости в прошивке, что позволило получить полный контроль над сервером.
Источники
- Спецификация IPMI v2.0 (Intel, 2005)
- Документация утилиты ipmitool (проект SourceForge)
- Статья «IPMI: The Good, the Bad, and the Ugly» (Eclypsium, 2019)
- Материалы конференции Black Hat 2019: «Attacking BMCs»
- «Server Management with IPMI» (Red Hat, 2020)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →