各位大佬,想看那种网络设备/操作系统/数据库/中间件的测评命令清单,可在留言区留言!
依据 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 MQ | Apache Kafka | RabbitMQ |
|---|---|---|---|
| 企业级特性 | 优秀 | 良好 | 良好 |
| 安全认证 | 丰富(OS/LDAP/证书) | SASL/SSL | SASL/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 CHLAUTH | DISABLED | 启用CHLAUTH |
| MCA用户为空白 | DISPLAY CHANNEL(*) MCAUSER | 为空 | 设置具体MCA用户 |
| 未启用SSL | DISPLAY CHANNEL(*) SSLCIPH | 为空或RC4_MD5等弱算法 | 配置TLS 1.2+密码套件 |
| 系统通道未保护 | DISPLAY CHANNEL(SYSTEM.*) | 未禁用或限制 | 禁用或配置CHLAUTH规则 |
| 审计未启用 | DISPLAY QMGR AUDIT | NONE | 设置为ALL或自定义 |
| 日志类型为CIRCULAR | DISPLAY QMGR LOGTYPE | CIRCULAR | 改为LINEAR(需规划存储) |
| 未限制最大连接 | DISPLAY QMGR MAXCHL | 过大或未设置 | 根据资源设置合理值 |
| AMS未启用 | dspmqpkg -m QM1 | 未配置 | 启用消息级加密签名 |
| 证书过期 | runmqakm -cert -list | Not 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.0 | MQ V9.0 | MQ 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