等保测评命令——IBM WebSphere MQ / IBM MQ

各位大佬,想看那种网络设备/操作系统/数据库/中间件的测评命令清单,可在留言区留言!

依据 GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》第三级”安全计算环境” 条款,结合IBM MQ官方安全指南及现场测评实践。

适用版本:IBM WebSphere MQ V8.0 / V9.0 / V9.1 / V9.2 / V9.3 / IBM MQ V9.4


一、身份鉴别

1.1 队列管理器与通道认证

控制项测评命令达标判据
队列管理器认证dspmqaut -m QM1 -t qmgr启用连接认证
通道认证DISPLAY CHLAUTH启用通道认证规则
用户口令dspmqcsv -m QM1强口令策略
证书认证DISPLAY CHANNEL(*) SSLCIPH启用TLS通道
连接认证DISPLAY QMGR CONNAUTH启用连接认证

IBM MQ特有配置:

# 查看IBM MQ安装路径
dspmqver
echo$MQ_INSTALLATION_PATH
ls-la /opt/mqm/

# 查看版本信息
dspmqver -f2
dspmqver -v

# 查看队列管理器列表
dspmq
dspmq -o all

# 查看队列管理器状态
dspmq -m QM1 -o status

# 查看队列管理器配置(QM1为示例队列管理器)
echo"DISPLAY QMGR ALL"| runmqsc QM1 |head-50

# 关键安全属性检查:
# CONNAUTH - 连接认证信息对象
# CHLAUTH - 通道认证规则开关
# SSLKEYR - SSL密钥库路径
# SSLCRL - 证书撤销列表
# MAXCHL - 最大通道数
# MAXMSGL - 最大消息长度

# 查看连接认证配置
echo"DISPLAY QMGR CONNAUTH"| runmqsc QM1
echo"DISPLAY AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) ALL"| runmqsc QM1

# 关键配置:
# AUTHENMD - 认证方法(OS/PAM/LDAP/IDPWOS)
# CHCKCLNT - 客户端检查(NONE/OPTIONAL/REQUIRED/REQDADM)
# CHCKLOCL - 本地检查(NONE/OPTIONAL/REQUIRED/REQDADM)
# ADOPTCTX - 采用上下文(YES/NO)

# 查看通道认证记录(CHLAUTH)
echo"DISPLAY CHLAUTH(*) ALL"| runmqsc QM1 |head-30

# 关键配置:
# TYPE - 规则类型(BLOCKUSER/ADDRESSMAP/USERMAP/SSLPEERMAP)
# ADDRESS - IP地址/范围
# CLNTUSER - 客户端用户
# MCAUSER - MCA用户
# SSLPEER - SSL证书匹配
# USERSRC - 用户来源(MAP/CHANNEL/NOACCESS)

# 查看用户权限
dspmqaut -m QM1 -t qmgr -p appuser
dspmqaut -m QM1 -n QUEUE1 -t queue -p appuser

# 查看当前连接用户
echo"DISPLAY CONN(*) WHERE(APPLTYPE NE SYSTEM) ALL"| runmqsc QM1 |head-20

1.2 用户与组管理

# 查看MQ用户(OS用户映射)
dspmqaut -m QM1 -t qmgr -n objname -p username

# 查看权限列表
dmpmqaut -m QM1 > /tmp/mq_auth_backup.txt
cat /tmp/mq_auth_backup.txt |head-30

# 查看特殊权限(SETALL/SETID)
echo"DISPLAY QMGR AUTHOREV"| runmqsc QM1

# 查看用户组权限
dspmqaut -m QM1 -t qmgr -g mqusers

# 查看MCA用户配置
echo"DISPLAY CHANNEL(SYSTEM.DEF.SVRCONN) MCAUSER"| runmqsc QM1
echo"DISPLAY CHANNEL(APP.CHANNEL) MCAUSER"| runmqsc QM1

# 查看通道早期 adopting
echo"DISPLAY QMGR ADOPTNEWMCA"| runmqsc QM1
echo"DISPLAY QMGR ADOPTNEWMCATIMEOUT"| runmqsc QM1

