2

我试图弄清楚我们将如何配置/设置身份验证、队列和队列管理器,以连接位于服务器/域上的 MQ 客户端,该服务器/域与将消息转发到的 MQ 服务器完全分开。

我假设在正常的组织环境中,您可以只使用 Active Directory(如果托管在 Windows 服务器上)进行身份验证/AD 查找。但是,在这种情况下,因为它们是不同的组织,您不能这样做吗?

您可以简单地将 SSL 证书应用于客户端/服务器并将其用作身份验证吗?如果是这样,那是否仅适用于连接中使用的通道?

不知道如何继续进行。

任何建议将不胜感激。

谢谢,

小号

4

1 回答 1

2

查看用于 v7.0 及更早版本的强化 WebSphere MQ演示文稿。要记住的是 WMQ 不验证任何内容。它基于操作系统身份和组进行授权,但没有进行密码检查。

对于 QMgrs 和客户端位于 Windows 网络上的情况,连接使用 SID,因此似乎执行了一些有用的身份验证。但是,如果尝试来自非 Windows 平台的连接,Windows QMgr 将使用 ID 的字符串表示。例如,如果某人的桌面上有一个 Linux VM,他们可以轻松创建一个名为 MUSR_MQADMIN 的用户 ID,Windows QMgr 将接受该连接。有一个设置会导致 Windows QMgr 只接受与它可以解析的 SIDS 的连接,但即使在那里,它也只是知道 SID 值是什么来在连接上欺骗它们的问题。

这里的教训是,任何QMgr,甚至是 Windows 上的 QMgr,都必须配置为对远程连接进行身份验证。对于 WMQ v7.1 及更高版本,QMgr 具有将 X.509 证书 DN 映射到用户 ID 或执行 IP 过滤的功能。在 v7.1 之前,这些功能需要一个出口,例如BlockIP2。Capitalware 销售的MQAUSX具有BlockIP2 的功能,并且会进行ID 和密码认证,并得到支持。

第一个建议是使用 v7.1 QMgr,以便获得CHLAUTH映射和过滤规则。即使您不使用证书 v7.1 也会限制管理连接,因此攻击者更难获得完整的管理员权限。然后,如果您需要密码验证,请结合使用 SSL 通道(加密密码并防止简单的重放攻击)以及您可以自己编写或购买的出口。

请注意,允许来自域外的连接不会带来任何新的挑战。未在通道定义中或通过出口设置 MCAUSER 的 v7.1 之前的 Windows QMgr 允许远程管理访问,即使来自本地 Windows 域的连接也是如此。始终需要加强 QMgr,即使如果管理员没有为诚实的用户设置身份验证,他们也会收到授权错误

摘要:
对于来自您的管理域之外的客户端,我建议使用相互验证的 TLS/SSL 通道。我在上面链接到的同一页面还包含 WMQ 安全实验室指南和脚本,它们展示了如何编写 WMQ 证书的创建和交换脚本以及使用它们配置 WMQ Explorer。

无论您做什么,MCAUSER任何合法通道上的 都必须在配置中或通过退出设置。如果允许客户端指定 ID,则没有什么可以阻止它指定管理 ID。对于未使用的通道,例如SYSTEM.DEF.*and SYSTEM.AUTO.*,将 MCAUSER 设置为一个不能是本地 ID 的值,例如no!bodyv7.1 和更高版本的 or *NOACCESS

于 2012-04-13T21:27:53.167 回答