我想检查MQ管理器中队列和通道的所有权限以及访问级别,并检查是否存在具有管理访问权限的客户端队列或通道。为此,我使用了./dmpmqaut命令,并成功转储了所有对象的权限。但是,我这里有两个问题:

1-我的Q经理中有很多对象,它们具有mqm实体,其权限设置为:almqi dlt chg dsp clr。这正常吗?我的意思是,我所知道的是客户端不应具有mqm实体名称,并且此处的权限完全不受限制。我对吗?

2-我想检查所有通道和队列MCAUSER,就像我在Windows上的MQ-Explorer中看到的那样。有什么方法可以在Linux机器中检查它吗?

最佳答案

无论何时创建MQ对象,创建该对象的用户(或该用户在非Windows Distributed平台中的主要组)都将被授予对该对象的所有权限。实际上,这通常意味着在执行auths转储时,mqm组在每个对象上都是可见的。在Windows上,除了mqm外,这通常是adminID@domain

在Linux上,您可以...echo "dis chl(*) mcauser | runmqsc [qmgrname]...从命令行中查看MCAUSER在通道上的位置。您还可以使用MQ Explorer查看此内容。

为所有入站通道定义的MCAUSER应该是一个阻止所有访问的通道。我曾经推荐nobody,但是由于在某些系统上这可能是有效的ID,所以我现在推荐*nobody。请注意,“入站通道”是指RCVRRQSTRCLUSRCVRSVRCONN类型的通道。 “全部”是指名为SYSTEM.AUTO.*SYSTEM.DEF.*以及您自己定义的任何通道。

确保对连接请求进行身份验证时,存在导出或CHLAUTH规则将MCAUSER映射到期望值。从7.1开始,任何版本的MQ都可以使用CHLAUTH规则。此映射确保仅经过身份验证的用户或合作伙伴QMgr可以连接。

如果在未定义setmqaut规则或设置安全性导出的情况下定义了授权(SET AUTHRECCHLAUTH命令),则后果是安全性较差,而不是更好。原因是合法用户似乎对他们的连接有限制,但是恶意用户将能够轻易欺骗管理用户ID。

有关此主题的更多信息,请参见http://t-rob./net/links上的基本MQ安全性强化幻灯片。

10-05 23:00