Bmc bios что это

Обновлено: 06.07.2024

Обновим основную систему ввода/вывода с контроллера управления основной системной платами.

Как обновить BIOS?

После первоначального входа в BMC:

  1. Перейдите на вкладку Configuration.
  2. Выберитеобновление микропрограммы BMC.
  3. При выборе выберите файлы BMC.binи BIOS.cap.

Если вам нужна более подробная информация, см. раздел обновления встроенного ПО BIOS/ME (Management Engine) в Руководстве пользователя для Intel® Remote Management Module 4 (Intel® RMM4) и интегрированном интерфейсе BMC для серверных систем Intel® и серверных систем Intel® на базе микросхем Intel® 62X.

Вам нужна дополнительная помощь?

Оставьте отзыв

Отказ от ответственности

Содержание данной страницы представляет собой сочетание выполненного человеком и компьютерного перевода оригинального содержания на английском языке. Данная информация предоставляется для вашего удобства и в ознакомительных целях и не должна расцениваться как исключительная, либо безошибочная. При обнаружении каких-либо противоречий между версией данной страницы на английском языке и переводом, версия на английском языке будет иметь приоритет и контроль. Посмотреть английскую версию этой страницы.

Для работы технологий Intel может потребоваться специальное оборудование, ПО или активация услуг. // Ни один продукт или компонент не может обеспечить абсолютную защиту. // Ваши расходы и результаты могут отличаться. // Производительность зависит от вида использования, конфигурации и других факторов. // См. наши юридические уведомления и отказ от ответственности. // Корпорация Intel выступает за соблюдение прав человека и избегает причастности к их нарушению. См. Глобальные принципы защиты прав человека в корпорации Intel. Продукция и программное обеспечение Intel предназначены только для использования в приложениях, которые не приводят или не способствуют нарушению всемирно признанных прав человека.


Аббревиатура IPMI расшифровывается как Intelligent Platform Management Interface (интеллектуальный интерфейс управления платформой). Через IPMI можно удаленно подключиться к серверу и управлять его работой:

  • Проводить мониторинг физического состояния оборудования, например, проверять температуру отдельных составляющих системы, уровни напряжения, скорость вращения вентиляторов
  • Восстанавливать работоспособность сервера в автоматическом или ручном режиме (удаленная перезагрузка системы, включение/выключение питания, загрузка ISO-образов и обновление программного обеспечения)
  • Управлять периферийными устройствами
  • Вести журнал событий
  • Хранить информацию об используемом оборудовании

IPMI хорош тем, что перечисленные выше функции доступны вне зависимости от работы процессора, BIOS или операционной системы (ОС) управляемой платформы. Например, можно удаленно перезагрузить сервер, если зависла ОС, или поискать причину выхода из строя CPU в журнале системных событий. Управлять можно даже выключенным сервером ― достаточно того, что сервер подключен к электрической сети.

После того как сервер смонтировали и подключили к сети, инженеры Selectel настраивают BIOS и IPMI. Дальше можно выйти из шумной серверной и продолжить настраивать оборудование удаленно. Как только первоначальная настройка закончена, клиенты Selectel могут управлять работой выделенных серверов и серверов произвольной конфигурации через IPMI.

Историческая справка


Первую версию спецификации IPMI v1.0 разработали совместно компании Intel, Dell, NEC и Hewlett-Packard в 1998 году. На практике обнаружились уязвимости и недостатки, которые исправили в последующих версиях IPMI v1.5 и v2.0.

Спецификация IPMI стандартизирует интерфейс общения, а не конкретную реализацию в «железе», поэтому IPMI не требует использования специальных запатентованных устройств и определенных микроконтроллеров. Производители, придерживаясь спецификаций, разрабатывают собственное оборудование IPMI, встроенное в серверные платформы:
Производитель Технология на основе IPMI
Cisco Cisco IMC (Integrated Management Controller)
DELL iDRAC (Integrated Dell Remote Access Card)
HP iLO (Integrated Lights-Out)
IBM IMM (Integrated Management Module)
Lenovo IMM (Integrated Management Module)
Supermicro SIM (Supermicro Intelligent Management)

