Що таке IPMI? Переваги і недоліки? IPMI, KVM-over-LAN, virtual media в серверах Supermicro - віддалене управління і моніторинг Як виглядає на серверах IPMI-порт

Не так давно, мені вдалося попрацювати з новими для мене серверами Supermicro віддалене управління якими здійснюється за допомогою інтерфейсу IPMI. У даній статті я постараюся розкрити основні моменти в налаштування IPMI на серверах Supermciro, покажу основні пункти меню інтерфейсу IPMI, а також розповім про додаткові утиліти, командах і способах моніторингу сервера за допомогою ipmi.


IPMI (Intelligent Platform Management Interface) - інтелектуальний інтерфейс управління платформою, призначений для автономного моніторингу та управління функціями, вбудованими безпосередньо в апаратне і вбудоване програмне забезпечення серверних платформ. (Інформація взята з офіційного джерела). IPMI реалізується у вигляді окремого контролера сервера, який не залежить від операційної системи, BIOS, CPU півночі і дозволяє дистанційно керувати фізичним обладнанням.

Первинна настройка IPMI консолі і знайомство з інтерфейсом

Налаштування IPMI починається з настройки IP адреси інтерфейсу, який потрібно вказати в BIOS. Якщо сервер встановлено в офісі, це може бути сірий IP-адреса, якщо ж ваше обладнання розміщується в датацентрі, то напевно ви використовуєте білий статичний IP-адресу.

На серверах Supermicro в BIOS можна потрапити, натиснувши кнопку " Del"При завантаженні сервера, я не буду загострювати на цьому увагу і відразу перейду до інтерфейсу самого BIOS.

Як бачите на скріншоті, я увійшов в пункт меню IPMI і активував можливість конфігурації Lan для інтерфейсу (Update IPMI Lan Configuration \u003d Yes, Configuration Address Source \u003d Static), вказав IP-адреса, маску підмережі і основний шлюз.

Застосувати налаштування можна натиснувши кнопку F4, Після чого відбудеться перезавантаження сервера.

Якщо ви все зробили правильно, то ввівши в браузері, вказаний для інтерфейсу IPMI IP, у вас відкриється авторизація:

Тепер пройдемо по основних моментах.

При покупці нового сервера, в IPMI вже створений користувач ADMIN з паролем ADMIN, Саме з цими даними ми і авторізуемся. Я завжди рекомендую створювати нового користувача, а стандартного видаляти або змінювати у нього пароль, так залишати такий логін і пароль, вкрай небезпечно. Створити нового користувача або поміняти паролі / привілеї у поточних, можна в меню Configuration -\u003e Users.

Рестарт інтерфейсу IPMI можна зробити з меню Maintenance -\u003e Unit Reset.

Монтування iso образу ОС для установки на сервер виконується в меню Virtual Media -\u003e CD-ROM Image.

У мене iso образи ОС зберігаються на сервері Samba в тій же підмережі що і інтерфейси IPMI серверів. Я вказую адресу сервера Samba, шлях до образу установчого ISO з ОС, після чого монтую ISO образ і приступаю до установки операційної системи.

Вилучену графічну Java консоль сервера ( KVM-over-IP) Можна відкрити через Remote Control -\u003e Console Redirection.

Консоль в цілому зручна, але після установки ОС, для роботи з сервером я зазвичай використовую ssh клієнти. Іноді є моменти коли, це неможливо, наприклад якщо у вас не працює або ще не налаштована мережа на сервері або ж є якісь проблеми з доступом. Саме тоді на допомогу і приходить Remote Console.

Ніяких окремих налаштувань в самій консолі робити не потрібно, хочу лише додати, що вона має вбудовану клавіатуру, яку можна викликати з меню Virtual Media -\u003e Virtual Keyboard.

Порада. Після тривалої роботи з серверами SUpermicro, я виявив один неприємний баг. Після установки операційної системи Centos 7 і установки KVM на неї, пропадає можливість використовувати Remote Console. Поки сервер в процесі завантаження, консоль відповідає і можна пройти в Bios або побачити завантаження ядра ОС. Але як тільки операційна система завантажилася, відео в консолі пропадає. Шляхом експериментів мені вдалося перемогти цей баг. Потрібно в завантаження ядра додати параметр завантаження nomodeset. Для цього після установки ОС потрібно виконати команду:

grubby --args "nomodeset" --update-kernel / boot / vmlinuz-`uname -r`

Після цього, Remote Console працює справно.

Управління сервером через утиліту IPMICFG від SuperMicro

Для управління серверами через IPMI компанія SuperMicro розробляє власну утиліту IPMICFG.

Завантажити файл IPMICFG можна за допомогою команди:

wget ftp://ftp.supermicro.com/utility/IPMICFG/IPMICFG_1.30.0_build.190710.zip

На момент публікації файл був з такою назвою, я рекомендую заходити на репозиторій SuperMicro за посиланням ftp://ftp.supermicro.com/utility/IPMICFG/ і копіювати url актуального файлу.

Розпакуємо скачаний файл в директорію якій перебуваємо:

ln -s /root/IPMI*/Linux/64bit/IPMICFG-Linux.x86_64 / usr / local / sbin / ipmicfg

Тепер ми можемо запускати утиліту за допомогою команди ipmicfg (символічного посилання). Розглянемо базові можливості утиліти ipmicfg.

Якщо виконати команду ipmicfg -help ми отримаємо список всіх можливих параметрів утиліти.

