在 Linux 中检查 MQ 权限和 MCAUSER

Checking MQ authorities and MCAUSER in Linux

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

1- 我的Q-manager中有很多对象,实体为mqm,权限设置为:almqi dlt chg dsp clr。这是正常的吗?我的意思是我所知道的是客户不应该有 mqm 实体名称,并且权限在这里完全不受限制。我说的对吗?

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

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

在 Linux 你可以做...
echo "dis chl(*) mcauser | runmqsc [qmgrname]
...从命令行查看通道上的 MCAUSER。您也可以使用 MQ Explorer 查看此信息。

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

确保在验证连接请求时退出或 CHLAUTH 规则将 MCAUSER 映射到预期值。 CHLAUTH 规则适用于 7.1 及更高版本的任何 MQ 版本。此映射确保只有经过身份验证的用户或合作伙伴 QMgr 才能连接。

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

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