Linux

Защита SuperMicro IPMI BMC

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

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

Меня также интересует, как я могу проверить список имен и паролей, которые можно использовать для доступа к системе через различные службы. По умолчанию стоит ADMIN/ADMIN, но ни в одном из файлов в /conf или /etc нет фразы «ADMIN», что меня сильно беспокоит. Есть файлы /conf/shadow и /conf/webshadow с загадочными идентификаторами «test», что также вызывает у меня беспокойство.

Ответ 1

Использование /conf/crontab кажется мне отличной идеей. Это позволит вам запускать скрипт раз в минуту, который гарантирует, что все, кроме http и ssh, будет выключено:

/etc/init.d/cdserver stop

/etc/init.d/fdserver stop

/etc/init.d/cim_sfcb stop

/etc/init.d/webgo stop

Это все еще оставляет вас с веб-сервером с контролем доступа на основе пароля (я не вижу способа заставить его проверять клиентские сертификаты) и кто знает, какие там будут удаленные уязвимости. Выключение его, когда я не использую его (а это большая часть времени), кажется разумным решением; добавление записи в crontab для выключения его каждые пять или десять минут позволит поймать те случаи, когда кто-то забывает выключить его, когда закончил работу.

Демон ssh – это версия dropbear, которая, судя по всему, довольно сильно модифицирована. Он считывает имена пользователей и пароли из файла /conf/PMConfig.dat (который также используется веб-сервером), входит в систему под любым именем и паролем как пользователь root и игнорирует файл ~/.ssh/authorized_keys. Последняя проблема раздражает; она заставляет вас разрешить вход в систему под паролем и открывает возможность для бэкдоров, в зависимости от того, откуда он получает свои имена и пароли. Итак, перед вами стоит дилемма: насколько вы действительно доверяете этому модифицированному демону ssh, установленному на системе, которая, очевидно, была разработана разработчиками, не заботящимися о безопасности? Не очень, учитывая количество недоработок, которые я видел в их сценариях оболочки. Есть необычные соглашения об именах (/etc/rc?.d/sshd является симлинком на /etc/init.d/ssh), огромное количество кода, который, похоже, не используется, а функции только в сценарии запуска ssh, такие как файл /conf/portcfg_ssh, и даже команда restart полностью неработоспособны. Лучший вариант, который я могу придумать, если вы вообще собираетесь использовать эту штуку, это запустить ssh на альтернативном порту с помощью задания cron; так, по крайней мере, меньше шансов, что он появится при проверке портов. Последний компонент – порты сетевого управления IPMI; я не вижу, как их отключить.

Ответ 2

При защите Supermicro IPMI следует обратить внимание на ssh-сервер. Старые версии кода X8SIL-F IPMI принимали ssh-соединения независимо от того, какой пароль был указан. Затем программа проверяла пароль и отклоняла или принимала соединение, но при этом оставалось короткое окно для создания переадресации портов ssh. Из-за этого люди получали жалобы на спам/злоупотребления для своих IPMI IP. Для материнской платы X8SIL-F версия прошивки 2.60 IPMI устранила проблему (возможно, она была устранена ранее, запись в журнале изменений 2.54 выглядит так, как будто это может быть именно она).

Вторая проблема – анонимный пользователь с паролем по умолчанию. Похоже, что анонимный пользователь исправлен в версии прошивки 2.22.

Ответ 3

Есть небольшая хитрость для включения HTTPS для веб-интерфейса IPMI.

Если ваша прошивка IPMI поддерживает это (моя прошивка 2.04 для X8DTH-iF поддерживает), вы можете, во-первых, включить HTTPS доступ, перейдя в Configuration -> SSL, загрузив два PEM файла (сертификат и закрытый ключ), и, во-вторых, вручную перезагрузить ваш IPMI модуль. Наконец, вы сможете получить доступ к веб-интерфейсу IPMI по адресу https://bmc-ip-or-hostname/. Я не могу сказать, что HTTPS работает медленнее, чем HTTP.

Ответ 4

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

ПОРТ/СЛУЖБА

22/tcp open ssh

80/tcp open http

443/tcp open https

555/tcp open dsf

5120/tcp open unknown

5900/tcp открыть vnc

5988/tcp open unknown

MAC-адрес: 00:30:48:D9:3A:71 (компьютер Supermicro)

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

 Большинство из этих параметров необходимы, если вы хотите осуществлять какое-либо удаленное управление. Если вы не хотите осуществлять удаленное управление, то вам стоит подумать о том, чтобы вообще не включать контроллер IPMI или купить вместо него плату X9DTU (символ -F означает «встроенный BMC»).

Если вы хотите осуществлять полное удаленное управление, но не можете запустить контроллеры IPMI в другой сети и все еще хотите запретить некоторый доступ, то вы всегда можете заставить контроллер IPMI выполнять команды iptables. Вы можете написать сценарий входа по ssh для выполнения команд или попросить у Supermicro devkit для BMC и создать новый образ с пользовательским сценарием iptables.

Схожие статьи

Linux

Что мешает кому-то установить некоторую запись для моего домена?

Linux

Как сделать так, чтобы дочерний процесс завершался после завершения родительского

Linux

Как обеспечить правильное резервное копирование нескольких серверов на базе Linux?

Linux

Слишком длинный список аргументов: ошибка для команд rm, cp, mv

×