保护SuperMicro IPMI BMC


17

我最近购买了SuperMicro X8DTU-F主板,该主板具有内置的BMC,基本上可以运行IPMI系统。事实证明,这是一个运行在ARM处理器上的小型Linux系统。

不幸的是,它正在运行大量软件,而我不需要很多软件,而且我也没有能力将其置于防火墙之后。但是,我确实需要IPMI功能。使用这些工具之一的人是否对如何保护该物品有一些具体建议?它从本质上是ROM文件系统启动,甚至似乎没有任何挂钩可以关闭它运行的各种服务器。

我还对如何验证可用于通过所有各种服务访问系统的名称和密码列表感兴趣。默认值为ADMIN/ ADMIN,但/ conf或/ etc中的文件均未包含“ ADMIN”,这让我很担心。有/conf/shadow/conf/webshadow文件,其中包含神秘的“测试” ID,这也不会让我感到特别自在。


我还没有找到shadow,webshadow的内容与实际有效用户之间的关联。通过BMC管理添加的新用户不会出现在这些文件中。此外,“匿名”,“ test1”,“ test2”用户具有文件系统上不存在的外壳程序。
Daniel Lawson

2
另请参阅IPMI安全最佳实践中的 Dan Farmer指南。他发表了一篇最近的论文,详细介绍了IPMI的一些重大安全问题,标题为ipmi:货运火车到地狱
Stefan Lasiewski

1
感谢您的大力支持。有关安全性问题的简短摘要,请访问fish2.com/ipmi/itrain-gz.html,而非常简短的摘要是,“您完全被搞砸了”。 叹。
Curt J. Sampson

Answers:


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

这仍然使我只能使用具有基于密码的访问控制的Web服务器(我无法看到它来验证客户端证书的方法),并且谁知道什么远程漏洞。当我不使用时(大多数情况下)将其关闭似乎是一个合理的解决方案。添加crontab条目每隔五到十分钟将其关闭一次,就会遇到这种情况,即有人忘记完成后将其关闭。

ssh守护程序是dropbear的一个版本,似乎已被大量修改。它从/conf/PMConfig.dat(Web服务器也使用)读取用户名和纯文本密码,以root用户身份登录任何有效的名称和密码,并忽略该~/.ssh/authorized_keys文件。最后一个问题很烦人。它会强制您允许密码登录,并打开后门的可能性,具体取决于从何处获取其名称和密码。

因此,这就是您所面临的难题:您真的信任安装在由纯熟的开发人员设计的系统上的这个经过修改的ssh守护程序吗?考虑到我在他们的shell脚本中看到的碎片的残缺数量,一点也没有。有一些不寻常的命名约定(/etc/rc?.d/sshd是/etc/init.d/ssh的符号链接),大量未使用的代码,以及ssh启动脚本中的功能,例如该/conf/portcfg_ssh文件甚至restart命令都完全损坏。(不要尝试使用这些命令; sshd不会重新启动,除非您已有现有的登录名,否则您将被搞砸。我们重新启动了BMC,最终不得不重新刷新它。)

我想,最好的选择是,如果要使用该东西,那就是使用cron作业在备用端口上启动ssh,因此至少它不太可能出现在portcan中。

最后一个组件是IPMI网络管理端口。我看不到如何关闭这些功能。


您对修改的大多数担心可能都不是问题。Dropbear使用pam,后者使用libpamipmi进行身份验证-我没有看到任何证据表明它实际上直接读取明文密码。Libpamipmi将对ipmi堆栈进行ipmi调用,这很可能是在读取明文密码,但是我的观点是,dropbear守护程序看起来并没有被搞砸。但是,如果您有任何相反的确切证据,我很想听听。
丹尼尔·劳森2009年

好吧,我们知道它已经被打破了,因为它没有办法a)使用密钥而不是密码,并且b)禁用密码认证。
Curt J. Sampson,2009年

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)

(以及IPMI本身的UDP / 623)

如果您想进行任何种类的远程管理,则需要大多数这些。如果您不想进行远程管理,则应该考虑完全不启用IPMI控制器,或者购买X9DTU板(-F表示“内置BMC”)