Розберемо основні команди:

  • ipmicfg -help - повна довідка по утиліті;
  • ipmicfg -m - перегляд поточного IP і mac-адреси для IPMI;
  • ipmicfg -k - перегляд маски підмережі;
  • ipmicfg -g - перегляд заданого шлюзу;
  • ipmicfg -fd - скидання IPMI до заводських налаштувань;
  • ipmicfg -user list - перегляд створених користувачів і їх привілеїв.

Ви можете змінити IP адресу, маску і шлюз інтерфейсу IPMI:

  • ipmicfg -m 192.168.1.200
  • ipmicfg -k 255.255.255.0
  • ipmicfg -g 192.168.1.1

Створити нового користувача IPMI і його пароль:

ipmicfg -user add

За допомогою утиліти робимо наступне:

ipmicfg -user add 6 test 123456 4

Тим самим ми створили користувача test з паролем 123456 і привілеями адміністратора.

Список користувачів IPMI і їх привілеї в системі можна вивести командами:

  • ipmicfg -user list
  • ipmicfg -user help

Як вже бачите на скріншоті, користувач test створений.

Щоб змінить (скинути) пароль користувача IPMI, ісползайте команду:

ipmicfg -user setpwd

І приведу ще пару прикладів використання даної утиліти:

  • ipmicfg -hostname - задати hostname для ipmi інтерфейсу;

Моніторинг заліза на сервері SuperMicro через IPMI і утиліту IPMICFG

Моніторинг сервера SuperMicro через IPMI

Через IPMI моніторити температуру і роботу заліза сервера SuperMicro досить просто. Повна інформація про залозі сервера міститься в пункті System -\u003e Hardware Information.

Інформацію станом процесора, оперативної пам'яті і вентиляторах, можна подивитися перейшовши у вкладку Server Health -\u003e Sensor Readings.

Для зручності перегляду, можна змінювати категорії відображення датчиків, наприклад, температури:

Або датчики напруги:

Так як в даний момент на нашому сервері немає проблем, ні з температурою, ні з напругою, все датчики знаходяться в зеленій зоні. Якщо на сервері піднімається температура або є проблеми з напругою, зелені прямокутники забарвлюватимуться в червоний колір, що послужить сигналом для перевірки вашого сервера.

Моніторинг за допомогою утиліти ipmicfg

Перевірка стану блоків живлення:

# Ipmicfg -pminfo

Item | Value ---- | ----- Status | (00h) Input Voltage | 217.5 V Input Current | 1.06 A Main Output Voltage | 12.28 V Main Output Current | 17.93 A Temperature 1 | 23C / 73F Temperature 2 | 21C / 70F Fan 1 | 2064 RPM Fan 2 | 2032 RPM Main Output Power | 220 W Input Power | 228 W PMBus Revision | 0x22 PWS Serial Number | P2K4FCH02LT0125 PWS Module Number | PWS-2K04F-1R PWS Revision | REV1.0 Current Sharing Control | PEC error Item | Value ---- | ----- Status | (00h) Input Voltage | 217.5 V Input Current | 1.09 A Main Output Voltage | 12.30 V Main Output Current | 18.09 A Temperature 1 | 24C / 75F Temperature 2 | 22C / 72F Fan 1 | 2064 RPM Fan 2 | 2064 RPM Main Output Power | 223 W Input Power | 234 W PMBus Revision | 0x22 PWS Serial Number | P2K4FCH02LT0126 PWS Module Number | PWS-2K04F-1R PWS Revision | REV1.0 Current Sharing Control | PEC error

Подивитися температуру процесора можна командою:

ipmicfg -nm oemgettemp

Так само можна перевірити в якому режимі працюють вентилятори і змінити режим, якщо це необхідно.

Перевірка стану та конфігурації вентилятора

# Ipmicfg -fan

Current Fan Speed \u200b\u200bMode is [PUE2 Optimal Mode] Supported Fan modes: 0: Standard 1: Full 3: PUE2 Optimal 4: Heavy IO

Зміна режиму роботи кулера: ipmicfg -fan Наприклад, ipmicfg -fan 3

Інформація про версію і прошивці IPMI:

# Ipmicfg -nm deviceid

Device ID \u003d 50h Firmware Version \u003d 4.1.4.54 IPMI Version \u003d 2.000000 Manufacturer ID \u003d 57 01 00 Product ID Minor Ver \u003d Greenlow platform Implemented DCMI version \u003d DCMI not implemented / enabled Firmware implemented version \u003d NM Revision 4.0 Image Flag \u003d operational image 1 raw \u003d 50 01 04 14 02 21 57 01 00 09 0b 04 05 40 01

І подивитися всі сенсори можна командою ipmicfg -sdr

При виведенні ми бачимо, що є додаткові стовпці, в яких відображена інформація про ліміти нижнього і верхнього меж.

Так само існує ще не мала кількість утиліт, які можна використовувати для моніторингу та автоматизувати цей процес, наприклад, з nagios. В даний момент загострювати на цьому увагу ми не будемо, так як мета статті розповісти основні моменти в роботі з IPMI. Якщо вас зацікавить тема моніторингу, ви можете залишити свої побажання та можливо в подальшому ми висвітлимо і цю тему. Сподіваюся, дана стаття виявиться для вас корисною!