# 查看密码策略(MQ V9.1+)
echo"DISPLAY QMGR PASSWORDPROTECTION"| runmqsc QM1
echo"DISPLAY AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) PASSWORDCHECK"| runmqsc QM1

# 查看LDAP集成(如启用)
echo"DISPLAY AUTHINFO(LDAP.AUTHINFO) ALL"| runmqsc QM1
cat /var/mqm/ldap/ldap.conf 2>/dev/null

二、访问控制

2.1 队列与主题权限

控制项测评命令达标判据
队列权限dspmqaut -m QM1 -n QUEUE1 -t queue最小权限原则
主题权限dspmqaut -m QM1 -n TOPIC1 -t topic发布订阅控制
进程权限dspmqaut -m QM1 -n PROCESS1 -t process受限访问
名称列表权限dspmqaut -m QM1 -n NAMELIST1 -t namelist受限访问

IBM MQ特有配置:

# 查看队列权限详情
echo"DISPLAY QUEUE(QUEUE1) CURDEPTH MAXDEPTH"| runmqsc QM1
echo"DISPLAY QUEUE(QUEUE1) INHIBITGET INHIBITPUT"| runmqsc QM1

# 查看队列权限记录
dmpmqaut -m QM1 -n QUEUE1 -t queue

# 查看主题权限
echo"DISPLAY TOPIC(TOPIC1) ALL"| runmqsc QM1
dspmqaut -m QM1 -n TOPIC1 -t topic -p appuser

# 查看主题树权限
echo"DISPLAY SUB(SUB1) ALL"| runmqsc QM1

# 查看集群权限
echo"DISPLAY CLUSQMGR(*)"| runmqsc QM1
echo"DISPLAY CHANNEL(TO.CLUSTER) CLUSNL"| runmqsc QM1

# 查看远程队列权限
echo"DISPLAY QRNAME(REMOTE.QUEUE) RQMNAME RNAME XMITQ"| runmqsc QM1

# 查看传输队列权限
echo"DISPLAY QUEUE(XMITQ) USAGE XMITQ"| runmqsc QM1

# 查看死信队列权限
echo"DISPLAY QMGR DEADQ"| runmqsc QM1
dspmqaut -m QM1 -n SYSTEM.DEAD.LETTER.QUEUE -t queue

# 查看命令队列权限(SYSTEM.COMMAND.INPUT)
dspmqaut -m QM1 -n SYSTEM.COMMAND.INPUT -t queue

# 查看回复队列权限
echo"DISPLAY QMGR DEFREPLYQ"| runmqsc QM1

2.2 通道访问控制

# 查看服务器连接通道
echo"DISPLAY CHANNEL(SYSTEM.DEF.SVRCONN) ALL"| runmqsc QM1 |head-30

# 关键安全属性:
# MCAUSER - MCA用户(应非空白)
# SSLCIPH - SSL密码套件
# SSLPEER - SSL证书匹配规则
# KAINT - 保持活动间隔
# MAXMSGL - 最大消息长度
# MAXINST - 最大实例数
# MAXINSTC - 最大客户端实例数

# 查看发送方/接收方通道
echo"DISPLAY CHANNEL(SDR.*) ALL"| runmqsc QM1 |head-20
echo"DISPLAY CHANNEL(RCVR.*) ALL"| runmqsc QM1 |head-20

# 查看集群通道
echo"DISPLAY CHANNEL(CLUS.*) ALL"| runmqsc QM1 |head-20

# 查看通道状态
echo"DISPLAY CHSTATUS(*) WHERE(CHLTYPE EQ SVRCONN)"| runmqsc QM1
echo"DISPLAY CHSTATUS(*) WHERE(CHLTYPE EQ SDR)"| runmqsc QM1

# 查看通道认证信息
echo"DISPLAY CHSTATUS(SYSTEM.DEF.SVRCONN) SSLPEER SSLCERTI"| runmqsc QM1

# 查看通道退出程序(安全增强)
echo"DISPLAY CHANNEL(*) SCYEXIT RCYEXIT SECEXIT"| runmqsc QM1

# 查看消息出口(Message Exit)
echo"DISPLAY CHANNEL(*) MSGEXIT MSGDATA"| runmqsc QM1

