AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 17521
Accepted
cjs
cjs
Asked: 2009-06-02 21:35:56 +0800 CST2009-06-02 21:35:56 +0800 CST 2009-06-02 21:35:56 +0800 CST

保护 SuperMicro IPMI BMC

  • 772

最近买了一块SuperMicro X8DTU-F主板,内置BMC,基本运行IPMI系统。它原来是一个运行在 ARM 处理器上的小型 Linux 系统。

不幸的是,它运行了大量的软件,其中大部分是我不需要的,而且我没有能力将它放在防火墙后面。但是,我确实想要 IPMI 功能。使用过其中一种的人是否对如何保护该东西有一些具体的建议?它从本质上是一个 ROM 文件系统启动,甚至似乎没有任何挂钩可以关闭它运行的任何各种服务器......

我还对如何验证可用于通过所有各种服务访问系统的名称和密码列表感兴趣。默认值为ADMIN/ ADMIN,但 /conf 或 /etc 中的文件都没有“ADMIN”,这让我很担心。有文件/conf/shadow,/conf/webshadow里面有神秘的“测试”ID,这也让我感觉不太舒服。

security ipmi supermicro
  • 6 6 个回答
  • 27068 Views

6 个回答

  • Voted
  1. Daniel Lawson
    2009-06-04T19:33:45+08:002009-06-04T19:33:45+08:00

    理想情况下,您的管理网络将是与其他网络不同的网络,或者至少是具有有限路由访问权限的不同 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 上尽快运行,但您不一定希望它每分钟都运行。或者也许你不在乎。

    • 6
  2. Best Answer
    cjs
    2009-06-06T00:13:14+08:002009-06-06T00:13:14+08:00

    正如 dlawson 指出的那样,使用/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
    

    这仍然给我留下了一个具有基于密码的访问控制的 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,所以至少它不太可能出现在 portscan 中。

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

    • 6
  3. ddrown
    2012-02-16T07:02:26+08:002012-02-16T07:02:26+08:00

    保护 Supermicro IPMI 时要考虑的一件事是 ssh 服务器。无论给出什么密码,旧版本的 X8SIL-F IPMI 代码都接受 ssh 连接。然后该软件将检查密码并拒绝或接受连接,但有一个简短的窗口来创建 ssh 端口转发。 因此,人们收到了针对 IPMI IP 的垃圾邮件/滥用投诉。对于 X8SIL-F 主板,2.60 IPMI 固件版本修复了这个问题(它可能更早被修复,2.54 的更新日志条目看起来可能就是它)。

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

    • 4
  4. AntonioK
    2012-05-09T08:35:08+08:002012-05-09T08:35:08+08:00

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

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

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

    • 2
  5. Bas van den Heuvel
    2009-06-26T17:41:32+08:002009-06-26T17:41:32+08:00

    你们有没有人尝试过用 iptables 来保护这个东西?似乎 iptables 已安装,我想创建一个规则集,拒绝接受来自几个受信任 IP 的所有内容,以使其更加安全......但正如我在上面所读到的,没有从 /config 读取任何脚本。crontab 是唯一的选择吗?如果你搞砸了 iptables 怎么办?

    • 0
  6. anywhere
    2010-06-26T02:44:01+08:002010-06-26T02:44:01+08:00

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

    • 0

相关问题

  • 为什么使用authorized_keys通过ssh自动登录不起作用?

  • 如何启用与 SQL Server 实例的加密连接?

  • 从多个位置保护远程服务器/工具访问的最佳方法是什么?

  • 在 SOHO 环境中实施的最佳 VPN 技术是什么?[关闭]

  • 保护新的 Ubuntu 服务器 [关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve