【问题标题】:Unable to connect to queue manager in WebSphere MQ 7.1无法连接到 WebSphere MQ 7.1 中的队列管理器
【发布时间】:2012-10-05 02:12:48
【问题描述】:

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

【问题讨论】:

    标签: security ibm-mq mq userid messagebroker


    【解决方案1】:

    MQ v7.1 中的 MQ 安全性得到了很大改进,与以前的 MQ 版本不同。在 MQ v7.1 中,默认情况下所有 SYSTEM.通道都被阻止。如果您尝试使用这些 SYSTEM. 通道中的任何一个,那么您将获得 2035,即 MQRC_NOT_AUTHORIZED。推荐的方式是为 broker 创建自己的 SVRCONN 通道,并创建通道认证记录,以允许用户访问队列管理器。

    请参阅link,了解 T.Rob 对类似问题的详细回答。

    更新:

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

    Message Broker 工具包是一个 GUI,可用于管理消息代理,例如创建执行组、创建流程、部署 bar 文件等。工具包在 Windows 上可用,我猜它在 Linux 上可用。

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

    【讨论】:

    • 感谢您的回复。根据给定的链接...你能告诉我应该在哪些频道上设置 CHLAUTH 吗?因为在这个链接上给出了: SET CHLAUTH('JAVA.CHANNEL') TYPE(USERMAP) CLNTUSER('mqbrkrs') USERSRC(MAP) MCAUSER('mqbrkrs') ACTION(ADD).. 但是通过这个命令我会只能在 'JAVA.CHANNEl' 上授权 mqbrkrs .. 我还需要在哪些其他通道上设置授权,以便 mqbrkrs(添加到 mqm 组中)能够创建执行组?另外,请告诉我是否还需要从 mqm 组中删除 mqbrkrs?这样,mqbrkrs 就不再是管理员用户了吗?
    • 从 V7.1 开始,您必须为您定义的 每个 SVRCONN 通道提供访问权限。定义频道和授权组将允许非管理员用户连接。对于具有管理员访问权限的用户,您还必须覆盖阻止管理员用户的 CHLAUTH 规则。最好的建议是每个频道这样做,而不是删除或禁用规则。如果可能,请务必将 mqbrkrs 从 mqm 组中删除。仅将实际 MQ 管理员保留在 mqm 组中。 Shashi - 感谢您的链接!
    • @T.Rob .. 我在 mqm 组中添加了 mqbrkrs .. 我会告诉你到目前为止我做了什么.. 我禁用了 CHLAUTH.. 之后一切正常。 .但我不想要这个..现在..我删除了队列管理并重新创建它,以便启用身份验证。现在我执行: SET CHLAUTH(*) TYPE (QMGRMAP) QMNAME(NSPZPAI1) USERSRC(MAP) MCAUSER('mqbrkrs') 后跟 setmqaut -m NSPZPAI1 -n ** -t queue -g mqbrkrs +dsp +inq +put +得到。但我仍然得到“2035”。请告知,因为它真的很重要。
    • 代理工具包尝试连接的 QMgr 的名称是什么? SVRCONN 频道名称是什么? (这是代理工具包,而不是代理本身给出问题,对吧?)
    • @T.Rob .. 队列管理器名称是 NSPZPAI1,mq 管理员组名称是 mqm,mq 用户也是 mqm。代理名称为 NSPZPAI1,代理管理员用户名为 mqbrkrs,它也添加到 mqbrkrs 组中。mqm 用户将 mqm 作为其主要组,将 mqbrkrs 作为其次要组。同样,mqbrkrs 用户将 mqbrkrs 作为其主要组,将 mqm 作为其次要组。我从 mqm 用户创建队列管理器,从 mqbrkrs 用户创建代理和执行组。我能够创建代理并启动它,但是当我尝试创建执行时组,我面临 2035 异常。
    【解决方案2】:

    如果您在 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 的网络路由的 anybody 可以通过在连接上声明 mqbrkrs 用户 ID 来连接该通道。连接后,他们将完全控制 QMgr,并能够使用 mqmmqbrkrs 用户 ID 远程匿名执行命令。至少添加一个 CHLAUTH 规则以通过 IP 地址过滤此通道上的连接。或者,更好的是,使用 SSL 并通过证书专有名称过滤连接。

    【讨论】:

    • ..非常感谢您的回答,它们真的很有用..我开始了解 MQ 7.1 及其安全功能。我也能够成功创建执行组。谢谢..
    猜你喜欢
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多