Абсолютна більшість сучасних серверів маю IPMI / BMC інтерфейс для управління сервером віддалено. Даний інструмент являє собою доступ до віртуальної клавіатури і екрану сервера за допомогою протоколу TCP / IP. Сьогодні ми торкнемося історії дослідження безпеки IPMI, розглянемо вектори для проведення атак і їх подальшого розвитку з використанням IPMI.

IPMI - це набір специфікацій, що регламентують, як спілкуватися і що надавати.
Все вендори намагаються дотримуватися цих специфікацій.
ВМС - це обгортка з заліза для роботи IPMI. Являє собою одноплатний комп'ютер (system on а chip) з щупальцями в сенсорах основного. Кожен вендор сам вибирає, що за залізо використовувати і як його об'єднувати, що природно. Всі наші приклади ми будемо розглядати на lntegrated Lights Out (iLO) від Hewlett-Packard (НР). НР iLO - це якраз зв'язка BMC / IPMI. У інших вендорів свої назви, реалізації в залозі і софт. Але, як правило, це одноплатний комп'ютер з процесором ARM і Linux на борту.
Основна функція подібних пристроїв - зробити життя адмінів більш простою і зручною: зникає необхідність бігти до сервера і жати кнопку Reset / ставити нову систему / дивитися, чому він не вантажиться. Тепер можна підключитися до IPMl / BMC і зробити все це віддалено. До того ж з'являється можливість отримувати інформацію з різних датчиків температури,
напруги і так далі, що також досить зручно.


УПРАВЛІННЯ

Інтерфейсів управління декілька:
- веб - інтерфейс (залежить від вендора);
- IPMI over LAN (UDP 623);
- з встановленої системи на сервері (за умови, що встановлені драйвери від виробника). Використовуваний софт: WMI під виндой, OpenlPMI, IPMltool під Linux.

З веб-інтерфейсом все зрозуміло. Кожен вендор сам вирішує, як він виглядає і як його реалізувати. Другий і третій інтерфейси схожі, але різниться середовище передачі. У разі IPMI over LAN, як можна здогадатися, команди передаються через мережу на порт UDP 623. З встановленої системи команди для IPMI передаються за допомогою файлу пристрою, зазвичай це / dev / ipm iO, яке з'являється після установки драйвера. Стандартна утиліта для взаємодії з IPMI - це IPMltool під GNU / Linux, як найбільш проста в обігу.

ЩО ПЕНТЕСТЕРУ IPMl / BMC

Незважаючи на те що звіт про уразливість IPMl / BMC був опублікований ще влітку 2013 року, в даний час залишається дуже багато вразливих систем. Дуже часто IPMl / BMC будь-якої масті можна знайти через пошукову систему. Природно, не варто тримати подібні системи зовні. В основному вони зустрічаються при проведенні внутрішніх пентестов. Один з найпростіших векторів розвитку атаки з використанням таких систем - «викрадення» сервера за допомогою IPMI / BMC.

Запозичень адміністративний доступ до IPMl / BMC (як буде показано далі, це зовсім нескладно), можна підключитися через VirtualConsole (aka KVM) і, наприклад, скинути пароль root'a або за допомогою LiveCD сдампіть хеш і локальних користувачів, якщо це Windows. При прокачати скілу удачі можна навіть зловити консоль, з якої root забув разлогініться (дуже часто таке зустрічається на віртуальних машинах). У свою чергу, IPMI можна використовувати і як можливість повернути доступ до сервера після повного переустановлення системи.
Доступ до IPMI / ВМС засобами операційної системи при наявності максимальних привілеїв можливий без використання пароля, тобто авторизація взагалі не потрібна. В цьому випадку зловмисник просто створює адміністративний акаунтів IPMl / BMC. При втраті доступу до сервера він заходить на IPMl / BMC і повертає чесно зароблене добро. Взагалі, зв'язок IPMl / BMC з основним комп'ютером досі досконально не вивчена. Це неоране поле для пошуку багів і фич. З огляду на кількість вендорів, які реалізують це в своїх серверах, можна говорити про «багатий внутрішній світ».

ПУБЛІЧНІ ДОСЛІДЖЕННЯ

Вперше на безпеку IPMI і ВМС звернув увагу Ден Фармер (DanFarmer). З його повним звітом, що носять говорить назва «Вантажний поїзд в пекло». Ми розглянемо найбільш цікаві з точки зору злому моменти.
Керуючись дослідженням Дена, уразливості IPMl / BMC можна розділити на дві великі категорії:

· Кастомниє баги від виробників (наприклад, уразливості веб-інтерфейсу);
· Уразливості протоколу IPMI.

Насправді Ден накопав багато цікавого, про це нижче.

NULL authentication

опис
Уразливість дозволяє обійти аутентифікацію. Присутній тільки в IPMI 1.5. Експлуатація дає можливість управляти пристроєм, просто активувавши опцію відключення аутентифікації. Привілеї розрізняються у різних вендорів, але зазвичай бувають максимальними.

вендори
- НР
- Dell
- Supermicro.

умови
Відкритий порт UDP 623, IPMI 1.5, логін існуючого користувача.

Ipmtiool -А NONE Н targetIP bmc guid

IPMI Authentication Bypass via Cipher 0

опис
Уразливість дозволяє обійти аутентифікацію. Бага з'явилася з IPM I верси їй
2.0. У цій ревізії вирішили додати шифрування. Для експлуатації треба
знати логін валидной облікового запису, а ось пароль знати не обов'язково -
можна вказати будь-хто.

вендори
- НР
- Dell
- Supermicro.

умови

Відкритий порт UDP 623, IPMI 2.0, логін існуючого користувача.

Metasploit - auxiliary / scanner / ipmi / ipmi_cipher_zero ipmitool -I lanplus -C 0 Н targetIP -u Administrator Р anypasswordhere user list

IPMI 2.0 RAKP Authentication Remote Password Hash Retrieval

опис
Уразливість дозволяє неавторизованих користувачеві отримати захешірованние паролі користувачів для подальшого Брута. Бага з'явилася в специфікації IPMI версії 2.0

вендори
- НР
- Dell;
- Supermicro.

УМОВИ

Відкритий порт UDP 623, IPMI 2.0 і валідність user-logins.

Metasploit - auxiliary / scanner / ipmi / ipmi_dumphashes http://fish2.com/ipmi/tools/rak-the-ripper.pl

IPMI Anonymous Authentication / Null user

опис
Хтось називає це null user, хтось - anonymous authentication. Хтось розділяє ці дві уразливості, хтось ні. За замовчуванням існує null user / anonymous - «» (порожній рядок). Якщо говорять null user, то пароль у нього теж порожній. Якщо говорять anonymous authentication, то пас у нього admin і в усьому винне IPMI Chips with ATEN-Software.
Ден в своєму дослідженні вважає це як дві різні вразливості. А в доці від Rapid7 про null user вже ні слова.

вендори:

НР
Dell
Supermicro (використовують IPMI Chips with ATEN-Software).

умови

Відкритий порт UDP 623.

Metasploit - auxiliary / scanner / ipmi / ipmi_dumphashes ipmitool -I lanplus Н targetIP -U "" Р "" user list

Supermicro IPMI UPnP Vulnerabllity

опис
У Supermicro присутній сервіс UPnP SSDP на порту UDP 1900. Він вразливий до переповнення буфера.

вендори
Supermicro.

умови
Відкритий порт 1 900.

Metasploit exploit / multi / upnp / libupnp _ssdp_overflow metasploit auxiliary / scanner / upnp / ssdp_msearch

Supermicro IPMI Clear-text Passwords

опис
Специфікація IPMI 2.0 має на увазі, що десь повинні зберігатися паролі у відкритому вигляді. У Supermicro вони знаходяться в файлах / nv / PSBlock або / nv / PSStore, в залежності від firmware.
Крім цього, в реалізаціях ВМС на Nuvoton WPCM450 на ТСР-порту 49152 висить сервіс, який дозволяє читати вміст файлів в директорії / nv, наприклад PSBlock, server.pem і так далі.

вендори
· Supermicro.

умови
Shell-дocтyп

Cat / nv / PSBlock echo (GET / PSBlock "1 nc targetIP 49152

З приводу вразливостей «NULL authentication / IPMI Authentication Bypass via Cipher О», «IPMI 2.0 RAKP Authentication Remote Password Hash Retrieval», «IPMI Anonymous Authentication» - про все це написано в специфікації IPMI.
Дослідники досконально вивчили її, зробивши при цьому упор на механізми аутентифікації і шифрування. Уразливість, пов'язана з довільним виконанням коду в UРnР-сервісі в прошивці Supermicro (Supermicro IPMI UPnP Vulnerability), відноситься до CVE-2012-5958 (BoF в libupnp). Решта ж порушені нами уразливості знайдені за допомогою аналізу прошивки Supermicro для материнських плат Supermicro Х9, причому упор робився саме на аналіз коду, що відповідає за веб.

HANDS-ON LAB

Давай розберемо стандартну схему експлуатування вразливостей IPMI.
За допомогою модуля ipmi_version, доступного у відомому фреймворку Metasploit, можна просканувати периметр мережі. Якщо ти вже знаходишся у внутрішньому сегменті і встановлювати / використовувати Metasploit немає можливості, то можна обійтися простенької утилітою ipmiping або rmcpping.
Як тільки вдалося виявити відкриті IPMI, в першу чергу слід перевірити їх на вразливість «Authentication Bypass via Cipher О» (дивись вище). Якщо вона присутня, то можна обійтися без дампа хешів корис ному і просто скинути пароль адміністратора або додати свого. Важливо: для використання цієї уразливості необхідне знання логи на облікового запису, в нашому випадку у облікового запису повинні бути присутніми адміністративні привілеї. Для початку розглянемо випадок з дампом хешу користувача і остан едующім його брутфорсом.

За допомогою модуля Metasploit'a ipmi_dumphashes ми маємо можливість зібрати хеші користувачів. Важливо: не повідомляючи логіна користувача не вийде добути його хеш. В опціях ipmi_dumphashes можна вказати шлях до файлу з логінами, наприклад в тому випадку, якщо адміни створили для себе облікові записи. Файл, який використовується за умовчанням, містить дефолтні логіни всіх вендорів. Брут хешів підтримують як oclHashcat, Так і John the Ripper з jumbо-патчамі (community edition). Джона слід брати з гітхаба, так як на офіційному сайті застаріла версія без підтримки потрібного нам формату. остання версія oclHashcat, На даний момент 1.30, підтримує всі з коробки.

Якщо у тебе в руках опинився хеш від НР ilO4, то тобі пощастило. Справа в тому, що при конфігурації на заводі пароль за замовчуванням для облікового запису Administrator встановлюють довжиною вісім символів - uppercase + numeric. На моїх скромних потужностях пошук подібного значення займає близько півгодини.

У разі наявності уразливості cipher Про можна обійтися без брутфорса хешів і скинути пароль. Для цього нам знадобиться утілі та IPMitool. Збірка під GNU / Linux не викликає питань. А ось під Windows доведеться влаштувати танці з бубном в Cygwin. Послідовність ь дій для добавленіяадміністратора така:

1. Дивимося, які користувачі присутні, і використовуємо наступний вільний ID.

Ipmitool -I lanplus -з 0 -H 1.1.1.1 -U Administrator Р anypasswordhere user list

2. Встановлюємо логін нашого користувача.

Ipmitool -I lanplus -С 0 Н 1.1.1.1 -U Administrator -P anypasswordhere user set name hacкer

3. Задаємо для нього пароль.

Ipmitool -I lanplus -С 0 Н 1.1.1.1 -U Administrator -P anypasswordhere user set password hackerpass

4. Робимо його адміністратором.

Ipmitool -I lanplus -С 0 Н 1.1.1.1 -U Administrator Р anypasswordhere user priv 4

5. Активуємо лише то створений обліковий запис.

Ipmitool -I lanplus -C 0 -H 1.1.1.1 -U Administrator Р anypasswordhere user еnаble

Після того як хеш-кодування зламані, паролі скинуті або ж доданий новий адміністратор, у тебе з'являється можливість зайти через веб-інтерфейс, по SSH на SMASH або підключитися до віддаленого робочого столу, а-ля KVM.
Особливу цінність представляє перемикач KVM, так як реалізує доступ безпосередньо до самої консолі, тим самим дозволяючи отримати доступ в BIOS, встановити операційну систему тощо. За реалізацію перемикача KVM відповідає кожен вендор сам. Наприклад, в НР
ilO4 для цього використовуються порти ТСР 17988 і 17990. У Dell iDRAC7 це порт ТСР 5900. Cisco ICM порт ТСР 2068.

Варто згаданий ь таку річ, як НР BladeSystem Onboard Administrator. НР BladeSystem є шасі, до якого підключаються блейд-сервери. Так ось, це шасі дозволяє управляти централізовано блейд-серверами за допомогою IPMI. При цьому авторизація на «Подчіннние» IPMI відбувається за допомогою механізму SSO. Все, що тобі потрібно, - це отримати хеш користувача з адміністративними привілеями і за допомогою веб-інтерфейсу підключитися на цікавий для тебе сервер.

Ще одна цікава особливість, знайдена в НР il04, - це можливість підключитися до сервера по KVM прямо з SMASH (читай: SSH) за допомогою команди TEXTCONS. Це дуже корисно, коли закриті порти 80, 443, 17990. Для цього знадобляться права адміністратора, але яка різниця?
Стати адміністратором не так складно. Персонально для тебе, читачу, я підготував програму ipmicd на С під Windows / Linux. Вона дозволяє сканувати діапазон адрес на наявність IPMl / BMC, а також дампи хеші (аналог ipmi_dumphashes з Metasploit'a). Програми створені на той випадок, коли використовувати Metasploit не найвдаліша ідея, наприклад IPMl / BMC знаходяться десь далеко, куди Metasploit НЕ прокинув.

Утиліта доступна на GitHub. Дуже проста у використанні:

1. Параметр -р використовується, коли необхідно провести сканування певного діапазону.
2. Параметр -d вказує необхідність отримати захешірованний пароль.
3. Параметр -v N показує ступінь логування при роботі 0..5. При N \u003d 1 програма видає фінгерпрінт.

Комбінуючи різні параметри, можна впливати на поведінку програми. Наприклад, при використанні разом опцій -d і -р програма буде пробувати отримати хеши тільки з тих систем, які відповідають на IРМl- пінг. При використанні тільки опції -d намагатиметься отримати хеші з усіх адрес, що зазвичай відбувається нереально повільно. Якщо щось викликає сумніви, то можна використовувати опцію -v 5 - програма буде виводити в зручному форматі одержувані повідомлення. Для компіляції під Linux знадобиться тол ько GCC - gcc ipmicd.c -static -о ipmicd. У разі використання на Windows компілювати слід за допомогою MinGW gcc ipmicd.c -mno-ms-bitfields -lws2_32 -DMINGW.

ВИСНОВОК

Пара слів про високий: вивчення можливостей і реалізацій різними вендорами IPMl / BMC тільки починається. Сюди можна включити не тільки веб-інтерфейс SMASH, але і драйвери для операційних систем, що дозволяють взаємодіяти з технологіями віддаленого управління сервером IPMI / ВМС з встановленої системи. Внутрішні сервіси, що реалізують обмін інформацією в IPMl / BMC. Під приціл може потрапити навіть «залізна» реалізація самого ВМС і як саме він керує основним сервером. Адміністраторам ж я рекомендую перевірити всі свої системи на наявність в них публічних вразливостей і по можливості усунути ці вразливості. Найголовніша ж рекомендація, яку я б хотів дати читачем - приділяйте максимум уваги налаштувань обладнання яким ви керуєте.

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

IPMI ( Intelligent Platform Management Interface) - це інтерфейс для віддаленого моніторингу та управління фізичним станом сервера. IPMI є аналогом відомих розробок IP-KVM, iLo,.

можливості IPMI

  • віддалене включення, виключення і перезавантаження сервера;
  • моніторинг температури, напруги і системи охолодження;
  • віддалене підключення до сервера носія інформації (наприклад, для установки ОС і ПО);
  • управління акаунтами і правами користувачів (є підтримка LDAP і);
  • управління портами доступу і захист доступу SSL -сертифікатом;
  • настройка повідомлень про роботу сервера.

Як працює контролер BMC

Давайте подивимося схему роботи BMC контролера. І так Baseboard Management Controller це інтерфейс для віддаленого управління і моніторингу стану сервера. По суті Baseboard Management Controller це однокристальна система, як її правильно називати System-on-a-Chip, SoC. У BMC є вбудоване графічне ядро, яке звертається і взаємодіє з основними компонентами материнської плати серверного заліза, через всілякі інтерфейси, потрібні для роботи стандарту IPMI. Чим гарний IPMI, так це, то що він не залежить від операційної системи хостового сервера. Особисто я використовую IPMI, для прошивки BIOS у серверів і установки серверної операційної системи.


Так само IPMI може працювати за NAT, наприклад в ЦОДах, людям дають можливість управляти так своїм сервером, корисно якщо він завис. Для NAT буде потрібно відкрити ось такі порти:

  • TCP 80: HTTP
  • TCP 443: HTTPS
  • TCP 5900, 5901: графічна консоль
  • TCP 5120, 5123 - трафік Virtual Media
  • UDP 623: IPMI

Як виглядає на серверах IPMI-порт

Наведу приклад того, як на фізичному сервері SuperMicro виглядає даний порт управління. Я виділив його стрілкою, найчастіше він розташовується над портами USB.

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

Пароль за замовчуванням на IPMI

Стандартним логіном і паролем для IPMI буде ADMIN / ADMIN, саме великими літерами.

Перед вами з'явиться сторінка зі зведеною інформацією про систему, яку ви можете собі споглядати на зображенні, вона дає вам огляд системи, IP-адреси, номера версії прошивки, версії BIOS, а також попереднього перегляду віддаленої консолі. Тут же ви взагалі можете включити сервер, якщо він не працює. Я багато разів користувався IPMI інтерфейсом, щоб включити сервер, після того, як його випадково погасили.

На екрані інформації про обладнання ви можете переглянути різні компоненти обладнання, щоб побачити специфікації і т. Д.

За допомогою розділу Configuration ви можете виконати цілий ряд завдань, включаючи оповіщення, аутентифікацію RADIUS, мережеву конфігурацію (для самого IPMI), настройку SMTP для попереджень, контроль доступу по IP, системні журнали і т. Д.

Розділ віддаленого управління (Remote ControL) є однією з найбільш цікавих речей, так як, швидше за все, вам буде цікаво мати віддалений доступ до сервера, якщо ви в першу чергу заходите на IPMI.

У розділі дистанційного керування (Remote Control), меню управління живленням дозволяє:

  • скинути
  • негайне відключення живлення
  • поступове відключення живлення
  • включення або відключення живлення і все це дуже зручно, якщо ви намагаєтеся віддалено усунути неполадки або відключити або знову включити сервер.

Меню Launch SOL дозволяє запустити консоль SOL.

Virtual Media - це теж приголомшлива функція. Ви можете підключити віртуальний носій через загальний ресурс Windows і представити його, як якщо б він був встромлений безпосередньо в сервер. Єдиним у IPMI є і недолік, обмеження в 4,7 ГБ, що може бути недостатньо для деяких нових серверних ОС. VL-копія Windows Server 2012 R2 важить 5,1 ГБ, але здається це вирішується оновленням прошивки.

Для запуску консолі віддаленого управління в IPMI (Remote Console), клікніть по превью зображення, у вас повинен скачати java файл. Браузер може на нього лаятися, натисніть "Keep", щоб підтвердити завантаження.

Вступ

Велика частина серверів Firstdedic обладнана модулем IPMI, але багато користувачів не звертають на цю опцію уваги.

IPMI це абревіатура, яка розшифровується як Intelligent Platform Management Interface і перекладається на російську мову як "інтелектуальний інтерфейс управління платформою".

Що вдає із себе даний пристрій. Це модуль, який знаходиться безпосередньо всередині сервера і назовні доступний додатковий Ethernet-роз'єм.

У разі втрати управління над сервером, є можливість зайти за вказаною адресою і, авторизувавшись, виконати дії для усунення проблем або отримання інформації про несправності.

В основному, цей модуль використовується для моніторингу та управління деякими функціями, вбудованими в серверне апаратне забезпечення, як то: стеження на температурними датчиками, датчиками напруги, стан блоку живлення, швидкість обертання вентиляторів, журнал роботи, підключення образів і т.п. Слід звернути увагу, що ці функції доступні незалежно від процесора, операційної системи або BIOS. Управління є навіть при вимкненому сервері.

На жаль, автоматизувати надання доступу до IPMI на даний момент не вдалося, тому доступ можна отримати за запитом в технічну підтримку.

За запитом видається IP-адреса, де розташовується інтерфейс, а так само авторизовані дані. Доступ надається не повний, обмежений обліковим записом рівня Operator.

Доступ до IPMI може бути здійснений як через браузер, так і за допомогою програми IPMIView. У першому випадку буде потрібно попередньо встановлена \u200b\u200bJava і плагін до браузера, у другому - ОС Windows або MacOS, або предостановленная Java для мультиплатформенной версії IPMI View.

Доступ за допомогою браузера

Після авторизації сторінка покаже вам список, де ви можете отримати доступ до IP-KVM (свого роду віртуальний монітор, що передає відео-зображення з сервера до підключеного клієнта. Буває дуже корисним при помилку в налаштуванні мережі, встановлення ОС, або при блокуванні IP-адрес на рівні дата-центру), а так само побачити поточний стан сервера, включити, вимкнути і апаратно перезавантажити сервер (кнопки Power On, Power Down і Reset відповідно в області Power Control via IPMI).

При натисканні на кнопку "Refresh Preview Image" буде оновлюватися попередній перегляд віртуального монітора. А при натисканні на сам чорний екран буде відкритий JAVA-клієнт IP-KVM і ви отримаєте доступ до інтерфейсу вашої операційної системи вже безпосередньо за допомогою клавіатури і миші. Але для його роботи потрібно встановлена \u200b\u200bJAVA і плагін до браузеру

У вкладці Server Health основного меню є можливість подивитися стан сервера, отримати інформацію про швидкість обертання вентиляторів, температурі і напрузі

Доступ за допомогою десктопного додатка

Крім браузерної версії існує і десктопна - IPMI View, яка існує у версіях для Windows, MacOS і Java. Остання є мультиплатформенной.

Всі останні версії IPMI View, а так само документація, доступні на офіційному ftp-сервері виробника - ftp://ftp.supermicro.com/utility/IPMIView/.

На відміну від браузерної версії, яка викачується і запускається тільки за фактом використання, IPMI View встановлюється на ПК і при роботі просто підключається до необхідного сервера.

Спочатку потрібно додати в налаштування програми всі ваші сервери за допомогою кнопки "Add a new system" (File → New → System)

Де в поле IPMI address: потрібно додати той IP, який ви отримали при запиті доступу до IPMI у технічної підтримки.

Для підключення до інтерфейсу IPMI, після його додавання в IPMI Domain, слід просто виконати подвійне натискання по збереженої системі.

Після натискання на кнопку "Login" і успішної авторизації вікно входу в інтерфейс управління платформою дещо зміниться: З'явиться інформація про версію використовуваного IPMI, і в самому низу вкладки з доступними операціями.

При переході на деякі вкладки буде помітно, як додаток запитує інформацію з IPMI і виводить в більш доступному для сприйняття вигляді.

Наприклад, вкладка Sensors виведе дані в графічному вигляді, що трохи більш наочно, ніж просто цифри, як в браузерному варіанті.

Вкладка IPM Device надасть доступ до отримання інформації про стан сервера, і управління нею: вимикання, включення, перезавантаження і скидання (Power Down, Power Up, Power Cycle, Reset відповідно).

Для закриття поточної сесії і відключення від IPMI слід вибрати пункт меню Session → Close .

Часті питання про IPMI в материнських платах Supermicro: навіщо він потрібен, особливо, наочна демонстрація, підводні камені.

1) Найпопулярніший міф про KVM-over-LAN - це те, що він "не потрібен". Чомусь багато хто плутає його з звичайним віддаленим доступом до текстової / графічної консолі ОС, тобто "Навіщо нам KVM-over-LAN, якщо є SSH, VNC, RDP і Radmin?"
Різниця принципова: KVM-over-LAN - це не просто доступ до консолі ОС, він ніяк від ОС не залежить, це доступ до консолі безпосередньо самого сервера (і не тільки до консолі, подробиці будуть нижче), тобто ми можемо, наприклад: зайти в BIOS системної плати або доп. контролера, встановити ОС, налаштувати моніторинг сенсорів (що, знову-таки, дуже важливо - незалежний від ОС) через SNMP і т.д.
2) Як це працює? Працює досить просто, ось структурна схема (Supermicro останнім часом використовує, як правило Winbond або Nuvoton WPCM450:

Всю роботу виконує процесор BMC (Baseboard management controller) - він має власну пам'ять і спеціалізовану ОС (зазвичай на базі Linux). BMC використовує USB шину для підключення віртуальних клавіатури, миші і приводів CD / DVD / FDD. Через інші шини здійснюється збір свідчень датчиків обертання вентиляторів, температури, управління живленням, доступ до COM-порту (для віддаленого доступу до послідовної консолі). BMC також займається захопленням і перенаправленням вмісту видеобуфера - в сучасних BMC вже інтегровано відеоядро, колись, в перших реалізаціях, BMC займався оцифруванням аналогового сигналу з окремого VGA-контролера. Обмін даними з "зовнішнім світом" відбувається через ethernet (виділений порт або один з портів розміщеного на системній платі контролера ethernet).
Власне, WPCM450 в продуктах Supermicro являє собою систему на базі процесора ARM 926EJ-S, що працює під управлінням ОС Linux на ядрі 2.6.

З метою діагностики можна зайти через SSH, де вас буде чекати busybox.

3) Скільки це коштує?
В даний час Supermicro інтегрує IPMI BMC безпосередньо на системні плати. Раніше використовувалися додаткові модулі (наприклад - AOC-SIMSO +). Наявність IPMI BMC на платі Supermicro позначає буквою F, наприклад: X8DTi і X8DTi-F, і різниця в ціні не перевищує $ 50, що вже є очевидною відповіддю на питання "потрібно чи ні", адже зовнішній IP-KVM обійдеться вам набагато дорожче. Ставити звичайний KVM і кожен раз при необхідності що-небудь перевстановити або перепрошити йти в серверну - теж не вихід, це втрата часу, адже ваш сервер може знаходиться за десятки і сотні кілометрів, та й, врешті-решт - це просто незручно.
4) Як це виглядає на практиці?
Доступ до IPMI можна отримати або через IPMIView (спеціалізована утиліта на Java, є складання під Windows і Linux) або через звичайний браузер (при підключенні до графічної консолі запуститься додаткове java-додаток).
Розглянемо IPMIView. Для початку в BIOS можна налаштувати ethernet-порт IPMI: за замовчуванням варто DHCP, але можна вручну виставити потрібні IP / маску / шлюз, тег VLAN (весь ужалений менеджмент краще виділити в окрему підмережу з міркувань безпеки і зручності).
Запускаємо IPMIView і знаходимо потрібний сервер (можна просканувати діапазон адрес на предмет наявності IPMI), логін / пароль за замовчуванням - ADMIN / ADMIN.

  • Graceful shutdown - імітується швидке натискання кнопки Power, для того щоб ОС могла коректно вимкнути живлення самостійно.
  • Power Cycle - це Graceful shutdown з подальшим включенням харчування
  • Reset і Power Up говорять самі за себе
  • Power Down - жорстке вимикання, з тривалим натисканням кнопки Power