# 查看发送/接收出口
echo"DISPLAY CHANNEL(*) SENDEXIT RCVEXIT"| runmqsc QM1

三、安全审计

3.1 审计配置与日志

控制项测评命令/配置达标判据
审计开关DISPLAY QMGR AUDIT启用审计
审计事件SET AUTHREC PROFILE(*) OBJTYPE(QMGR) AUDITING(ALL)覆盖关键事件
错误日志/var/mqm/qmgrs/QM1/errors/定期轮转
活动日志amqhlad启用活动日志
日志保护ls -la /var/mqm/errors/640 mqm:mqm

IBM MQ特有配置:

# 查看审计配置
echo"DISPLAY QMGR AUDIT"| runmqsc QM1

# 查看对象审计记录
echo"DISPLAY AUTHREC PROFILE(*) OBJTYPE(QMGR) AUDITING"| runmqsc QM1
echo"DISPLAY AUTHREC PROFILE(*) OBJTYPE(QUEUE) AUDITING"| runmqsc QM1
echo"DISPLAY AUTHREC PROFILE(*) OBJTYPE(CHANNEL) AUDITING"| runmqsc QM1

# 设置审计(如未启用)
# echo "SET AUTHREC PROFILE(QUEUE1) OBJTYPE(QUEUE) AUDITING(ALL)" | runmqsc QM1

# 查看错误日志
ls-la /var/mqm/qmgrs/QM1/errors/
cat /var/mqm/qmgrs/QM1/errors/AMQERR01.LOG |tail-50
cat /var/mqm/qmgrs/QM1/errors/AMQERR02.LOG |tail-20