如果要进行完全的远程管理,不能在其他网络上运行IPMI控制器,而仍然想禁用某些访问权限,则始终可以使IPMI控制器执行iptables命令。您可以编写一个ssh登录脚本来执行命令,或者向Supermicro索要BMC的devkit,并使用自定义iptables脚本构建一个新映像。

更新

我在这里再次查看了我们的系统,并将/ conf文件系统挂载到rw。没有一个初始化脚本直接在/ conf中调用任何东西(我可以看到),但是有一个crontab文件。因此,我想您可以复制iptables脚本,然后编辑/ conf / crontab以适当的时间间隔调用它。您希望它可以在BMC init上尽快运行,但是并不需要它每分钟运行。也许您不在乎。


我很想拥有一个单独的管理网络,但是不幸的是,这已经进入了其他人的数据中心,而我却没有。至于管理,我真正想要的只是https和ssh。
Curt J. Sampson

您永远不会想要通过LAN的​​KVM吗?
Daniel Lawson

您可以在DC的主机前面有一个单独的防火墙单元。这样可以解决问题。您是否已请求Supermicro支持以寻求帮助?我发现他们是相当敏感
丹尼尔·劳森

不需要。我不需要LAN上的KVM,因为BIOS,Grub和Linux内核都支持串行控制台。
Curt J. Sampson

4

保护Supermicro IPMI时要考虑的一件事是ssh服务器。X8SIL-F IPMI代码的旧版本接受ssh连接,无论输入什么密码。然后,该软件将检查密码并拒绝或接受连接,但是存在一个用于创建ssh端口转发的简短窗口。 因此,人们收到了针对其IPMI IP的垃圾邮件/滥用投诉。对于X8SIL-F主板,2.60 IPMI固件版本已解决了该问题(可能之前已修复,2.54的changelog条目看起来可能是这样)。

第二个问题是具有默认密码的匿名用户。匿名用户似乎已在固件版本2.22中修复。


2

有一个小技巧可以为IPMI的Web界面启用HTTPS

如果您的IPMI固件支持(我的X8DTH-iF的2.04固件支持),则可以首先通过转到“配置”->“ SSL”并上传两个PEM文件(证书和私钥)来启用HTTPS访问,然后再手动进行。重新启动IPMI模块。

最后,您可以通过https:// bmc-ip-or-hostname /访问IPMI的Web界面。我不能说HTTPS的运行速度比HTTP慢。


0

你们中有人尝试使用iptables来保护事物吗?看来iptables已安装,并且我想创建一个规则集,该规则集拒绝从几个受信任IP接受的所有内容,以使其更加安全...但是,正如我在上文所述,没有从/ config中读取任何脚本。crontab是唯一的选择吗?如果您弄乱了iptables怎么办?


1
如前所述,最好从外部保护IPMI控制器:通过将IPMI控制器放在完全独立的VLAN或物理网络上,或者由边界防火墙保护。IPMI / BMC控制器的这种特定模型恰巧运行linux,然后提示您可以使用iptables保护它的想法。但是现实是,绝大多数BMC / IPMI /无论您叫什么,它们都没有太多或什么防火墙功能,因此您不应该依赖它。避免麻烦,将IPMI网络视为私有,安全且未路由的网络。
丹尼尔·劳森2009年

1
我不同意从外部保护IPMI控制器“更好”。防火墙和类似的东西比首先要妥善保护的主机更容易出现安全故障。但是,如果您有能力使用单独的网络,那将是一件好事,对于像这样的IPMI设备,这几乎是必不可少的。
Curt J. Sampson,2009年

0

您如何查看文件系统?如果我远程登录到端口22,则可以看到dropbear正在运行,但是如果我尝试使用各种用户名进行SSH,则不会提示输入密码。我添加了一个具有管理员特权的新用户,但是SSH也不会对此用户做出响应。我正在使用具有Winbond Hermon IPMI 2.0芯片,固件版本为01.29,构建时间为2009-12-31的Supermicro X7SPA-HF主板。


2
我做了ssh -v,看看发生了什么,看到它正在尝试公共密钥身份验证。我通过禁用它来使其工作。

我现在在ATEN SMASH-CLP系统管理程序,1.00版本
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.