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

Целесообразно ли блокировать ICMP?

Linux

Команда df в Linux не показывает правильное свободное пространство после удаления файла

Linux

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

Linux

Как лучше всего послать сигнал всем членам группы процессов