Компании устанавливают свои цены на предоставляемую технологию. Если стоимость реализации IPMI увеличивается, цена аренды сервера растет, так как напрямую зависит от стоимости расходников.

Решения производителей отличаются между собой:

  • Наглядностью информации о состоянии оборудования
  • Уникальным набором приложений для восстановления работоспособности сервера, если отказали какие-либо комплектующие
  • Возможностью собирать статистику по всем комплектующим сервера, в том числе подключенным через карты расширения PCI, NVM и т.д.
  • Использование технологии не только в серверном оборудовании, но и с обычными компьютерами через платы расширения PCI-Express

Хотя производители предоставляют измененный и доработанный IPMI, реализация его архитектуры остается схожей. Разберемся, из чего состоит технология, опираясь на официальную спецификацию компании Intel.

Базовые компоненты любого IPMI

Контроллеры управления

В центре архитектуры — «мозг» IPMI, микроконтроллер BMC (Baseboard Management Controller). Через него как раз и происходит удаленное управление сервером. По сути, BMC ― это отдельный компьютер со своим программным обеспечением и сетевым интерфейсом, который распаивают на материнской плате или подключают как плату расширения по шине PCI management bus.


BMC питается от дежурного напряжения материнской платы, то есть работает всегда, вне зависимости от состояния сервера.

К BMC можно подключить дополнительные контроллеры управления (Management Controllers, MCs), чтобы расширить возможности базового управления. Например, в то время как основная система управляется функциями BMC, MCs подключаются для мониторинга различных подсистем: резервных источников питания, RAID-накопителей, периферийных устройств.

MCs поставляются самостоятельными платами, отдельными от центрального BMC, поэтому их также называют Satellite Controllers. Дополнительных контроллеров может быть несколько, а вот центральный BMC — один.

К BMC контроллеры подключаются через интерфейс IPMB (Intelligent Platform Management Bus ― шина интеллектуального управления платформой). IPMB ― это шина на основе I2C (Inter-Integrated Circuit), по которой BMC перенаправляет команды управления к различным частям архитектуры:

  • Общается с дополнительными контроллерами (MCs)
  • Считывает данные сенсоров (Sensors)
  • Обращается к энергонезависимому хранилищу (Non-Volatile Storage)

Кроме передачи команд на BMC можно настроить автоматическое выполнение действий контроллером с помощью следующих механизмов:


Энергонезависимое хранилище

Энергонезависимое хранилище остается доступным даже при сбое CPU сервера, например, через локальную сеть; состоит из трех областей:

  • System Event Log (SEL) ― журнал системных событий
  • Sensor Data Record (SDR) Repository ― репозиторий, хранящий данные о сенсорах
  • Field Replaceable Units (FRUs) Info ― инвентарная информация о модулях системы

К реализации SEL есть обязательные требования:

  • SEL хранит в памяти не меньше 16 событий
  • К информации, хранящейся в SEL, можно получить доступ вне зависимости от доступа к BMC и состояния управляемой платформы

Записи SDR — это данные о типах и количестве сенсоров, их возможности генерировать события, типы показаний. SDR также содержат записи о количестве и типах устройств, подключенных к IPMB. Записи SDR хранятся в области памяти, которая называется SDR Repository (Sensor Data Records Repository).

Записи FRU содержат информацию о серийных номерах и моделях деталей различных модулей системы — процессора, платы памяти, платы ввода-вывода, контроллерах управления.

Информация FRU может предоставляться через MC (командами IPMI) либо через доступ к чипам энергонезависимой памяти SEEPROM (Serial Electrically Erasable Programmable Read Only Memory), подключенным по шине Private Management Bus. По этой шине контроллеры общаются через низкоуровневые I2C-команды с устройствами, которые не поддерживают IPMI-команды.

Практическое применение


Допустим, клиент жалуется на зависания сервера, но в логах операционной системы всё в порядке. Смотрим SEL ― видим ошибки по одной из планок оперативной памяти с указанием информации о слоте, в котором она находится. Меняем ― сервер начинает работать как часы.

