在Linux中检查MQ权限和MCAUSER

我想检查我的MQpipe理器中的所有权限和访问级别的队列和通道,并检查是否存在具有pipe理访问权限的客户端队列或通道。 为了做到这一点,我使用./dmpmqaut命令,并成功抛弃了所有对象的权限。 不过,我在这里有两个问题:

1-在我的Qpipe理器中有很多对象,它们具有mqm的实体,它们的权限设置为: almqi dlt chg dsp clr 。 那这是正常的吗? 我的意思是我所知道的是,客户不应该有mqm实体名称,在这里当局不受限制。 我对吗?

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

无论何时创建MQ对象,创建该对象的用户(或非Windows分布式平台上的该用户的主组)都被授予该对象的所有权限。 实际上,这通常意味着当您执行身份验证转储时,mqm组在每个对象上都可见。 在Windows上,除了mqm,这通常是adminID@domain

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

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

确保连接请求通过身份验证时,退出或CHLAUTH规则将MCAUSER映射到预期值。 CHLAUTH规则在7.1以上的任何版本的MQ上都可用。 此映射确保只有经过身份验证的用户或合作伙伴QMgr可以连接。

如果定义了授权( setmqautSET AUTHREC命令)而没有定义CHLAUTH规则或设置安全性退出,则效果会更差 ,而不是更好。 原因是合法用户似乎对他们的连接有限制,但恶意用户将能够轻易欺骗管理用户ID。

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