Как использовать интерфейс IPMI

Последнее изменение: Wednesday November 29th, 2023

Этот материал предоставляет обзор, руководства и примеры для интерфейса IPMI.

Введение

IPMI (Intelligent Platform Management Interface) – интерфейс для управления и администрирования серверов. Он реализуется с помощью BMC (Baseboard Management Controller) материнской платы. Вы можете получить доступ к этому интерфейсу с помощью программы командной строки (например, IPMItool) или веб-интерфейса, с помощью которого можно управлять сервером. Вы можете выполнять сброс, запуск KVM и читать вывод датчиков материнской платы.

Обзор модели

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

  • Intel S1200V3RPL(-SSD) – BMC включает IPMI (KVM-over-IP как платный модуль по желанию)
  • Supermicro X9SRi-F(-SSD) – BMC включает IPMI и KVM
  • Asus Z10PA-U8(-SSD) – платный дополнительный модуль BMC с IPMI/KVM

Активация сетевого интерфейса

С интегрированным BMC конфигурация сети отключена по умолчанию. Чтобы использовать функции IPMI и Serial over LAN и/или KVM, вам потребуется заказать дополнительный IP-адрес (за который взимается небольшая плата).

Важно: Необходимо указать MAC-адрес BMC при заказе дополнительного IP-адреса.

MAC-адрес можно узнать с помощью IPMItool. После выделения вам IP-адреса, вы можете статически настроить его или присвоить BMC через DHCP.

Инструкции по безопасности