Выше мы разобрали основные модули архитектуры IPMI. Теперь обратимся к структуре передаваемых команд и посмотрим, по каким интерфейсам происходит удаленное подключение.

Структура IPMI-команд

  • BMC ― MCs, Sensors, Storage (IPMB)
  • BMC ― управляемая платформа (System Interface)
  • BMC ― удаленный администратор (LAN, Serial Interface)
  • Serial ↔ IPMB
  • Serial ↔ System Interface
  • LAN ↔ IPMB
  • LAN ↔ System Interface
  • Serial ↔ PCI Management Bus
  • LAN ↔ PCI Management Bus
  • Другие комбинации, в том числе Serial ↔ LAN

Интерфейсы удаленного доступа

В начальной версии IPMI удаленная консоль подключалась к модулю BMC через последовательный интерфейс (Serial Interface). Спецификация IPMI v2.0 базируется на использовании сетевого интерфейса (LAN Interface).


Последовательный интерфейс для подключения удаленной консоли к BMC уже не используется, однако он нужен для реализации двух функций:

  • Serial Port Sharing
  • Serial-over-LAN (SoL)

Serial-over-LAN нужен для взаимодействия с компонентами системы, которые понимают только последовательный интерфейс общения. Еще можно из консоли сервера посылать команды напрямую к устройствам сервера (чипам, картам, дискам и так далее). SoL реализован так, чтобы работать совместно с функцией Serial Port Sharing.

Сеанс и аутентификация


  1. Удаленная консоль запрашивает данные по аутентификации у BMC
  2. BMC посылает ответ о поддерживаемых типах аутентификации (none, password, алгоритмы MD2 и MD5 и т.д.)
  3. Удаленная консоль посылает команду о выбранном типе аутентификации и отправляет логин пользователя
  4. Если пользователь имеет привилегии доступа к каналу, BMC посылает ответ, содержащий ID сеанса. Благодаря назначению ID, несколько сеансов могут работать одновременно на одном канале (согласно требованиям спецификации ― не менее четырех одновременных сессий)
  5. Удаленная консоль посылает запрос активации сеанса. Запрос содержит ID сеанса и аутентификационную информацию (имя пользователя, пароль, ключи ― зависит от выбранного типа аутентификации)
  6. BMC верифицирует информацию о пользователе, утверждает ID сеанса и посылает ответ об активации

Доступ к BMC можно заблокировать, отправив одновременно множество запросов об активации сеанса, тогда все ресурсы будут использоваться для отслеживания сессий, требующих активации. Чтобы предотвратить возможную атаку, в реализации BMC рекомендуется применять алгоритм LRU (Last Recently Used). Алгоритм утверждает ID сеанса для наиболее раннего запроса активации сеанса. Например, удаленная консоль запускается через браузер в noVNC-сессии. Если открыть несколько вкладок с запущенными сессиями, текстовый ввод будет доступен в наиболее ранней открытой вкладке.

Когда IPMI становится недоступен

IPMI помогает восстановить работоспособность сервера при его сбое. Однако может случиться так, что становится недоступна система удаленного управления. Сбои в работе IPMI можно разделить на четыре категории:

  • На уровне сети. «Битые» порты, нерабочее оборудование, дефект кабеля, плохо обжатая витая пара
  • На уровне ПО. Баг системы, зависание модуля BMC, необходимость обновить прошивку модуля
  • На уровне «железа». Перегрев, выход из строя критичных комплектующих (память, процессор), дефекты архитектуры системы
  • На уровне питания. Отключение питания BMC или проблемы с блоком питания сервера

IPMI на практике

Управлять сервером по IPMI можно через веб-браузер, утилиты, предоставляемые производителями, и утилиты с открытым исходным кодом.

Веб-интерфейс у каждой реализации IPMI свой, но принцип доступа остается одинаковым:

  1. Ввести в адресную строку IP-адрес порта BMC
  2. Ввести логин и пароль. Иногда эта информация указана непосредственно на оборудовании


Возможности веб-интерфейса также реализованы в графической утилите Supermicro IPMIView:


