Tan*_*anu 4 security userid messagebroker mq ibm-mq
我在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)
Run Code Online (Sandbox Code Playgroud)
底部的那个告诉QMgr"如果有人试图使用管理用户ID通过SVRCONN连接,在所有情况下都阻止连接."
要允许来自Broker Toolkit的连接,您有两种选择,如下所示:
作为安全专家,我赞成第一个选择.MQ管理员可以管理代理是不可避免的.但是,可以避免允许代理(以及扩展所有代理流)来管理QMgr.
但是,如果您希望采用第二条路线,则需要覆盖阻止管理员访问的CHLAUTH规则.有几种方法可以做到这一点.您可以删除该规则,但会将所有频道打开为管理员连接.更精确的方法是仅为管理员要连接的通道提供规则.例如:
SET CHLAUTH(SYSTEM.BKR.CONFIG) TYPE(BLOCKUSER) +
USERLIST('*NOACCESS')
Run Code Online (Sandbox Code Playgroud)
由于WMQ应用了最具体的规则,因此新规则会覆盖默认规则,但仅限于SYSTEM.BKR.CONFIG通道.该BLOCKUSER规则的语法允许我们指定谁否认,但不是谁允许它需要用户ID而不是组ID.为了允许管理员访问,有必要指定一些不是的ID *MQADMIN.我*NOACCESS之所以选择它是因为它不是实际的用户ID,而是WMQ在其他地方使用的保留字.您可以轻松使用任何用户ID,例如nobody甚至mqm.(阻止mqm将允许mqbrkrs但不会mqm因为mqbrkrs在mqm组中它不会限制mqbrkrs管理QMgr.)
最后,请注意,任何允许管理员访问的频道都应进行强身份验证.如果您设置的唯一CHLAUTH规则是上面的规则,则任何具有到QMgr的网络路由的人都可以通过断言连接上的mqbrkrs用户ID 来连接该通道.连接后,他们可以完全控制QMgr,并能够使用mqm或mqbrkrs用户ID 远程,匿名执行命令.至少添加一个CHLAUTH规则来按IP地址过滤此通道上的连接.或者,更好的是,使用证书专有名称的SSL和过滤器连接.