За здоров'ям сервера можна спостерігати на вкладці Sensors(Показання температурних і вентиляційних датчиків ви побачите тільки при включеному сервері):

Мережеві настройки можна поміняти при необхідності на вкладці BMC Setting (пам'ятаєте, що можна помилково втратити віддалений доступ до сервера). До речі, про віддалений доступ: використовуються наступні порти (їх потрібно буде прокинути через NAT або забезпечити спосіб доступу в менеджмент-мережу, наприклад, через VPN):
TCP:

  • HTTP: 80
  • HTTPS: 443
  • 5901 - потрібен для графічної консолі
  • 5900 - HID, трафік віртуальної клавіатури / миші
  • 5120 - трафік віртуального приводу CD / DVD
  • 5123 - трафік віртуального FDD
UDP:
  • IPMI: 623

на вкладці KVM Console можна побачити найкориснішу річ - графічну консоль сервера. Там же знаходяться кнопки зняття скріншота, управління віртуальними носіями (Virtual Media), переходу в повноекранний режим і додаткова софт-клавіатура. Навіщо вона потрібна, якщо є апаратна? Для різних комбінацій клавіш, які з якихось причин не вдається відправити на сервер з апаратної клавіатури, наприклад класичний Ctrl + Alt + Delete.


Ось кілька особливостей:
  1. Якщо у вас є контролер від LSI, то вам знаком орієнтований на використання миші інтерфейс LSI Webbios. Так ось: миша в Webbios через IPMI в сучасних платах Supermicro не працює, пов'язано це з тим, що Webbios розрахований на миша PS / 2, а IPMI емулює миша USB. В FAQ розділі технічної підтримки Supermicro це питання розглядається, але рекомендації не допомагають. Доводиться користуватися виключно клавіатурою, що не зовсім зручно, тому що НЕ через всі пункти можна переміщатися за допомогою Tab - потрібні комбінації з Alt, які відпрацьовуються тільки через Soft Keyboard.

  2. Перемикання розкладки в WinPE 3.0 не працює. Так що збирайте WinPE з англійською розкладкою, для цього потрібно додати в скрипт збірки після монтування Wim-образу наступну команду:
    Dism / image: C: \\ winpe64 \\ mount / Set-InputLocale: 1033: 00000409 "C: \\ winpe64 \\ mount" - точка монтування образу.
    При бажанні можна заодно змінити локаль і мову інтерфейсу - дивіться документацію до WinPE.
  3. Для НЕ Windows ОС змініть режим синхронізації курсора з абсолютного на відносний.
І заключний абзац - використання віртуальних носіїв.

Можна або перенаправити локальний привід, або підключити образ, що набагато зручніше. Для появи відповідного пристрою в завантажувальному меню BIOS може знадобитися перезавантаження.
P.S. Як скинути пароль IPMI? Тільки за допомогою консольної утиліти ipmicfg. Існує в версіях під DOS, Windows і Linux. Запуск ipmicfg -fd обнуляє всі налаштування і встановлює логін / пароль користувача з адміністраторськими правами в стандартні ADMIN / ADMIN.
Оновлено 18.04.2010. В якийсь момент, після чергового оновлення Java, спроба змонтувати iso образ в IPMIView почала приводити до його падіння (Windows 7 64біт з останніми оновленнями) Вийшов новий реліз IPMIView (build 110412 від 12 квітня). Поки ще не перевіряв, виправлений чи там цей баг, так як можна користуватися запуском консолі через web-інтерфейс.

Переходимо на вкладку Remote Control, тиснемо Launch Console і отримуємо в окремому вікні Redirection Viewer, Аналогічний за функціоналом консолі в IPMIView. Варто додати, що web-інтерфейс не полегшує завдання доступу до консолі з зовнішньої мережі - Redirection Viewer - це не Java-аплет, а окреме Java програма і використовує ті ж порти для трафіку відео, HID і віртуальних приводів: 5900, 5901, 5120, 5123.
P.S. від 01.12.2011. Додаткова стаття: FreeIPMI.
P.S. від 06.10.2013. Схожа.
P.S. від 10.11.2013.
P.S. від 20.06.2014. Знову.