Чтобы управлять оборудованием через Linux-консоль, устанавливается соответствующая утилита (например, Ipmitool для локального и удаленного управления или IPMICFG для локального). Далее при помощи консольных команд добавляется IPMI-устройство и конфигурируется BMC.


Клиентам Selectel доступен IPMI для выделенных серверов и серверов произвольной конфигурации. IPMI реализован в виде KVM-консоли, которая запускается в noVNC-сессии через панель управления. Для этого в карточке с информацией о сервере надо нажать на значок консоли в правом верхнем углу:


Консоль открывается в браузере и подстраивается под размер экрана. При желании консоль можно использовать даже через телефон или планшет.

Сессия прерывается, если выйти из панели.


Заключение

IPMI ― это полностью автономный компонент серверной платформы, который не зависит ни от операционной системы, ни от BIOS, ни от CPU сервера.

Благодаря IPMI, затраты на обслуживание серверных систем сокращаются, а жизнь системных администраторов становится проще. Нет необходимости постоянного присутствия рядом с оборудованием ― его работа контролируется удаленно по сети.

В этой статье мы рассмотрели основные компоненты IPMI. Однако детали технологии обширны. Талантливые разработчики, опираясь на спецификацию, могут создавать свое IPMI-оборудование и open-source инструменты, попутно устраняя недостатки текущей спецификации и открывая новые возможности удаленного управления.


История от Bloomberg о том, что на материнских платах якобы были установлены некие импланты [Китайцы использовали микрочип, чтобы контролировать американские компьютеры], не прошла незамеченной. После неё многие люди делились идеями по поводу возможности создания подобных имплантов (их предполагаемого размера, возможностей или способа их обнаружения).

Через несколько дней журнал Bloomberg выпустил статью с дополнительными доказательствами. Вот что конкретно подогрело наш интерес:


Существуют способы взаимодействия с сетевой картой прямо с материнской платы. Несколько людей указали на то, что можно поиграться с BMC (Baseboard Management Controller – компонент, разрешающий доступ к серверу помимо основного канала), что позволит импланту контролировать BMC и получать доступ к сетевой карте. Но как это работает на практике? Давайте посмотрим, сможем ли мы это воспроизвести.

Начальная позиция

Посмотрим на наличие возможных интерфейсов между NIC (сетевой платой) и BMC. Один из основных протоколов для работы по выделенному каналу – это интеллектуальный интерфейс управления платформой IPMI.

Википедия говорит, что IPMI — «интеллектуальный интерфейс управления платформой, предназначенный для автономного мониторинга и управления функциями, встроенными непосредственно в аппаратное и микропрограммное обеспечения серверных платформ. Ключевые характеристики IPMI — мониторинг, восстановление функций управления, журналирование и инвентаризация, которые доступны независимо от процессора, BIOS'a и операционной системы. Функции управления платформой могут быть доступны, даже если система находится в выключенном состоянии». Весьма похоже на то, что нам нужно.

На следующей блок-схеме показан возможный путь реализации проекта:


IPMI на самом деле определяет два Sideband-канала для NIC: SMBus и NC-SI. NC-SI – это современная замена SMBus, поддерживающая увеличенную скорость передачи данных и другие новые возможности. Проблема в том, что ей требуется больше сигналов (порядка 10), и в её работу гораздо сложнее вмешаться в случае, когда мы работаем с имплантом. Так что пока остановимся на SMBus.

SMBus

SMBus (System Management Bus) — последовательный протокол обмена данными для устройств питания. Односторонняя простая двухпроводная шина, обеспечивающая несложные коммуникации. Чаще всего используется в компьютерах для связи материнской платы с источником питания и отправки инструкций вида вкл/выкл. Основан на шине I 2 C, обычно использующейся в микроконтроллерах. Интерфейсу нужно всего два сигнала (тактовая частота и данные), и третий сигнал — прерывание. Идеально подходящий для игр с имплантом протокол.

Первый контакт