# 查看FFST报告(First Failure Support Technology)
ls-la /var/mqm/errors/*.FDC 2>/dev/null |head-5

# 查看活动日志(需启用线性日志)
dspmqlog -m QM1 -t100

# 查看日志配置
echo"DISPLAY QMGR LOG"| runmqsc QM1
# 关键属性:
# LOGTYPE - CIRCULAR/LINEAR(线性支持审计)
# LOGPRIMARYFILES - 主日志文件数
# LOGSECONDARYFILES - 次日志文件数
# LOGFILESIZE - 日志文件大小

# 查看队列管理器日志路径
echo"DISPLAY QMGR LOGPATH"| runmqsc QM1

# 查看系统日志(Linux)
cat /var/log/messages |grep-i"mqm\|ibm mq"|tail-20
journalctl -u mq.service 2>/dev/null |tail-20

# 查看MQ审计消息(通过队列)
echo"DISPLAY QUEUE(SYSTEM.ADMIN.AUDIT.LOG) CURDEPTH"| runmqsc QM1
echo"DISPLAY QUEUE(SYSTEM.ADMIN.ACTIVITY.QUEUE) CURDEPTH"| runmqsc QM1

# 查看事件队列
echo"DISPLAY QUEUE(SYSTEM.ADMIN.QMGR.EVENT) CURDEPTH"| runmqsc QM1
echo"DISPLAY QUEUE(SYSTEM.ADMIN.CHANNEL.EVENT) CURDEPTH"| runmqsc QM1
echo"DISPLAY QUEUE(SYSTEM.ADMIN.PERFM.EVENT) CURDEPTH"| runmqsc QM1

3.2 审计事件分析

# 查看连接事件
cat /var/mqm/qmgrs/QM1/errors/AMQERR01.LOG |grep-i"connect\|conn\|from host"|tail-20

# 查看认证失败事件
cat /var/mqm/qmgrs/QM1/errors/AMQERR01.LOG |grep-i"not authorized\|authentication\|fail"|tail-20

# 查看通道事件
cat /var/mqm/qmgrs/QM1/errors/AMQERR01.LOG |grep-i"channel\|chl"|tail-20

# 查看安全事件
cat /var/mqm/qmgrs/QM1/errors/AMQERR01.LOG |grep-i"security\|ssl\|certificate"|tail-20

# 查看消息事件(大消息、死信等)
cat /var/mqm/qmgrs/QM1/errors/AMQERR01.LOG |grep-i"message\|msgl\|dead letter"|tail-20

# 查看性能事件
cat /var/mqm/qmgrs/QM1/errors/AMQERR01.LOG |grep-i"performance\|high\|depth\|full"|tail-20

# 使用MQ命令查看事件消息
# echo "BROWSE QLOCAL(SYSTEM.ADMIN.QMGR.EVENT)" | runmqsc QM1

# 导出审计日志进行分析
# dmpmqlog -m QM1 -b 20240101000000 -e 20240131235959 > /tmp/mq_audit_202401.log

四、入侵防范

4.1 系统加固

# 查看MQ版本和补丁
dspmqver -f2
dspmqver -p1

# 查看安装包信息
rpm-qa|grep-i"mqseries\|ibmmq"
lslpp -l|grep-i"mqm"# AIX

# 查看Fix Pack级别
dspmqver -f2|grep"Level"

# 查看CVE漏洞(需外部扫描)
# 检查是否使用存在漏洞的版本

# 查看队列管理器限制
echo"DISPLAY QMGR MAXCHL MAXMSGL MAXDEPTH"| runmqsc QM1

# 查看通道限制
echo"DISPLAY CHANNEL(*) MAXMSGL MAXINST MAXINSTC"| runmqsc QM1 |head-20

# 查看消息大小限制
echo"DISPLAY QMGR MAXMSGL"| runmqsc QM1
echo"DISPLAY CHANNEL(*) MAXMSGL"| runmqsc QM1 |head-10

# 查看队列深度限制
echo"DISPLAY QUEUE(*) MAXDEPTH"| runmqsc QM1 |head-20

# 查看触发器配置(防止资源耗尽)
echo"DISPLAY QUEUE(*) TRIGGER TRIGTYPE TRIGDEPTH"| runmqsc QM1 |head-20

# 查看服务配置
echo"DISPLAY SERVICE(*) CONTROL SERVTYPE STARTCMD STARTARG"| runmqsc QM1

# 查看进程配置
echo"DISPLAY PROCESS(*) APPLTYPE APPLICID"| runmqsc QM1

# 查看存储类配置
echo"DISPLAY STGCLASS(*) PSID DSEXP"| runmqsc QM1

4.2 网络安全防护

# 查看监听器配置
echo"DISPLAY LISTENER(*)"| runmqsc QM1
echo"DISPLAY LSSTATUS(*)"| runmqsc QM1

# 关键安全属性:
# TRPTYPE - 传输类型(TCP/LU62/NETBIOS/SPX)
# PORT - 监听端口(1414默认)
# IPADDR - 绑定IP地址
# BACKLOG - 连接队列长度
# SOKEEPALIVE - TCP保持活动

# 查看监听器安全
echo"DISPLAY LISTENER(SYSTEM.LISTENER.TCP) ALL"| runmqsc QM1

# 查看端口配置
cat /var/mqm/qmgrs/QM1/qm.ini |grep-i"port\|listener"
cat /var/mqm/qmgrs/QM1/@ipaddr 2>/dev/null

# 查看防火墙规则
iptables -L-n|grep1414
firewall-cmd --list-all |grep1414

# 查看MQIPT配置(MQ Internet Pass-Thru,如使用)
cat /opt/mqipt/mqipt.conf 2>/dev/null |head-30

# 查看网关配置
echo"DISPLAY CHINIT"| runmqsc QM1

# 查看集群接收通道安全
echo"DISPLAY CLUSQMGR(*) CHANNEL"| runmqsc QM1

五、传输与数据安全

5.1 SSL/TLS加密

# 查看SSL配置
echo"DISPLAY QMGR SSLKEYR SSLCRL SSLCRLN"| runmqsc QM1

# 关键配置:
# SSLKEYR - SSL密钥库路径(/var/mqm/qmgrs/QM1/ssl/key)
# SSLCRL - 证书撤销列表
# SSLCRLN - CRL名称列表

# 查看通道SSL配置
echo"DISPLAY CHANNEL(*) SSLCIPH SSLCAUTH"| runmqsc QM1 |head-30

# 关键属性:
# SSLCIPH - SSL密码套件(ECDHE_RSA_AES_256_GCM_SHA384等)
# SSLCAUTH - 证书认证(REQUIRED/OPTIONAL)
# SSLPEER - 证书匹配规则

# 查看密码套件详情
echo"DISPLAY CHANNEL(SYSTEM.DEF.SVRCONN) SSLCIPH"| runmqsc QM1

# 推荐密码套件(TLS 1.2+):
# ANY_TLS12_OR_HIGHER
# ECDHE_RSA_AES_256_GCM_SHA384
# ECDHE_RSA_AES_128_GCM_SHA256

# 查看证书存储
dspmqcsv -m QM1
ls-la /var/mqm/qmgrs/QM1/ssl/

# 查看密钥库内容
runmqakm -cert-list-db /var/mqm/qmgrs/QM1/ssl/key.kdb -pw password

# 查看证书详情
runmqakm -cert-details-db /var/mqm/qmgrs/QM1/ssl/key.kdb -pw password -label ibmwebspheremqqm1

# 查看证书有效期
runmqakm -cert-list-db /var/mqm/qmgrs/QM1/ssl/key.kdb -pw password |grep-E"Label|Not Before|Not After"

# 查看证书撤销列表
runmqakm -crl-list-db /var/mqm/qmgrs/QM1/ssl/key.kdb -pw password

# 查看TLS版本配置
echo"DISPLAY QMGR SSLFIPS"| runmqsc QM1  # FIPS 140-2模式
echo"DISPLAY CHANNEL(*) ENCALG"| runmqsc QM1  # 加密算法

# 查看AMS配置(Advanced Message Security)
dspmqpkg -m QM1
echo"DISPLAY POLICY(*) WHERE(POLICYNAME EQ 'POLICY1')"| runmqsc QM1

# 查看队列加密属性
echo"DISPLAY QUEUE(QUEUE1) CRYPT"| runmqsc QM1

5.2 消息级安全(AMS)

# 查看AMS策略
dspmqpka -m QM1
echo"DISPLAY POLICY(POLICY1)"| runmqsc QM1

# 查看密钥库配置
cat /var/mqm/qmgrs/QM1/keystore/keystore.conf 2>/dev/null

# 查看证书标签
runmqakm -cert-list-db /var/mqm/qmgrs/QM1/keystore/keystore.p12 -pw password -type pkcs12

# 查看对称密钥
dspmqsym -m QM1

# 查看消息签名配置
echo"DISPLAY POLICY(*) SIGN"| runmqsc QM1

# 查看消息加密配置
echo"DISPLAY POLICY(*) ENCALG"| runmqsc QM1

# 查看密钥轮换
echo"DISPLAY POLICY(*) ROTATION"| runmqsc QM1

六、高可用与灾备

# 查看队列管理器日志配置(用于恢复)
echo"DISPLAY QMGR LOG"| runmqsc QM1

# 查看线性日志配置(支持时间点恢复)
echo"DISPLAY QMGR LOGTYPE"| runmqsc QM1
# 应为 LINEAR(非 CIRCULAR)

# 查看日志文件
ls-la /var/mqm/log/QM1/

# 查看媒体映像(用于恢复)
echo"DISPLAY QMGR MEDIA"| runmqsc QM1

# 查看备份配置
dmpmqinf -ocommand-q QM1

# 查看多实例队列管理器(高可用)
dspmq -o all |grep-i"multi\|ha\|rdqm"

# 查看RDQM(Replicated Data Queue Manager,V9.1+)
rdqminfo QM1 2>/dev/null
lsrdqm 2>/dev/null

# 查看RDQM状态
rdqmstatus -m QM1 2>/dev/null

# 查看集群配置(传统HA)
echo"DISPLAY CLUSQMGR(*)"| runmqsc QM1
echo"DISPLAY REPOS(*)"| runmqsc QM1

# 查看共享队列(Parallel Sysplex)
echo"DISPLAY QLOCAL(SHARED.QUEUE) QSGDISP"| runmqsc QM1

# 查看队列管理器备份
ls-la /backup/mqm/QM1/ 2>/dev/null
ls-la /var/mqm/save/QM1/ 2>/dev/null

# 查看恢复测试记录
cat /var/mqm/logs/restore-test.log 2>/dev/null

七、IBM MQ与Apache Kafka/RabbitMQ对比

对比项IBM MQApache KafkaRabbitMQ
企业级特性优秀良好良好
安全认证丰富(OS/LDAP/证书)SASL/SSLSASL/SSL
消息加密AMS(原生)需应用层需插件
审计日志完善基础基础
事务支持完善有限有限
等保合规
国密支持需配置需配置需配置
成本商业软件开源开源

八、一键巡检脚本(IBM MQ)

#!/bin/bash
# IBM WebSphere MQ / IBM MQ 等保三级一键巡检脚本
# 适用:IBM MQ V8.0 - V9.4

QMGR=${1:-QM1}
echo"===== IBM MQ 等保三级巡检 ====="
echo"巡检时间:$(date)"
echo"主机名:$(hostname)"
echo"队列管理器: $QMGR"
echo""

# 检查MQ环境
if!command-v dspmq &> /dev/null;then
echo"错误:未找到IBM MQ命令"
echo"请确保MQ环境变量已设置"
exit1
fi

# 检查队列管理器状态
QMGR_STATUS=$(dspmq -m $QMGR -o status 2>/dev/null |grep-o"Running\|Ended normally\|Ended immediately")
if["$QMGR_STATUS"!="Running"];then
echo"[警告] 队列管理器 $QMGR 未运行(状态: $QMGR_STATUS)"
echo"将尝试获取静态配置..."
fi

echo"===== 1 身份鉴别 ====="
echo"--- 版本信息 ---"
dspmqver -f2|head-5

echo"--- 连接认证配置 ---"
echo"DISPLAY QMGR CONNAUTH"| runmqsc $QMGR2>/dev/null |grep-E"CONNAUTH|AUTHENMD"

echo"--- 认证信息详情 ---"
echo"DISPLAY AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) ALL"| runmqsc $QMGR2>/dev/null |grep-E"AUTHENMD|CHCKCLNT|CHCKLOCL"

echo"--- 通道认证记录 ---"
echo"DISPLAY CHLAUTH(*) TYPE(BLOCKUSER)"| runmqsc $QMGR2>/dev/null |head-5
echo"DISPLAY CHLAUTH(*) TYPE(USERMAP)"| runmqsc $QMGR2>/dev/null |head-5

echo"--- SSL证书配置 ---"
echo"DISPLAY QMGR SSLKEYR"| runmqsc $QMGR2>/dev/null

echo"--- 密码保护 ---"
echo"DISPLAY QMGR PASSWORDPROTECTION"| runmqsc $QMGR2>/dev/null

echo""
echo"===== 2 访问控制 ====="
echo"--- 队列管理器权限 ---"
dspmqaut -m$QMGR-t qmgr -p mqm 2>/dev/null |head-5

echo"--- 系统队列权限 ---"
dspmqaut -m$QMGR-n SYSTEM.DEAD.LETTER.QUEUE -t queue 2>/dev/null
dspmqaut -m$QMGR-n SYSTEM.COMMAND.INPUT -t queue 2>/dev/null

echo"--- 通道MCA用户 ---"
echo"DISPLAY CHANNEL(SYSTEM.DEF.SVRCONN) MCAUSER"| runmqsc $QMGR2>/dev/null
echo"DISPLAY CHANNEL(APP.*) MCAUSER"| runmqsc $QMGR2>/dev/null |head-5

echo"--- 最大连接限制 ---"
echo"DISPLAY QMGR MAXCHL"| runmqsc $QMGR2>/dev/null

echo"--- 通道限制 ---"
echo"DISPLAY CHANNEL(*) MAXINST MAXINSTC"| runmqsc $QMGR2>/dev/null |head-10

echo""
echo"===== 3 安全审计 ====="
echo"--- 审计配置 ---"
echo"DISPLAY QMGR AUDIT"| runmqsc $QMGR2>/dev/null

echo"--- 对象审计 ---"
echo"DISPLAY AUTHREC PROFILE(*) OBJTYPE(QMGR) AUDITING"| runmqsc $QMGR2>/dev/null |head-5

echo"--- 错误日志 ---"
ls-la /var/mqm/qmgrs/$QMGR/errors/ 2>/dev/null |head-3

echo"--- 最近错误 ---"
cat /var/mqm/qmgrs/$QMGR/errors/AMQERR01.LOG 2>/dev/null |tail-10

echo"--- 日志类型 ---"
echo"DISPLAY QMGR LOGTYPE"| runmqsc $QMGR2>/dev/null

echo""
echo"===== 4 入侵防范 ====="
echo"--- 队列管理器限制 ---"
echo"DISPLAY QMGR MAXCHL MAXMSGL MAXDEPTH"| runmqsc $QMGR2>/dev/null

echo"--- 消息大小限制 ---"
echo"DISPLAY QMGR MAXMSGL"| runmqsc $QMGR2>/dev/null
echo"DISPLAY CHANNEL(*) MAXMSGL"| runmqsc $QMGR2>/dev/null |head-5

echo"--- 监听器配置 ---"
echo"DISPLAY LISTENER(*)"| runmqsc $QMGR2>/dev/null |head-10

echo"--- 服务配置 ---"
echo"DISPLAY SERVICE(*)"| runmqsc $QMGR2>/dev/null |head-5

echo""
echo"===== 5 传输安全 ====="
echo"--- SSL通道配置 ---"
echo"DISPLAY CHANNEL(*) SSLCIPH"| runmqsc $QMGR2>/dev/null |head-10

echo"--- SSL认证 ---"
echo"DISPLAY CHANNEL(*) SSLCAUTH"| runmqsc $QMGR2>/dev/null |head-5

echo"--- 证书存储 ---"
dspmqcsv -m$QMGR2>/dev/null |head-5
ls-la /var/mqm/qmgrs/$QMGR/ssl/ 2>/dev/null |head-3

echo"--- AMS配置 ---"
dspmqpkg -m$QMGR2>/dev/null |head-5||echo"未启用AMS"

echo""
echo"===== 6 高可用与灾备 ====="
echo"--- 日志配置 ---"
echo"DISPLAY QMGR LOG"| runmqsc $QMGR2>/dev/null

echo"--- 多实例/RDQM ---"
dspmq -o all 2>/dev/null |grep-i"multi\|rdqm\|ha"|head-3

echo"--- RDQM状态 ---"
rdqmstatus -m$QMGR2>/dev/null |head-5||echo"非RDQM部署"

echo"--- 集群配置 ---"
echo"DISPLAY CLUSQMGR(*)"| runmqsc $QMGR2>/dev/null |head-5

echo""
echo"===== 通用安全检查 ====="
echo"--- 进程运行用户 ---"
ps-ef|grep-E"amqzxma0|amqzlaa0|runmqchi"|grep-vgrep|awk'{print $1}'|sort|uniq-c

echo"--- 文件权限 ---"
ls-la /var/mqm/qmgrs/$QMGR/ 2>/dev/null |head-3|awk'{print $1, $3, $4, $9}'

echo"--- 日志权限 ---"
ls-la /var/mqm/qmgrs/$QMGR/errors/ 2>/dev/null |head-3|awk'{print $1, $3, $4, $9}'

echo"--- 端口监听 ---"
ss -tulnp|grep-E"1414|1415"2>/dev/null |head-5

echo"--- 环境变量 ---"
env|grep-E"MQ|QMGR"|grep-v"HIST"|awk-F='{print $1}'|head-5

echo""
echo"===== 巡检完成 ====="
echo"重点关注以下高风险项:"
echo"1. 未启用连接认证(CONNAUTH为空)"
echo"2. 未配置通道认证(CHLAUTH=DISABLED)"
echo"3. 通道MCA用户为空白(特权提升风险)"
echo"4. 未启用SSL/TLS加密(SSLCIPH为空)"
echo"5. 使用弱密码套件(非TLS 1.2+)"
echo"6. 系统通道未限制(SYSTEM.DEF.*未禁用)"
echo"7. 审计日志未启用(AUDIT=NONE)"
echo"8. 日志类型为CIRCULAR(无法审计追踪)"
echo"9. 未启用AMS消息加密"
echo"10. 单点部署(无RDQM或集群)"

九、高风险项重点核查清单

检查项验证命令不合规判定整改建议
未启用连接认证DISPLAY QMGR CONNAUTH为空或SYSTEM.DEFAULT.AUTHINFO.IDPWOS配置CONNAUTH并启用CHCKCLNT
通道认证禁用DISPLAY QMGR CHLAUTHDISABLED启用CHLAUTH
MCA用户为空白DISPLAY CHANNEL(*) MCAUSER为空设置具体MCA用户
未启用SSLDISPLAY CHANNEL(*) SSLCIPH为空或RC4_MD5等弱算法配置TLS 1.2+密码套件
系统通道未保护DISPLAY CHANNEL(SYSTEM.*)未禁用或限制禁用或配置CHLAUTH规则
审计未启用DISPLAY QMGR AUDITNONE设置为ALL或自定义
日志类型为CIRCULARDISPLAY QMGR LOGTYPECIRCULAR改为LINEAR(需规划存储)
未限制最大连接DISPLAY QMGR MAXCHL过大或未设置根据资源设置合理值
AMS未启用dspmqpkg -m QM1未配置启用消息级加密签名
证书过期runmqakm -cert -listNot After<当前日期更新证书

十、等保测评执行要点

1. 关键安全配置检查

# 启用连接认证
echo"ALTER QMGR CONNAUTH(SYSTEM.DEFAULT.AUTHINFO.IDPWOS)"| runmqsc QM1
echo"ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(REQUIRED)"| runmqsc QM1
echo"REFRESH SECURITY TYPE(CONNAUTH)"| runmqsc QM1

# 启用通道认证
echo"ALTER QMGR CHLAUTH(ENABLED)"| runmqsc QM1

# 配置通道认证规则(阻止所有,允许特定)
echo"SET CHLAUTH('*') TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(NOACCESS) DESCR('Default deny')"| runmqsc QM1
echo"SET CHLAUTH('APP.CHANNEL') TYPE(ADDRESSMAP) ADDRESS('192.168.1.0/24') USERSRC(CHANNEL) DESCR('Allow app subnet')"| runmqsc QM1

# 配置SSL(推荐TLS 1.2+)
echo"ALTER CHANNEL(SYSTEM.DEF.SVRCONN) SSLCIPH(ANY_TLS12_OR_HIGHER) SSLCAUTH(REQUIRED)"| runmqsc QM1

# 启用审计
echo"ALTER QMGR AUDIT(ALL)"| runmqsc QM1
echo"SET AUTHREC PROFILE('*') OBJTYPE(QUEUE) AUDITING(ALL)"| runmqsc QM1
echo"SET AUTHREC PROFILE('*') OBJTYPE(CHANNEL) AUDITING(ALL)"| runmqsc QM1

2. 现场访谈要点

  • 是否启用连接认证和通道认证
  • 是否配置SSL/TLS加密(TLS 1.2+)
  • 是否启用AMS消息级加密
  • 是否配置审计日志并定期分析
  • 是否使用线性日志(支持审计追踪)
  • 是否部署RDQM或多实例实现高可用
  • 是否定期备份队列管理器配置和密钥
  • 是否定期轮换SSL证书

3. 版本差异

功能项MQ V8.0MQ V9.0MQ V9.1+
连接认证基础增强完善
AMS支持增强完善
RDQM不支持不支持支持
容器支持有限支持完善
云原生有限支持完善
等保合规基础增强完善

参考标准:GB/T 22239-2019、GB/T 28448-2019、IBM MQ Security Guide

适用版本:IBM WebSphere MQ V8.0 / IBM MQ V9.0 / V9.1 / V9.2 / V9.3 / V9.4

验证环境:x86_64 / IBM Power / 国产化芯片(飞腾/鲲鹏/海光)

声明:来自汪汪虚拟空间,仅代表创作者观点。链接:https://eyangzhen.com/7584.html

汪汪虚拟空间的头像汪汪虚拟空间

相关推荐

添加微信
添加微信
Ai学习群
返回顶部