我想检查我的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
。 请注意,“入站通道”是指RCVR
, RQSTR
, CLUSRCVR
和SVRCONN
类型的SVRCONN
。 所有“我”是指名为SYSTEM.AUTO.*
, SYSTEM.DEF.*
和您自己定义的任何通道。
确保连接请求通过身份验证时,退出或CHLAUTH
规则将MCAUSER映射到预期值。 CHLAUTH
规则在7.1以上的任何版本的MQ上都可用。 此映射确保只有经过身份验证的用户或合作伙伴QMgr可以连接。
如果定义了授权( setmqaut
或SET AUTHREC
命令)而没有定义CHLAUTH
规则或设置安全性退出,则效果会更差 ,而不是更好。 原因是合法用户似乎对他们的连接有限制,但恶意用户将能够轻易欺骗管理用户ID。
有关此主题的更多信息,请参阅http://t-rob./net/links上的基本MQ安全强化幻灯片。