Приходится проявлять смекалку, не имея доступа к материнской плате с BMC. Изучая технические характеристики серверных материнок, мы обнаружили, что некоторые из них используют чип Intel 82574L. Он, согласно документации, обеспечивает «SMBus advanced pass-through interface» – как раз то, что нужно. А что лучше всего, он бывает в формате карт PCI-E.

Доступ к SMBus

Мы сходили в магазин, и теперь у нас есть карточки Intel EXPI9301CTBLK с чипом 82574L. Что теперь?

В документации можно отследить SMB_DAT и SMB_ALRT_N. К счастью, все они оказались доступными на контактных площадках. Вроде бы всё достаточно легко.



NIC PCB. Слева вверху – EEPROM, справа вверху — коннектор для SMBus [ALRT|CLK|DAT]. Обратите внимание, что R39 и R40 отпаяны, что запрещает доступ к SMBus для коннектора PCIe.

Мы подключили зонд I 2 C и просканировали SMBus, но ничего полезного не считали. Документация говорит, что SMBus включается только при установке определённого битового регистра. Это значение загружается с EEPROM. Пришло время копнуть глубже.

Включаем доступ к SMBus

Нам снова помогает документация. Доступ к SMBus определяется значением регистра, загружаемого с NIC EEPROM. К счастью, EEPROM можно прочесть при помощи flashrom. Сбросив содержимое EEPROM, мы можем проанализировать и изменить значения:

Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Winbond flash chip "W25X40" (512 kB, SPI) on buspirate_spi.
Reading flash. done.

Судя по NVM map (глава 6.1 документации), видно, что нам надо изменить два значения:

  • Init Control Word 2[MNGM] (Datasheet chapter 6.1.1.6)
  • Compatibility[ASF SMBus Connected] (Datasheet chapter 6.1.2.1.1)
  • Compatibility[SMBus Connected] (Datasheet chapter 6.1.2.1.1)

После этого нам надо ещё разобраться со значением Checksum. В главе 6.1.2.11 указано, что сумма всех слов в диапазоне [0x00-0x40] должна равняться 0xBABA. Немного Python поможет нам подсчитать правильную контрольную сумму:

import struct
data = open('/tmp/flash.mod', 'rb').read()
tot = 0
for i in range(0x3f):
tot = (tot + struct.unpack('<H',data[2*i:(2*i)+2])[0]) & 0xffff

И вот, наконец, все наши изменения для EEPROM:

< 00000000: 6805 ca89 b22e 2004 46f7 8010 ffff ffff h. .F.
> 00000000: 6805 ca89 b22e 3014 46f7 8010 ffff ffff h. 0.F.
< 00000010: 69e4 0881 6b02 1fa0 8680 d310 ffff 5a9c i. k. Z.
> 00000010: 69e4 0881 6b02 1fa0 8680 d310 ffff 5adc i. k. Z.

< 00000070: ffff ffff ffff ffff ffff 3001 ffff 0bef . 0.
> 00000070: ffff ffff ffff ffff ffff 3001 ffff fb9e . 0.

После внесения изменений и прошивки EEPROM мы подсоединили I 2 C зонд и:

i2c1> scan
Device found at address 0x49
i2c1>

Адрес I 2 C кодируется в семи битах, требуемый нам адрес получается, как 0x49 << 1 = 0x92.

Теперь у нас есть рабочая схема для нашего импланта. Мы можем отправлять команды в NIC:


Получение информации

Как вы могли догадаться, мы продолжили читать документацию и отправлять специально подготовленные команды на NIC для проверки того, что всё работает, как ожидалось.

[START] [@SLAVE] [CMD] ( [START] [@SLAVE] [READ_DATA] ) [STOP]

[START] и [STOP] – это условия START и STOP, определяемые протоколом I 2 C.

К примеру, команда на чтение MAC-адреса (описанная в главе 8.8.2.3) будет 0xD4. Отправляем команду в SMBus в режиме I 2 C:

[START] [0x92] [0xD4] [START] [0x92] [read 8 bytes] [STOP]

При переводе в команды Hydrabus это будет:

