繁体   English   中英

无法连接到WebSphere MQ 7.1中的队列管理器

[英]Unable to connect to queue manager in WebSphere MQ 7.1

我在Linux平台上安装了WebSphere MQ 7.1,之后我安装了WebSphere Message Broker 8.0.0.1。 现在,当我尝试创建一个执行组时,我得到一个异常:原因代码2035.此异常表明用户未经授权连接到队列管理器。 我在mqm组中添加了此用户。 当我使用MQ 7.0.x时,我没有遇到任何此类问题。 我经常搜索并发现MQ 7.1中存在用户ID阻塞。 但是,我希望这个用户能够创建执行组,我该怎么办? 请指教。

MQ安全性在MQ v7.1中得到了很大改进,并且与早期MQ版本中的安全性不同。 在MQ v7.1中,默认为所有SYSTEM。 渠道被封锁。 如果您正在尝试使用这些SYSTEM中的任何一个。 然后你将得到2035,即MQRC_NOT_AUTHORIZED。 建议的方法是为代理创建自己的SVRCONN通道,并创建通道身份验证记录以允许用户访问队列管理器。

有关类似问题,请参阅此链接以获取T.Rob的详细解答。

更新:

SVRCONN通道定义队列管理器的端点,表示客户端连接到队列管理器所需的连接信息。 客户端应用程序使用此类型的通道向/从队列或主题发送和接收消息。

Message Broker工具包是可用于管理消息代理的GUI,例如创建执行组,创建流,部署条形文件等.Windows工具包可在Windows上使用,我想它可以在Linux上使用。

我知道MB工具包需要SYSTEM.BRK.CONFIG通道,这是一个SVRCONN通道连接到队列管理器。 我认为这是您需要授权允许Message Broker连接到MQ的通道。 您能否检查是否是这种情况,如果是,请为该频道创建频道认证记录?

如果您在V7.1或更高版本上创建新的QMgr,它将带有以下默认的CHLAUTH规则:

SET CHLAUTH(SYSTEM.ADMIN.SVRCONN)           TYPE(ADDRESSMAP)
    DESCR(Default rule to allow MQ Explorer access)
    ADDRESS(*) 
    MCAUSER( )                              USERSRC(CHANNEL)

SET CHLAUTH(SYSTEM.*)                       TYPE(ADDRESSMAP)
    DESCR(Default rule to disable all SYSTEM channels)
    ADDRESS(*)
    MCAUSER( )                              USERSRC(NOACCESS)

SET CHLAUTH(*)                              TYPE(BLOCKUSER)
    DESCR(Default rule to disallow privileged users)
    USERLIST(*MQADMIN)

底部的那个告诉QMgr“如果有人试图使用管理用户ID通过SVRCONN连接,在所有情况下都阻止连接。”

要允许来自Broker Toolkit的连接,您有两种选择,如下所示:

  1. 从mqm组中删除mqbrkrs。 这允许它在不触发阻止管理员用户的CHLAUTH规则的情况下进行连接。 当然,您需要将mqbrkrs组的授权授予它需要访问的所有代理和应用程序队列,因为它不再是MQ管理员。
  2. 重写CHLAUTH规则以允许代理工具包以SYSTEM.BROKER.CONFIG通道的管理员身份进行连接。

作为安全专家,我赞成第一个选择。 MQ管理员可以管理代理是不可避免的。 但是,可以避免允许代理(以及扩展所有代理流)来管理QMgr。

但是,如果您希望采用第二条路线,则需要覆盖阻止管理员访问的CHLAUTH规则。 有几种方法可以做到这一点。 您可以删除该规则,但会将所有频道打开为管理员连接。 更精确的方法是仅为管理员要连接的通道提供规则。 例如:

SET CHLAUTH(SYSTEM.BKR.CONFIG) TYPE(BLOCKUSER) +
    USERLIST('*NOACCESS')

由于WMQ应用了最具体的规则,因此默认规则将被新规则覆盖,但仅适用于SYSTEM.BKR.CONFIG通道。 BLOCKUSER规则语法允许我们指定拒绝的人但不允许允许的人,它使用用户ID而不是组ID。 为了允许管理员访问,有必要指定一些不是*MQADMIN ID。 我选择了*NOACCESS因为它不能是实际的用户ID,而是WMQ在其他地方使用的保留字。 您可以轻松使用任何用户ID,例如nobody甚至mqm (阻止mqm将允许mqbrkrs但不允许mqm但是因为mqbrkrsmqm组中,所以不会限制mqbrkrs管理QMgr。)

最后,请注意,任何允许管理员访问的频道都应进行强身份验证。 如果您设置的唯一CHLAUTH规则是上面的规则,则任何具有到QMgr的网络路由的人都可以通过断言连接上的mqbrkrs用户ID来连接该通道。 连接后,他们可以完全控制QMgr,并能够使用mqmmqbrkrs用户ID远程,匿名执行命令。 至少添加一个CHLAUTH规则来按IP地址过滤此通道上的连接。 或者,更好的是,使用证书专有名称的SSL和过滤器连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM