【问题标题】: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 但是由于mqbrkrs 在mqm 组中,它不会限制mqbrkrs 管理QMgr。)

    最后,请注意,任何允许管理员访问的频道都应该经过严格的身份验证。如果您设置的唯一 CHLAUTH 规则是上述规则,则具有到 QMgr 的网络路由的 anybody 可以通过在连接上声明 mqbrkrs 用户 ID 来连接该通道。连接后,他们将完全控制 QMgr,并能够使用 mqm 或 mqbrkrs 用户 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
    相关资源
    最近更新 更多