Если BMC сделан доступным путем назначения ему общедоступного IP-адреса, его можно атаковать и, при определенных обстоятельствах, злоупотребить, что может привести к возможной компрометации сервера. Поэтому вы должны принимать меры противодействия наиболее известным сценариям атак. Чтобы узнать больше об этих атаках, ознакомьтесь с коллекцией инструментов для внедрения Metasploit (https://community.rapid7.com/community/metasploit/blog/2013/07/02/a-penetration-testers-guide-to-ipmi).

Материнская плата, используемая в модели Intel S1200V3RPL, не уязвима для описанных в ссылке вариантов, так как некоторые механизмы защиты уже установлены по умолчанию. В общем случае следует изменить пароли по умолчанию и отключить или переименовать уже существующих пользователей. Анонимный доступ отключен по умолчанию на всех моделях. См. ниже информацию об остальных векторах атак и о их предотвращении.

Текущие угрозы

Уязвимости

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

Supermicro X9SRi-F

Для материнской платы модели Supermicro X9SRi-F была обнаружена уязвимость в версии 2.14 прошивки, позволяющая читать имена пользователей и пароли в виде обычного текста. Если у вашего сервера установлена эта прошивка, вам нужно обновить прошивку перед активацией сетевого интерфейса.

Вы можете узнать версию прошивки с помощью impitool:

ipmitool mc info
...
Firmware Revision         : 3.50

Если вы уже активировали сеть IPMI, вы можете выполнить обновление через веб-интерфейс.

Asus Z10PA-U8

Дополнительный модуль KVM для Asus Z10PA-U8 использует небезопасные протоколы SSL и устаревший SSL-сертификат в версиях до 1.11.

Поэтому, в зависимости от используемого вами браузера, может не быть доступных безопасных (HTTPS) соединений до тех пор, пока вы не выполните обновление.

Вы можете загрузить обновление через веб-интерфейс.

Атаки с использованием Cipher 0

Cipher 0 означает, что шифрование не используется, и, таким образом, любая аутентификация обходится. По умолчанию Cipher 0 активируется только на материнской плате для обратного вызова, что означает, что вход в систему невозможен; вы можете только получить ответ, существует ли BMC или нет. Тем не менее, чтобы гарантировать, что злоупотребление невозможно, Cipher 0 отключен по умолчанию при поставке сервера и, следовательно, больше не может быть использован.

Передача хеша пароля

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

Вот несколько советов по созданию безопасного пароля:

Если вам нужно, чтобы пароль был легко запоминаемым, имеет смысл объединить несколько слов, которые не имеют друг к другу отношения (http://correcthorsebatterystaple.net/). Это безопасно благодаря длине и при этом легко запоминается.

Если вы планируете хранить пароль в базе данных и вам не нужно его запоминать, вы можете использовать достаточно случайные цифры и буквы в разумной длине (>30 символов), чтобы создать надежный пароль.

Отражение SNMP

Некоторые модули IPMI (например, ASMB8-iKVM в моделях Asus Z10PA-U8) позволяют выполнять запросы через SNMP. Поэтому небольшой запрос может вызвать потерю большого объема данных, если запрос от исходного адреса злоупотребляется в атаке. Если вы используете SNMP, убедитесь использовать надежный пароль (это означает использование SNMP Community String). Если вы не используете SNMP, вы можете использовать брандмауэр для блокировки этого порта на модулях ASMB8-iKVM моделей Asus Z10PA-U8. Вы можете использовать веб-интерфейс для выполнения обеих опций.

Объяснение отдельных функций

Веб-интерфейс

Вы можете использовать веб-интерфейс для просмотра данных из BMC легко и безопасно. Здесь отображаются все датчики, можно добавлять и изменять пользователей, настраивать сеть, и, если есть KVM, можно его запустить.

Информация о системе: На этой странице вы можете найти информацию о вашем сервере (версия BIOS, текущий статус, информация о CPU и RAM), а также увидеть пользователей, которые в настоящее время вошли в систему.

Здоровье сервера: Здесь вы можете увидеть вывод отдельных датчиков на материнской плате и в CPU. Если есть проблемы с температурой, вы можете их обнаружить здесь. Кроме того, здесь есть журнал событий. В этом журнале вы можете найти системные события, такие как критические температуры, перезагрузки и замедление CPU. Это может помочь вам диагностировать потенциальную проблему. Страница Статистика питания не работает с этой моделью, потому что блок питания не имеет необходимого интерфейса PMBUS.

Конфигурация: Здесь вы можете настроить множество параметров BMC. Обычно вам не нужно изменять настройки сети, потому что конфигурация IPv4 устанавливается автоматически через DHCP. Вы можете вручную настроить IPv6. Здесь вы также можете добавлять новых пользователей, изменять и удалять существующих. Кроме того, опция Оповещения позволяет отправлять уведомления через SNMP или по электронной почте, когда на сервере происходят определенные события. Это может быть полезно для мониторинга сервера.

Удаленное управление: На этой странице вы можете использовать функциональность KVM BMC. Однако опция Перенаправление консоли доступна только при активации дополнительного модуля. Вы всегда можете использовать Управление питанием сервера. Это позволяет отправлять аппаратные и программные сбросы серверу; вы также можете выключить его или включить.

Конфигурация

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

Пример для Debian:

Установка с помощью менеджера пакетов:

apt install ipmitool

Чтобы ipmitool правильно функционировал, вы должны загрузить следующие модули через modprobe:

modprobe ipmi_devintf
modprobe ipmi_si

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

ipmitool sensor list

Пользователи

Вы можете создавать несколько пользователей с разными правами в BMC. После создания нового пользователя с административными правами с помощью ipmitool, вы можете управлять пользователями через веб-интерфейс. Существует 4 разных уровня прав/разрешений:

  • Обратный вызов (1): Может только инициировать обратный вызов
  • Пользователь (2): Может отправлять запросы только для чтения, но не может изменять конфигурационные файлы
  • Оператор (3): Может изменять все конфигурации, кроме отключения канала и изменения прав
  • Администратор (4): Может изменять все конфигурации

Обычно уже существует один или несколько пользователей. Вы можете получить обзор существующих идентификаторов пользователей и входов в систему с помощью:

ipmitool user list 1

В моделях Supermicro X9SRi-F уже существует активный пользователь с правами администратора:

ID  Name             Callin  Link Auth  IPMI Msg   Channel Priv Limit
2   ADMIN            false   false      true       ADMINISTRATOR

В BMC/KVM-модулях моделей Asus Z10PA-U8 есть два активных пользователя с правами администратора:

ID  Name             Callin  Link Auth  IPMI Msg   Channel Priv Limit
1                    false   false      true       ADMINISTRATOR
2   admin            false   false      true       ADMINISTRATOR

В моделях Intel S1200V3RPL есть 5 стандартных неактивных пользователей. Вы можете изменить их все, кроме первого.

ID  Name             Callin  Link Auth  IPMI Msg   Channel Priv Limit
1                    true    false      true       ADMINISTRATOR
2   root             false   true       true       ADMINISTRATOR
3   test1            true    false      true       ADMINISTRATOR
4   test2            true    false      true       ADMINISTRATOR
5   test3            true    false      true       ADMINISTRATOR

Вы должны деактивировать пользователя root (или ADMIN) и, если это возможно, переименовать его после создания пользовательского пользователя и перед активацией сетевой конфигурации.

Измените имя пользователя с помощью ipmitool:

ipmitool user set name 2 john-doe

Чтобы создать нового пользователя, просто присвойте ранее неиспользованный идентификатор имени. Процедура здесь идентична изменению логина пользователя. Вы можете удалить идентификаторы только изменив настройки BMC.

Создайте нового пользователя:

ipmitool user set name 6 max+meier

После этого установите пароль:

ipmitool user set password 6 Correct-Battery-Horse-Staple

Теперь активируйте доступ для этого пользователя:

ipmitool channel setaccess 1 6 link=on ipmi=on callin=on privilege=4

Активируйте самого пользователя:

ipmitool user enable 6

Чтобы изменить пароль пользователя, просто введите следующую команду:

ipmitool user set password 6 Battery+Staple-Horse$Correct

Наконец, вы можете отключить пользователя root по умолчанию:

ipmitool user disable 2

Сеть

Для того чтобы сделать BMC доступным через интернет, вам нужно заказать для него дополнительный IP-адрес через Robot. Этот IP-адрес стоит небольшую плату. Вы можете настроить IPv4 для BMC либо вручную, либо через DHCP, используя ipmitool. Вы можете внести изменения в эту конфигурацию, используя веб-интерфейс, перейдя в раздел Configuration / IPv4 Network. В настоящее время вы не можете использовать IPv6. Конфигурация с IPv6 станет доступной позже в веб-интерфейсе.

Вы можете установить начальную конфигурацию, используя ipmitool. Соответствующий канал IPMI зависит от материнской платы и интерфейса, который вы хотите настроить.

Общий LAN-порт основного IP-адреса:

  • Intel S1200V3RPL и Supermicro X9SRi-F: Канал 1
  • Asus Z10PA-U8: Канал 8

Для отображения текущей конфигурации и MAC-адреса BMC используйте следующую команду:

  • Intel S1200V3RPL и Supermicro X9SRi-F:
  • ipmitool lan print 1
  • Asus Z10PA-U8:
  • ipmitool lan print 8

Как показано выше, используйте set 8, а не set 1, для всех команд для моделей Asus Z10PA-U8.

Для получения IP-адреса через DHCP используйте следующую команду:

ipmitool lan set 1 ipsrc dhcp

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

ipmitool lan set 1 ipsrc static

Для установки IP-адреса введите:

ipmitool lan set 1 ipaddr <IP-адрес>

Для установки маски подсети введите:

ipmitool lan set 1 netmask <маска подсети>

Для установки IP-адреса шлюза введите:

ipmitool lan set 1 defgw ipaddr <IP-адрес шлюза>

Serial over LAN

Для активации SOL (Serial over LAN) введите следующую команду:

ipmitool -C 3 -I lanplus -H <IP-адрес> -U <пользователь> -P <пароль> sol activate

Использование криптосьюта 3 обязательно (если это не установлено по умолчанию), потому что в противном случае связь через LANplus невозможна.

Если появляется следующее сообщение об ошибке, вам нужно активировать SOL для пользователя:

ipmitool -C 3 -I lanplus -H <IP-адрес> -U <пользователь> -P <пароль> sol activate
Info: SOL payload disabled
ipmitool -C 3 -I lanplus -H <IP-адрес> -U <пользователь> -P <пароль> sol payload enable <канал> <ID пользователя>

После этого вы сможете видеть вывод BIOS. Для доступа к загрузчику и/или загруженной системе требуются дополнительные настройки.

GRUB2

Для GRUB2 просто измените некоторые строки в файле /etc/default/grub в соответствии с следующими параметрами и пересоздайте настройки.

С Supermicro X9SRi-F консоль находится на ttyS2/unit=2. С Asus Z10PA-U8 — на ttyS1/unit=1. А с Intel S1200V3RPL — на ttyS0/unit=0. ВАЖНО: Вы должны установить скорость передачи 57600 для Asus Z10PA-U8 и 115200 для всех других моделей.

Intel S1200V3RPL

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset console=tty0 console=ttyS0,115200n8"
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"

Asus Z10PA-U8

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset console=tty0 console=ttyS2,115200n8"
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=2 --word=8 --parity=no --stop=1"

Asus Z10PA-U8

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset console=tty0 console=ttyS1,57600n8"
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=57600 --unit=1 --word=8 --parity=no --stop=1"

GRUB (grub-legacy)

Для GRUB1 (grub-legacy) добавьте следующие строки в файл /boot/grub/menu.lst или /boot/grub/grub.conf (для CentOS):

Intel S1200V3RPL

serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=5 serial console

Supermicro X9SRi-F

serial --unit=2 --speed=57600 --word=8 --parity=no --stop=1
terminal --timeout=5 serial console

Asus Z10PA-U8

serial --unit=1 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=5 serial console

Также вам нужно добавить тот же последовательный порт в параметры загрузки ядра. Для Intel S1200V3RPL это ttyS0, для Asus Z10PA-U8 — ttyS1, для Supermicro X9SRi-F — ttyS2.

console=tty0 console=ttyS0,115200n8

Это указывает ядру выводить информацию на первый последовательный порт. Изменение GRUB_TERMINAL на serial означает, что любой ввод/вывод перенаправляется на последовательный порт. Локальный экран больше не будет отображать меню загрузки, и поэтому вы не сможете выбирать запись для загрузки через KVM Console или KVM. После перезагрузки вывод будет отправляться параллельно как на локальный экран, так и на последовательный порт.

После этого вам нужно настроить терминал для последовательного порта в вашей системе.

Ubuntu

Создайте файл /etc/init/ttyS0.conf с следующим содержанием (или альтернативно ttyS2.conf с ttyS2 и скоростью передачи 115200 для моделей Supermicro X9SRi-F или ttyS1.conf с ttyS1 и скоростью передачи 57600 для моделей Asus Z10PA-U8):

# ttyS0 - getty
#
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /sbin/getty -L ttyS0 115200 vt100

После этого вы можете активировать терминал, введя start ttyS0.

CentOS

В CentOS конфигурация аналогична Ubuntu. Однако /etc/init/serial.conf автоматически запускает getty на последовательном порту, который добавляет порт в /etc/securetty. Поэтому вам просто нужно настроить последовательную консоль в grub.conf и добавить соответствующий параметр ядра.

Debian / OpenSuSE / Fedora

Для Debian, OpenSuSE и других дистрибутивов, таких как Fedora, использующих systemd и GRUB2, просто измените /etc/default/grub соответственно и обновите конфигурацию, используя grub2-mkconfig. На следующем запуске systemd автоматически начнет использовать последовательный порт GRUB2.

Serial Console

Теперь вы увидите быстрый вход в систему, если подключитесь через ipmitool:

ipmitool -C 3 -I lanplus -H <ipaddr> -U <user> -P <pass> sol activate
[SOL Session operational.  Use ~? for help]

Debian GNU/Linux 7 Debian-70-wheezy-64-minimal ttyS0

Debian-70-wheezy-64-minimal login:
Was this article helpful?
Просмотры: 584

10 лет с BeeHosting!
Отмечаем скидками до 70% на все услуги
+ бесплатная миграция сайта.

Beehosting.pro сайт использует файлы «куки»

Мы используем файлы cookie, чтобы анализировать трафик, подбирать для вас подходящий контент и рекламу, а также дать вам возможность делиться информацией в социальных сетях. Мы передаем информацию о ваших действиях на сайте партнерам Google: социальным сетям и компаниям, занимающимся рекламой и веб-аналитикой. Наши партнеры могут комбинировать эти сведения с предоставленной вами информацией, а также данными, которые они получили при использовании вами их сервисов.

Меню