Забезпечення SuperMicro IPMI BMC


17

Нещодавно я придбав материнську плату SuperMicro X8DTU-F, на якій є вбудований BMC, який в основному запускає систему IPMI. Виявляється, це невелика система Linux, що працює на процесорі ARM.

На жаль, він працює з завантаженням програмного забезпечення, багато з якого мені не потрібно, і я не маю можливості розміщувати його за брандмауером. Однак я хочу, щоб функціонал IPMI. Хто-небудь, хто скористався одним із них, має якісь конкретні пропозиції щодо того, як закріпити річ? Він завантажується з файлової системи ROM, і навіть не здається, що немає гачок, щоб вимкнути будь-який із різних серверів, на яких він працює ....

Мене також зацікавить, як я можу перевірити список імен та паролів, які можна використовувати для доступу до системи через усі різні сервіси. За замовчуванням є ADMIN/ ADMIN, але жоден з файлів в / conf або / тощо не містить в собі "ADMIN", що мене швидше хвилює. Є /conf/shadowі /conf/webshadowфайли, в яких міститься загадкові «тестові» ідентифікатори, що не дає мені відчувати себе особливо комфортно.


Я ще не знайшов співвідношення між вмістом тіні, веб-тіні та тим, що насправді є дійсними користувачами. Нові користувачі, додані через управління BMC, не відображаються в цих файлах. Крім того, користувачі "анонімних", "test1", "test2" мають оболонку, яка не існує у файловій системі.
Даніель Лоусон

2
Також дивіться посібник Dan Farmer у розділі « Кращі практики безпеки IPMI» . Він випустив нещодавній документ, в якому детально описував деякі значні проблеми безпеки з IPMI під назвою ipmi: вантажний поїзд до пекла .
Стефан Ласєвський

1
Дякуємо за чудове посилання. Короткий підсумок проблем безпеки розміщений на веб- сайті fish2.com/ipmi/itrain-gz.html, а самий короткий підсумок - "ви абсолютно накручені". Зітхнути.
Curt J. Sampson

Відповіді:


6

Використання /conf/crontab, як вказував dlawson, для мене звучить як відмінна ідея. Це дозволяє мені запускати сценарій раз на хвилину, що забезпечує все, окрім http та ssh:

/etc/init.d/cdserver stop
/etc/init.d/fdserver stop
/etc/init.d/cim_sfcb stop
/etc/init.d/webgo stop

Це все ще залишає мене веб-сервером з керованим паролем управління доступом (я не бачу способу його перевірити клієнтські сертифікати) і хто знає, які віддалені вразливості. Вимкнення його, коли я не використовую його (що є більшою частиною часу), здається розумним рішенням; додавання запису на кронтаб, щоб вимкнути його кожні п’ять-десять хвилин, призведе до тих випадків, коли хтось забуде його закрити, коли він закінчить.

Демон ssh - це версія dropbear, яка видається досить сильно модифікованою. Він читає імена користувачів та паролі простого тексту /conf/PMConfig.dat(з яких також використовується веб-сервер), реєструє будь-яке дійсне ім’я та пароль як основний користувач та ігнорує ~/.ssh/authorized_keysфайл. Ця остання проблема дратує; це змушує вас дозволяти входити в систему паролем і відкриває можливість заднього виходу на вулицю, залежно від того, звідки все, що воно отримує імена та паролі.

Отже, перед вами стоїть дилема: наскільки ви справді довіряєте цьому модифікованому демону ssh, встановленому в системі, яка була досить очевидно розроблена розробниками, що не є безпечними? Зовсім небагато, враховуючи кількість зламаних шматочків грубості, які я бачив у своїх сценаріях оболонок. Існують незвичні умови іменування (/etc/rc?.d/sshd - це симпосилання на /etc/init.d/ssh), величезна кількість коду, який, здається, не використовується, та функції лише у скрипті запуску ssh, наприклад, /conf/portcfg_sshфайл і навіть restartкоманда повністю порушені. (Не намагайтеся використовувати ці; sshd не перезавантажиться, і ви будете накручені, якщо у вас немає наявного логіна. Ми перезавантажили BMC і в кінцевому підсумку потрібно було його перезавантажити.)

Оптимальним варіантом, який я можу придумати, якщо хтось взагалі буде використовувати цю річ, - це запустити ssh на альтернативний порт, використовуючи роботу cron, так що принаймні менше шансів з'явитись у портискані.

Останнім компонентом є порти управління мережею IPMI; Я не бачу, як їх вимкнути.


Більшість ваших занепокоєнь щодо модифікацій, ймовірно, не є проблемою. Dropbear використовує pam, який використовує libpamipmi для auth - я не бачив жодних доказів того, що він насправді читає паролі ясного тексту прямо. Libpamipmi здійснить дзвінок ipmi до стеку ipmi, і це, можливо, буде читання паролів ясного тексту, але моя думка полягає в тому, що це не схоже на те, що демон демонтується. Мені було б цікаво почути будь-яке остаточне підтвердження, що ви маєте протилежне.
Даніель Лоусон,

Ну, ми знаємо, що це порушено в тому, що немає способу a) використовувати ключі, а не паролі, і b) відключити автентифікацію пароля.
Керт Дж. Сампсон,

6

В ідеалі ваша мережа управління буде іншою мережею для вашої іншої мережі або, принаймні, іншою vlan з обмеженим маршрутизованим доступом.

Ці системи насправді не працюють у багатьох сервісах:

PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
443/tcp  open  https
555/tcp  open  dsf
5120/tcp open  unknown
5900/tcp open  vnc
5988/tcp open  unknown
MAC Address: 00:30:48:D9:3A:71 (Supermicro Computer)

(і UDP / 623 для самого IPMI)

Більшість із них потрібні, якщо ви хочете зробити будь-який вид віддаленого управління. Якщо ви не хочете займатися віддаленим управлінням, вам слід розглянути можливість взагалі не вмикати контролер IPMI або купувати натомість плату X9DTU (-F позначає "вбудований BMC")

Якщо ви хочете виконати повне віддалене управління, не можете запустити свої контролери IPMI в іншій мережі, і все ще хочете відключити деякий доступ, тоді ви завжди можете отримати контролер IPMI для виконання команд iptables. Ви можете написати сценарій для входу в ssh для виконання команд, або попросити Supermicro для dekkit для BMC та створити нове зображення за допомогою спеціального сценарію iptables.

ОНОВЛЕННЯ

Я по-іншому подивився на наші системи тут, і файлова система / conf монтується rw. Жоден із скриптів init нічого не викликав безпосередньо в / conf (що я міг бачити), але є файл crontab. Отже, я думаю, ви можете скопіювати сценарій iptables та відредагувати / conf / crontab, щоб викликати його через якийсь відповідний інтервал. Ви хочете, щоб він запускався якнайшвидше на BMC init, але не потрібно, щоб він працював щохвилини. А може, тобі все одно.


Я хотів би мати окрему мережу для управління, але, на жаль, це переходить у чужий центр обробки даних, і я не можу цього мати. Що стосується управління, все, що я дуже хочу, це https та ssh.
Керт Дж. Семпсон,

Ви ніколи, ніколи не захочете KVM над лан?
Даніель Лоусон

У вас може бути окремий блок брандмауера перед вашим хостом у DC. Це дещо вирішить проблему. Ви попросили підтримку Supermicro про допомогу щодо цього? Я вважав, що вони досить чуйні
Даніель Лоусон

Ні. У мене немає потреби в KVM через LAN, оскільки BIOS, Grub та Linux ядро ​​підтримують послідовну консоль.
Керт Дж. Сампсон

4

Одне, що слід враховувати під час захисту Supermicro IPMI - це ssh-сервер. Старіші версії коду IPMI X8SIL-F приймали ssh-з'єднання незалежно від того, який пароль був вказаний. Потім програмне забезпечення перевірятиме пароль та відхиляє або приймає з'єднання, але було коротке вікно для створення ssh-порта вперед. Через це люди отримували скарги на спам / зловживання для своїх IP-адрес IPMI . На материнській платі X8SIL-F версія прошивки 2.60 IPMI виправила проблему (можливо, вона була виправлена ​​раніше, запис змін у 2,54 виглядає так, як це було).

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


2

Існує невеликий трюк, щоб увімкнути HTTPS для веб-інтерфейсу IPMI.

Якщо ваша прошивка IPMI підтримує це (моя прошивка 2,04 для підтримки X8DTH-iF), ви можете спочатку дозволити доступ HTTPS, перейшовши в Конфігурація -> SSL, завантаживши два файли PEM (сертифікат і приватний ключ), а по-друге, вручну перезавантажте модуль IPMI.

Нарешті, ви можете отримати доступ до веб-інтерфейсу IPMI за адресою https: // bmc-ip-or-hostname / . Я не можу сказати, що HTTPS працює повільніше, ніж HTTP.


0

Хтось із вас намагався закріпити річ за допомогою iptables? Здається, iptables встановлений, і я хочу зробити набір правил, який заперечує все, що приймається від декількох довірених IP-адрес, щоб зробити його більш безпечним ... Але, як я читав вище, жоден сценарій не читається з / config. Чи єдиний варіант crontab? А що робити, якщо ви зіпсували iptables?


1
Як я вже говорив раніше, набагато краще захистити свій IPMI-контролер зовні: наявністю його в повністю окремій vlan або фізичній мережі, або захищеним прикордонним брандмауером. Ця конкретна модель контролера IPMI / BMC, як правило, запускає linux, що потім пропонує вам уявити, що ви могли захистити її за допомогою iptables. Однак реальність полягає в тому, що переважна більшість BMC / IPMI /, що не викликає їх, не мають багато, або нічого, на шляху брандмауера, і тому ви не повинні покладатися на це. Збережіть собі клопоту і ставитесь до вашої мережі IPMI як до приватної, захищеної та не захищеної прав.
Даніель Лоусон,

1
Я не погоджуюся з тим, що "краще" захистити свій IPMI-контролер зовні; брандмауери та подібні їм більше схильні до збоїв у безпеці, ніж хост, який належним чином захищений. Однак якщо у вас є можливість використовувати окрему мережу, це добре, і у випадку таких пристроїв IPMI, як це, це здається майже важливим.
Керт Дж. Сампсон,

0

Як ви переглядали файлову систему? Якщо я звертаюсь до порту 22, я можу побачити, що запущений Dropbear, але якщо я спробую SSH з різними іменами користувачів, він не вимагає введення пароля. Я додав нового користувача з правами адміністратора, але SSH також не відповість для цього користувача. Я використовую материнську плату Supermicro X7SPA-HF, яка має чіп Winbond Hermon IPMI 2.0, версія версії прошивки 01.29, час складання 2009-12-31.


2
Я зробив ssh -v, щоб побачити, що відбувається, побачив, що він робить спробу аутентифікації відкритих ключів. Я змусив його працювати, відключивши це.

Зараз я перебуваю у ATEN SMASH-CLP System Shell для управління системою, версія 1.00
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.