Недавно я приобрел материнскую плату SuperMicro X8DTU-F со встроенным BMC, который в основном работает под управлением системы IPMI. Оказывается, это небольшая система Linux, работающая на процессоре ARM.
К сожалению, на нем запущено большое количество программного обеспечения, большая часть которого мне не нужна, и у меня нет возможности разместить его за брандмауэром. Тем не менее, я хочу функциональность IPMI. У кого-нибудь, кто использовал один из них, есть какие-то конкретные предложения о том, как обезопасить вещь? Он загружается из файловой системы ПЗУ, и, похоже, нет никаких ловушек, чтобы отключить любой из различных серверов, которые он запускает ....
Мне также было бы интересно узнать, как я могу проверить список имен и паролей, которые могут использоваться для доступа к системе через все различные сервисы. По умолчанию используется ADMIN
/ ADMIN
, но ни один из файлов в / conf или / etc не содержит ADMIN, что меня беспокоит. Есть /conf/shadow
и /conf/webshadow
файлы с таинственными «тестовыми» идентификаторами в них, что не дает мне чувствовать себя особенно комфортно.
источник
Ответы:
Использование
/conf/crontab
, как указал Долсон, звучит для меня как отличная идея. Это позволяет мне запускать скрипт раз в минуту, который гарантирует все, кроме http и ssh:Это все еще оставляет мне веб-сервер с контролем доступа на основе паролей (я не вижу способа проверить его на клиентских сертификатах) и кто знает, какие удаленные уязвимости. Выключение, когда я им не пользуюсь (что происходит чаще всего), кажется разумным решением; добавление записи в crontab для выключения каждые пять или десять минут может привести к тому, что кто-то забудет выключить его, когда закончит.
Ssh daemon - это версия dropbear, которая выглядит довольно сильно модифицированной. Он считывает имена пользователей и незашифрованные пароли
/conf/PMConfig.dat
(которые также используются веб-сервером), регистрирует любое действительное имя и пароль от имени пользователя root и игнорирует~/.ssh/authorized_keys
файл. Эта последняя проблема раздражает; он вынуждает вас разрешить вход в систему с паролями и открывает возможность бэкдоров в зависимости от того, откуда он получает свои имена и пароли.Итак, перед вами стоит дилемма: насколько вы действительно доверяете этому модифицированному демону ssh, установленному в системе, которая, очевидно, была разработана разработчиками-наивными разработчиками? Совсем немного, учитывая количество разбитых битков, которые я видел в их сценариях оболочки. Существуют необычные соглашения об именах (/etc/rc?.d/sshd - это символическая ссылка на /etc/init.d/ssh), огромный объем кода, который кажется неиспользуемым, и функции только в сценарии запуска ssh, такие как
/conf/portcfg_ssh
файл и дажеrestart
команда полностью нарушены. (Не пытайтесь использовать их; sshd не будет перезагружаться, и вы будете испорчены, если у вас нет существующего имени пользователя. Мы перезагрузили BMC и в итоге пришлось его перепрошить.)Наилучший вариант, который я могу придумать, если кто-то вообще собирается его использовать, - это запустить ssh на альтернативном порту, используя задание cron, так что, по крайней мере, он менее вероятен в portcancan.
Последний компонент - порты управления сетью IPMI; Я не вижу, как их отключить.
источник
В идеале ваша управляющая сеть должна быть другой, нежели другая сеть, или, по крайней мере, другой виртуальной локальной сетью с ограниченным маршрутизируемым доступом.
Эти системы на самом деле не работают так много сервисов:
(и UDP / 623 для самого IPMI)
Большинство из них необходимы, если вы хотите осуществлять какое-либо удаленное управление. Если вы не хотите выполнять удаленное управление, вам следует вообще не включать контроллер IPMI или покупать плату X9DTU (-F обозначает «встроенный BMC»)
Если вы хотите выполнить полное удаленное управление, не можете запустить свои контроллеры IPMI в другой сети и все же хотите отключить некоторый доступ, тогда вы всегда можете заставить контроллер IPMI выполнять команды iptables. Вы можете написать сценарий входа в систему по ssh для выполнения команд или попросить у Supermicro devkit для BMC и создать новый образ с помощью специального сценария iptables.
ОБНОВИТЬ
Я еще раз взглянул на наши системы, и файловая система / conf смонтирована rw. Ни один из сценариев инициализации не вызывал ничего напрямую в / conf (что я видел), но есть файл crontab. Итак, я думаю, вы могли бы скопировать в сценарий iptables и отредактировать / conf / crontab, чтобы вызвать его с некоторым подходящим интервалом. Вы бы хотели, чтобы он запускался как можно скорее на BMC init, но не обязательно, чтобы он запускался каждую минуту. Или, может быть, вам все равно.
источник
При защите Supermicro IPMI нужно учитывать одну вещь - сервер ssh. Более старые версии кода IPMI X8SIL-F принимали ssh-соединения независимо от того, какой пароль был задан. Затем программа проверит пароль и отклонит или примет соединение, но было короткое окно для создания порта ssh. Из-за этого люди получали жалобы на спам / злоупотребление своими IP-адресами IPMI . Для материнской платы X8SIL-F, версия микропрограммы IPMI 2.60 устранила проблему (возможно, она была исправлена ранее, запись в журнале изменений 2.54 выглядит так, как будто это может быть).
Вторая проблема - это анонимный пользователь с паролем по умолчанию. Анонимный пользователь, кажется, исправлен в версии прошивки 2.22.
источник
Есть небольшая хитрость для включения HTTPS для веб-интерфейса IPMI.
Если ваша прошивка IPMI поддерживает это (моя прошивка 2.04 для X8DTH-iF поддерживает), вы можете, во-первых, включить доступ HTTPS, перейдя в «Конфигурация -> SSL», загрузив два файла PEM (сертификат и закрытый ключ) и, во-вторых, вручную перезагрузите ваш модуль IPMI.
Наконец, вы можете получить доступ к веб-интерфейсу IPMI по адресу https: // bmc-ip-or-hostname / . Я не могу сказать, что HTTPS работает медленнее, чем HTTP.
источник
Кто-нибудь из вас пытался обезопасить это с помощью iptables? Кажется, установлен iptables, и я хочу создать набор правил, который запрещает все принимать с нескольких доверенных IP-адресов, чтобы сделать его немного более безопасным ... Но, как я читал выше, никакие сценарии не читаются из / config. Является ли crontab единственным вариантом? А что если вы испортили iptables?
источник
Как вы смотрели файловую систему? Если я подключусь к порту 22, я вижу, что dropbear работает, но если я пытаюсь использовать SSH с разными именами пользователей, он не запрашивает пароль. Я добавил нового пользователя с правами администратора, но SSH также не будет отвечать за него. Я использую материнскую плату Supermicro X7SPA-HF с микросхемой Winbond Hermon IPMI 2.0, версия микропрограммы 01.29, время сборки 2009-12-31.
источник