i2c1> [ 0x92 0xd4 [ 0x92 hd:2 hd:6 ]
I2C START
WRITE: 0x92 ACK 0xD4 ACK <== [NIC address] [command]
I2C START <== Switch state
WRITE: 0x92 ACK <== [NIC address]
07 D4 | .. <== Read [length] [header]
68 05 CA 89 B2 2E | h. <== Read MAC address bytes
NACK
I2C STOP

И, да, мы получаем наш MAC-адрес!

Делаем имплант

Теперь, зная, как можно общаться с NIC, посмотрим, как можно использовать этот канал для кражи сетевого трафика и отправки данных по сети. В главе 8 документации описано всё, что нужно для этого.

Отправка пакетов

Описана в главах 8.6 и 8.8.1. Мы можем просто создать фрейм Ethernet при помощи команд. Вот пример скрипта для Hydrabus или Bus Pirate для отправки пакета:

import serial
import struct
from scapy.all import *

После выполнения скрипта можно увидеть пакет, идущий от машины с имплантом, и, что самое интересное, сам сервер вообще не видит этого пакета:



Tcpdump с машины атакующего слева, сервера – справа

Чтение пакетов

Фильтрация

Чтобы узнать, какие фреймы должны пойти в SMBus, NIC использует управляющие фильтры. Они сопоставляют трафик из сети, и либо перенаправляют его на PCIe, либо на SMBus, либо одновременно и туда и туда. С нашей точки зрения это даёт нам большую гибкость:

  • Можно отслеживать трафик, поставив фильтр, который будет его проверять и перенаправлять на PCIe и SMBus.
  • Можно заставить трафик исчезнуть, направив его только на SMBus.
  • Можно создать скрытый канал, который не будет виден серверу с имплантом.
  • UDP/TCP port
  • VLAN
  • IPv4 – IPv6
  • MAC address

Доступно семь независимых фильтров MDEF[0:6], и каждый из них можно настроить на перенаправление соответствующего трафика на PCIe поверх SMBus при помощи регистра MANC2H (подробности в главе 8.4.3).

Реализация

Настроить всё правильно оказалось довольно сложно, мы пробовали множество различных комбинаций, чтобы заставить фильтр работать. К счастью, примечание к приложению от Intel дало нам больше деталей по поводу запуска фильтров нужным нам способом.

Используя наш I 2 C-зонд, мы можем настроить всё это четырьмя командами:

// Глобальный запрет фильтров
[ 0x92 0xca 0x01 0x40 ]
// Настроить MDEF[0] на получение фреймов, идущих к UDP/664 и UDP/623
[ 0x92 0xcc 0x06 0x61 0x00 0x00 0x00 0x0c 0x00 ]
// Настроить MANC2H на запрет перенаправления к ОС
[ 0x92 0xcc 0x05 0x0a 0x00 0x00 0x00 0x00 ]
// Включить фильтрацию (SMBus alerting, status reporting / Enable)
[ 0x92 0xca 0x01 0x45 ]

Как описано в главе 8.8.1.3, необходимо установить несколько битов для того, чтобы разрешить получение данных и для отправки фреймов обратно на наш имплант. Мы выбрали SMBus alert, поскольку другие модели позволяют сетевой карте осуществлять асинхронные запросы к SMBus (детали в главе 8.4.5).

Чтение фреймов

Поскольку мы использовали метод SMBus alert, нам нужно было ожидать отключения сигнала SMB_ALRT_N перед отправкой команды Receive TCO Packet. Если бы мы ждали слишком долго, пакет был бы отвергнут NIC.

Чтобы просто проиллюстрировать схему, мы будем отправлять фреймы периодически и отправлять команды на чтение – просто, чтобы подтвердить, что этот принцип работает. Схема выглядит так:

  • У сервера с имплантом установлены фильтры, отслеживающие трафик с UDP / 623 (глава 3.6.1.2).
  • Имплант симулируется при помощи Hydrabus.
  • Другой сервер отправляет пакеты, попадающие под фильтр, при помощи скрипта Scapy:

Получается нечто интересное:


Слева SMBus читает фрейм, данные фрейма показаны внизу. Справа tcpdump, работающий на сервере с имплантом, не показывает входящих фреймов.

Ретрансляция фреймов

Меняя регистр MANC2H, возможно сделать так, чтобы трафик, который отправляется на SMBus и PCIe, корректно отображался на сервере. К примеру, давайте создадим перехватывающий фильтр, реагирующий на трафик UDP/161 (SNMP) и отправляющий его на SMBus и PCIe:

// Глобальный запрет фильтров
[ 0x92 0xca 0x01 0x40 ]
// Создать флекс-фильтр 0 на порту 161 (0xa1)
[ 0x92 0xcc 0x04 0x63 0x00 0x00 0xa1 ]
// Настроить MDEF[0] на получение трафика, совпадающего с флекс-фильтром 0
[ 0x92 0xcc 0x06 0x61 0x00 0x00 0x00 0x10 0x00 ]
// Настроить MANC2H на разрешение перенаправления трафика MDEF[0] на PCIe
[ 0x92 0xcc 0x05 0x0a 0x00 0x00 0x00 0x00 ]
// Включить фильтрацию (SMBus alerting, status reporting / Enable)
[ 0x92 0xca 0x01 0x45 ]



Вверху – перехваченный SNMP-запрос с импланта. Внизу — SNMP-запрос дошёл до сервера.

Заключения

Мы описали возможный метод внедрения небольшого и недорогого микроконтроллера в качестве импланта на уровне NIC. Такому импланту нужны, по меньшей мере, четыре контакта (Vcc, GND, CLK, DAT), и он может управлять картой сервера. Среди его возможностей:

  • Прослушивание входящего сетевого трафика на сервер.
  • Получение команд из сети без ведома сервера.
  • Передача данных по сети без ведома сервера.

Однако в реальной жизни доступ у такого импланта был бы только к SMBus. В зависимости от схемы материнской платы это устройство может быть единственным из доступных, и тогда взаимодействие с ОС сервера будет невозможно. В случае, когда требуется полный контроль над ОС, лучше всего будет изменить код BMC, поскольку у него и так уже есть доступ ко всем интересным шинам, и он не оставляет видимых следов на материнке.

Ещё один недостаток такого импланта состоит в том, что он может передавать данные на скорости порядка 100 Кб/с, чего недостаточно для полного изучения трафика. Кроме того, имплант способен перехватывать только трафик, приходящий из сети. В результате данное решение кажется неэффективным по сравнению с теми усилиями, которые требуются для его внедрения в оборудование цели.

Выполните следующие действия для конфигурации для перенаправления BMC и SOL.

Конфигурация и версия BIOS

  1. Перейдите к конфигурации управления сервером.

User-added image

User-added image

  1. Настройте настройки протокола Интернета (IP) в соответствии с настройками вашей сети.

User-added image

  1. При необходимости перенаправление SOL перейдите к разделу Переадресация консоли.

User-added image

  1. Убедитесь, что переадресация консоли включена.

User-added image

  1. Нажмите F10, чтобы сохранить настройки в BIOS и перезагрузить сервер.
  2. Откройте браузер и запустите веб-консоль BMC.

- Вы должны установить Java. Инструкции по установке приведены в конце этого документа.

  1. На удаленном управлении вы можете выбрать любой из этих вариантов: Запуск SOL или клавиатуры, перенаправление видео и мыши (KVM)/перенаправление консоли.

User-added image

  1. В настоящее время вы открываете консоль SOL, но это тот же процесс для BMC:

User-added image

  1. После отвода всплывающее меню выберите Keep (Сохранить).

User-added image


Приложение демонстрирует процесс запуска:

  1. Используйте учетные данные, созданные пользователями, настройками контроллера BMC:


Доступ предоставляется успешно:

Ниже приведено сравнение вида SOL и консоли KVM:

Мы рекомендуем использовать перенаправление BMC KVM в качестве главного параметра, а SOL как вторичный.

Добавление и изменение привилегий пользователей

Предоставить доступ к IPMI.

Процедура Java

В системе должна быть установлена Java. Вы можете загрузить для запуска расширения.

Читайте также: