等保测评命令——IBM AIX

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

依据 GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》等保2.0三级 标准,针对 IBM AIX 7.2/7.3/6.1 给出可直接落地的测评命令清单。

版本说明:AIX 7.2为当前主流版本,7.3为最新版本,6.1仍有部分存量硬件平台:IBM Power Systems(Power8/Power9/Power10)


一、身份鉴别(8.1.4.1)

1.1 账户与密码策略

测评项AIX命令达标判据
查看用户账户lsuser ALL / cat /etc/passwd无默认账户,UID唯一
检查密码策略lssecattr -c /etc/security/user启用复杂度,定期更换
查看密码过期pwdadm -q username≤90天
检查空口令logins -p / pwdck -n ALL无输出
查看系统用户lsuser -a account_locked ALL系统账户已锁定

详细命令:

# 1. 查看所有用户账户
lsuser ALL
# 或详细查看
lsuser -f ALL |head-50

# 2. 查看特定用户属性
lsuser username
# 或
lsuser -aid home shell groups username

# 3. 检查空口令账户(关键命令)
logins -p
# 或使用pwdck
pwdck -n ALL 2>&1|grep"has no password"
# 输出应为空

# 4. 查看无效/过期账户
lsuser -a account_locked ALL |grep"account_locked=true"
# 或查看密码过期
/usr/sbin/pwdck -t ALL 2>&1|head-20

# 5. 查看密码策略核心配置文件
cat /etc/security/user
# 或查看默认段落
lssecattr -c /etc/security/user -s default
# 关键参数:
# default:
#    admin = false
#    login = true
#    su = true
#    daemon = true
#    rlogin = true
#    sugroups = ALL
#    admgroups =
#    ttys = ALL
#    auth1 = SYSTEM
#    auth2 = NONE
#    tpath = nosak
#    umask = 022
#    expires = 0
#    SYSTEM = "compat"
#    logintimes =
#    pwdwarntime = 7          # 密码过期前警告天数
#    account_locked = false
#    loginretries = 5         # 登录重试次数
#    histexpire = 26          # 历史密码过期周数
#    histsize = 10            # 历史密码记录数
#    minage = 1               # 最小密码使用周数
#    maxage = 13              # 最大密码使用周数(约90天)
#    maxexpired = 2           # 密码过期后宽限周数
#    minalpha = 2             # 最少字母字符
#    minloweralpha = 0
#    minupperalpha = 0
#    minother = 1             # 最少非字母数字字符
#    mindiff = 3              # 与原密码最少不同字符
#    maxrepeats = 2           # 最大重复字符
#    minlen = 8               # 最小密码长度
#    dictionlist =            # 密码字典检查
#    pwdchecks =

# 6. 查看密码算法配置(AIX使用LPA)
cat /etc/security/login.cfg |grep-A10"usw:"
# 或查看
lssecattr -c /etc/security/login.cfg -s usw
# 关键参数:
# usw:
#    shells = /bin/sh,/bin/bsh,/bin/csh,/bin/ksh,/bin/tsh,/bin/ksh93,/usr/bin/sh,/usr/bin/bsh,/usr/bin/csh,/usr/bin/ksh,/usr/bin/tsh,/usr/bin/ksh93,/usr/bin/rksh,/usr/bin/rksh93,/usr/sbin/uucp/uucico,/usr/sbin/sliplogin,/usr/sbin/snappd
#    maxlogins = 32767
#    logintimeout = 60        # 登录超时60秒
#    maxroles = 8
#    auth_type = STD_AUTH
#    auth1 = SYSTEM
#    auth2 = NONE
#    suser = nosak            # 超级用户审计
#    logenabled = true        # 启用登录日志

# 7. 查看密码哈希算法
grep"crypt_" /etc/security/login.cfg
# 或
lssecattr -c /etc/security/login.cfg |grep crypt
# AIX支持:crypt_des, crypt_bsd, crypt_ldap, crypt_md5, crypt_sha256, crypt_sha512

# 8. 查看PAM配置(AIX使用LPA - Loadable Authentication Module)
cat /etc/pam.conf
# 或AIX 7.2+的PAM目录
ls /etc/pam.d/ 2>/dev/null

# 9. 查看特定用户密码状态
pwdadm -q username
# 输出:
# username:
#    lastupdate = 1705312943  # 最后更新时间
#    flags = ADMCHG            # 管理员要求更改
#    minage = 1
#    maxage = 13
#    maxexpired = 2

# 10. 检查密码文件完整性
pwdck ALL
# 或仅检查不修复
pwdck -n ALL
grpck ALL

1.2 登录失败处理与会话超时

测评项AIX命令达标判据
查看登录失败记录who /etc/security/failedlogin记录完整
检查账户锁定lsuser -a loginretries account_locked ALLloginretries=5
查看会话超时echo $TMOUT / cat /etc/profile≤10分钟
检查SSH超时cat /etc/ssh/sshd_configClientAliveInterval 300
# 11. 查看登录失败记录(二进制文件)
who /etc/security/failedlogin
# 或使用
/usr/sbin/acct/fwtmp < /etc/security/failedlogin |tail-20

# 12. 查看当前登录用户
who
w
# 或详细查看
who-u# 显示空闲时间

# 13. 查看用户登录历史
last |head-20
lastb |head-20# 失败登录(需配置)

# 14. 检查账户锁定策略
lsuser -a loginretries account_locked ALL |head-10
# 或查看默认
lssecattr -c /etc/security/user -s default |grep-E"loginretries|account_locked"

# 15. 查看系统级超时配置
cat /etc/profile |grep-itimeout
cat /etc/profile |grep TMOUT
cat /etc/environment |grep TMOUT
# 期望:TMOUT=600

# 16. 查看/etc/security/profile中的超时
cat /etc/security/profile |grep-itimeout

# 17. 查看SSH会话超时
cat /etc/ssh/sshd_config |grep-E"ClientAlive|TCPKeepAlive"
# 期望:
# ClientAliveInterval 300
# ClientAliveCountMax 0
# TCPKeepAlive no

# 18. 查看SSH登录失败处理
cat /etc/ssh/sshd_config |grep-E"MaxAuthTries|PermitRootLogin"
# 期望:
# MaxAuthTries 3
# PermitRootLogin no
# 或PermitRootLogin without-password

# 19. 查看控制台安全设置
cat /etc/security/login.cfg |grep-E"logintimeout|suser"
# suser = nosak 表示启用安全 attention key(Ctrl+Alt+L)

# 20. 查看终端访问控制
cat /etc/security/user |grep-E"ttys|logintimes"
# 检查:是否限制登录终端和登录时间

二、访问控制(8.1.4.2)

2.1 权限管理与RBAC(AIX特有)

AIX具有完善的 RBAC(Role-Based Access Control) 系统,包括 基于角色的访问控制 和 特权命令管理

测评项AIX命令达标判据
查看角色定义lsrole ALL角色分离清晰
检查用户角色lsuser -a roles ALL最小权限原则
查看特权命令lssecattr -c /etc/security/privcmds命令级授权
检查授权lsauth ALL授权细化
# 21. 查看系统所有角色
lsrole ALL
# 或详细查看
lsrole -f ALL

# 22. 查看特定角色详情
lsrole -a rolelist SOAdmin
# 或
lsrole -f SOAdmin

# 23. 查看用户角色分配
lsuser -a roles ALL |grep-v"roles="
# 或查看特定用户
lsuser -a roles root

# 24. 查看RBAC授权
lsauth ALL
# 或详细查看
lsauth -f ALL

# 25. 查看特权命令(Privileged Commands)
lssecattr -c /etc/security/privcmds
# 或查看特定命令
lssecattr -c /etc/security/privcmds -s /usr/bin/su

# 26. 查看特权设备
lssecattr -c /etc/security/privdevs

# 27. 查看特权文件
lssecattr -c /etc/security/privfiles

# 28. 查看域定义(AIX特有Domain RBAC)
lsdom ALL 2>/dev/null
# 或
lsdom -f ALL 2>/dev/null

# 29. 查看传统sudo配置(如使用)
cat /etc/sudoers
visudo -c# 检查语法

# 30. 查看用户组权限
cat /etc/group
lsgroup ALL
# 检查:用户是否属于过多组,system组使用
lsgroup -ausers system

2.2 文件系统权限与ACL

AIX使用 JFS2(Journaled File System 2) 作为默认文件系统,支持丰富的ACL。

# 31. 查看关键文件权限
ls-la /etc/passwd /etc/security/passwd /etc/group /etc/security/user
# 期望:
# -rw-r--r-- 1 root system  /etc/passwd
# -rw------- 1 root system  /etc/security/passwd  # AIX影子密码
# -rw-r--r-- 1 root system  /etc/group
# -rw-r----- 1 root security /etc/security/user

# 32. 查看文件ACL(AIX ACL)
aclget /etc/passwd
# 或使用
getfacl /etc/passwd  # 如安装acl包

# 33. 查看文件扩展属性(AIX特有)
ls-E /etc/passwd  # 显示扩展属性
# 或
istat /etc/passwd  # 显示文件详细信息

# 34. 查看文件权限位(SUID/SGID/SVTX)
find / -type f \(-perm-4000-o-perm-2000-o-perm-1000\)-ls2>/dev/null
# 或AIX特有选项
find / -perm -u+s -ls2>/dev/null

# 35. 查看世界可写文件(高风险)
find / -type f -perm-002-ls2>/dev/null
find / -type d -perm-002-ls2>/dev/null

# 36. 检查无主文件
find / -nouser-o-nogroup2>/dev/null

# 37. 查看文件系统挂载选项
cat /etc/filesystems
# 或
mount|grep-E"nosuid|nodev|noexec"
# 检查:敏感文件系统是否使用安全选项

# 38. 查看JFS2文件系统特性
lsfs |grep jfs2
# 或详细查看
lsfs -q /dev/hd1  # 显示配额和特性

# 39. 查看文件系统加密(AIX 7.2+ Encryption)
lsfs -a encryption
# 或
grep-i enc /etc/filesystems

# 40. 查看文件系统压缩(AIX特有)
lsfs -a compression
# 或
df-I# 显示压缩信息

三、安全审计(8.1.4.3)

3.1 AIX审计系统

AIX使用 audit 子系统进行安全审计,功能完善且与AIX内核深度集成。

测评项AIX命令达标判据
检查审计状态/usr/sbin/audit query审计已启用
查看审计配置cat /etc/security/audit/config配置完整
检查审计类cat /etc/security/audit/events覆盖关键事件
查看审计日志ls -la /audit存在且权限正确
# 41. 检查审计系统状态
/usr/sbin/audit query
# 输出示例:
# audit is currently enabled
# audit is currently running in BIN mode
# audit is currently running in FAILSAFE mode

# 42. 查看审计配置主文件
cat /etc/security/audit/config
# 关键段落:
# start:
#    binmode = on              # 二进制模式
#    streammode = off          # 流模式
#
# bin:
#    trail = /audit/trail      # 审计日志路径
#    bin1 = /audit/bin1        # 缓冲文件1
#    bin2 = /audit/bin2        # 缓冲文件2
#    binsize = 10240           # 缓冲区大小10MB
#    cmds = /etc/security/audit/bincmds  # 处理命令
#
# classes:
#    general = USER_SU,PASSWORD_Change,FILE_Open,FILE_Read,FILE_Write
#    authentication = USER_Login,USER_Logout
#    authorization = ROLE_Assign,PRIV_Use
#    files = FILE_Link,FILE_Unlink,FILE_Rename,FILE_Chown,FILE_Chmod
#    system = SYSTEM_Shutdown,SYSTEM_Boot,CONFIG_Change
#    audit = AUDIT_Start,AUDIT_Stop,AUDIT_Config
#
# users:
#    root = general,authentication,authorization,files,system,audit
#    default = general

# 43. 查看审计事件定义
cat /etc/security/audit/events
# 或
head-50 /etc/security/audit/events

# 44. 查看审计对象(监控特定文件)
cat /etc/security/audit/objects
# 示例:
# /etc/security/passwd:
#    r = "S_PASSWD_READ"
#    w = "S_PASSWD_WRITE"
# /etc/security/user:
#    r = "S_USER_READ"
#    w = "S_USER_WRITE"

# 45. 查看审计日志文件
ls-la /audit/
# 检查:权限600,属主root,定期轮转

# 46. 查看当前审计日志大小
du-sh /audit/
df /audit/

# 47. 查看审计报告(使用praudit或auditselect)
/usr/sbin/auditselect -e"event == USER_Login || event == USER_Logout" /audit/trail | /usr/sbin/praudit
# 或查看最近事件
/usr/sbin/auditpr -i /audit/trail |tail-50

# 48. 查看审计统计
/usr/sbin/auditstat
# 输出:
#           calls      rejects
# kernel      1234          0
# bins        10            0
# bytessent   1024000       0

# 49. 查看审计流配置(如使用流模式)
cat /etc/security/audit/streamcmds

# 50. 检查审计远程传输(如配置)
cat /etc/security/audit/config |grep remote
# 或查看
ls /audit/remote/ 2>/dev/null

3.2 系统日志与Syslog

# 51. 查看系统日志配置
cat /etc/syslog.conf

# 52. 查看日志服务状态
lssrc -s syslogd
# 或
ps-ef|grep syslogd

# 53. 查看日志文件
ls-la /var/log/
# 关键日志:
# /var/log/messages          # 系统消息
# /var/log/syslog            # 系统日志
# /var/log/sulog             # su命令日志
# /var/log/wtmp              # 登录历史(二进制)
# /var/log/btmp              # 失败登录(二进制)
# /var/log/utmp              # 当前登录
# /var/log/lastlog           # 最后登录

# 54. 查看系统消息
tail-100 /var/log/messages
# 或使用alog
alog -t console -o# 查看控制台日志

# 55. 查看安全相关日志
tail-50 /var/log/sulog
# 检查:su切换记录,失败尝试

# 56. 查看登录历史(二进制格式)
last |head-20
lastb |head-20# 失败登录(需配置)

# 57. 查看错误日志(AIX特有errdemon)
errpt |head-20
# 或详细查看
errpt -a|head-50
# 查看特定错误
errpt -j IDENTIFIER

# 58. 查看错误日志配置
/usr/lib/errdemon -l
# 或
cat /var/adm/ras/errlog  # 二进制错误日志

# 59. 查看Cron日志
tail-50 /var/log/cron

# 60. 查看审计守护进程日志
tail-50 /audit/auditlog 2>/dev/null

四、入侵防范(8.1.4.4)

4.1 系统安全状态

测评项AIX命令达标判据
查看系统版本oslevel / uname -a官方支持版本
检查补丁级别instfix -i / oslevel -r最新补丁
查看加固状态cat /etc/security/mck已运行安全核查
检查安全参数lsattr -El sys0安全内核参数
# 61. 查看系统版本信息
oslevel
# 或详细版本
oslevel -r# 推荐技术级别
oslevel -s# 服务包级别
oslevel -g# 组补丁包

# 62. 查看完整系统信息
uname-a
# 输出:AIX hostname 3 7 00F123456789 PowerPC_POWER9 IBM,9009-42A

# 63. 查看已安装补丁
instfix -i|grep ML  # 维护级别
# 或查看所有补丁
instfix -ia
# 或查看特定补丁
instfix -ik IZ12345

# 64. 查看文件集(软件包)状态
lslpp -l|head-20
# 或查看可更新文件集
lslpp -L|grep-v"COMMITTED"

# 65. 查看系统安全加固配置
cat /etc/security/mck 2>/dev/null
# 或运行安全核查
/usr/sbin/mck 2>/dev/null ||echo"mck未安装"

# 66. 查看内核安全参数(AIX特有lsattr)
lsattr -El sys0 |grep-i security
# 或查看所有参数
lsattr -El sys0

# 67. 查看网络内核参数(no命令)
no -a|grep-i security
# 关键参数:
# ipforwarding = 0              # IP转发禁用
# ipsrcrouteforward = 0         # 源路由转发禁用
# ipsrcrouterecv = 0            # 源路由接收禁用
# ipsrcroutesend = 0              # 源路由发送禁用
# directed_broadcast = 0          # 定向广播禁用
# tcp_pmtu_discover = 0           # PMTU发现(防隧道攻击)
# udp_pmtu_discover = 0

# 68. 查看系统资源限制(防DoS)
ulimit-a
# 或查看配置文件
cat /etc/security/limits
# 或使用
lsuser -a fsize cpu nproc nofile ALL |head-10

# 69. 查看文件描述符限制
lsattr -El sys0 |grep maxuproc
# 或
lsuser -a nofile root

# 70. 查看进程限制
lsuser -a nproc ALL |head-10
# 或系统级
lsattr -El sys0 |grep maxuproc

# 71. 查看核心转储配置(安全考虑)
lsattr -El sys0 |grep fullcore
# 建议:fullcore = false 或限制核心转储路径

4.2 网络安全配置

# 72. 查看网络接口配置
ifconfig-a
# 或
netstat-in

# 73. 查看网络接口状态(AIX特有)
lsdev -Cc ifnet
# 或
ifconfig en0

# 74. 查看路由表
netstat-rn
# 或
route -n get default

# 75. 查看监听端口
netstat-an|grep LISTEN
# 或
netstat-Aan|grep-i listen

# 76. 查看防火墙状态(IPFilter或AIX防火墙)
lsfilt -v4# 查看IPv4过滤规则
lsfilt -v6# 查看IPv6过滤规则
# 或查看配置
cat /etc/security/ipfilter/ipfilter.conf 2>/dev/null

# 77. 查看TCP Wrappers配置
cat /etc/hosts.allow
cat /etc/hosts.deny
# 期望:hosts.deny包含ALL: ALL

# 78. 查看inetd服务(传统服务管理)
cat /etc/inetd.conf
# 或使用SRC查看
lssrc -ls inetd

# 79. 查看Services文件
cat /etc/services |grep-v"^#"

# 80. 查看NFS共享(如使用)
showmount -e localhost
cat /etc/exports
# 检查:限制客户端,使用root_squash等安全选项
exportfs -v# 查看当前导出

# 81. 查看DNS配置
cat /etc/resolv.conf
cat /etc/netsvc.conf |grep hosts
# 或
nslookup-type=ns localhost

# 82. 查看LDAP/NIS配置(如使用)
cat /etc/netsvc.conf
lsldap  # 如使用LDAP
ypwhich  # 如使用NIS

五、恶意代码防范与完整性(8.1.4.5/8.1.4.6)

5.1 系统完整性检查

测评项AIX命令达标判据
查看文件完整性lppchk -v / lppchk -c无异常修改
检查关键文件sum / csum / md5sum哈希校验
查看软件包签名lslpp -L状态为COMMITTED
检查启动完整性bootinfo -b / lslv -m hd5启动逻辑卷完整
# 83. 验证软件包完整性(lppchk)
lppchk -v# 验证文件集
# 或检查文件
lppchk -c# 检查文件校验和
# 或检查链接
lppchk -l# 检查符号链接

# 84. 计算文件校验和(AIX特有)
sum /etc/passwd
csum /etc/passwd
# 或使用md5sum(如安装)
md5sum /etc/passwd 2>/dev/null || csum -h MD5 /etc/passwd

# 85. 查看软件包控制文件
lslpp -f bos.rte  # 查看bos.rte包含的文件
# 或查看所有文件集
lslpp -L|grep-v"COMMITTED"

# 86. 查看系统启动配置(AIX特有BLV - Boot Logical Volume)
bootinfo -b# 查看启动设备
lslv -m hd5  # 查看启动逻辑卷映射
# 或查看
ipl_varyon -i# 查看IPL(Initial Program Load)信息

# 87. 查看内核完整性
ls-la /usr/lib/boot/unix*
file /usr/lib/boot/unix_64
# 检查:权限、大小、修改时间

# 88. 查看ODM数据库完整性(AIX特有)
/usr/sbin/odmcheck 2>/dev/null ||echo"odmcheck未安装"
# 或查看ODM对象
odmget CuAt |head-20

# 89. 查看关键目录完整性
ls-la /sbin /usr/sbin /bin /usr/bin /etc
# 检查:无异常文件,权限正确

# 90. 查看防病毒软件(如安装McAfee/Symantec)
ps-ef|grep-i"mcafee\|symantec\|sophos\|trend\|av"
# 或查看
lslpp -L|grep-i virus
lslpp -L|grep-i security

# 91. 查看入侵检测(IDS)配置
cat /etc/security/ids 2>/dev/null
# 或查看
lslpp -L|grep-i ids

六、数据备份与恢复(8.1.4.9)

6.1 LVM与存储管理

AIX使用 LVM(Logical Volume Manager) 作为核心存储管理技术。

# 92. 查看逻辑卷配置(LVM)
lslv -L# 列出所有逻辑卷
# 或详细查看
lslv hd1  # 查看特定逻辑卷

# 93. 查看卷组状态
lsvg  # 列出所有卷组
lsvg -o# 列出活动的卷组
lsvg rootvg  # 查看rootvg详情

# 94. 查看物理卷状态
lspv  # 列出所有物理卷
lspv hdisk0  # 查看特定物理卷

# 95. 查看文件系统配置
df-k# 磁盘使用情况
# 或AIX特有
df-I# 显示inode和压缩信息

# 96. 查看文件系统快照(AIX特有FlashCopy)
lsfc  # 列出FlashCopy关系(如配置)

# 97. 查看备份配置(mksysb/savevg)
lsmksysb  # 列出mksysb备份(如配置)
# 或查看备份设备
lsdev -Cc tape  # 列出磁带设备

# 98. 查看自动备份计划
crontab-l|grep-i backup
cat /var/spool/cron/crontabs/root |grep-i backup

# 99. 查看Tivoli Storage Manager(TSM)配置(如使用)
dsmc query schedule  # TSM客户端查询
cat /opt/tivoli/tsm/client/ba/bin/dsm.sys 2>/dev/null

# 100. 查看mksysb备份历史
ls-la /mksysb/ 2>/dev/null
# 或
ls-la /backup/ 2>/dev/null

七、服务管理与SRC(8.1.4.4/8.1.4.9)

AIX使用 SRC(System Resource Controller) 管理系统服务。

# 101. 查看所有服务状态(SRC)
lssrc -a
# 或仅查看活动服务
lssrc -a|grep active

# 102. 查看特定服务状态
lssrc -s sshd
lssrc -s inetd
lssrc -scron

# 103. 查看服务组
lssrc -g tcpip  # TCP/IP服务组
lssrc -g nfs  # NFS服务组

# 104. 查看服务配置
cat /etc/inittab  # 传统init配置
# 或查看SRC子系统
cat /etc/rc.tcpip  # TCP/IP启动脚本

# 105. 查看服务日志(SRC特有)
lssrc -ls syslogd  # 查看syslogd详细状态

# 106. 查看inetd服务配置
lssrc -ls inetd
# 或查看配置文件
cat /etc/inetd.conf
# 或使用SMIT
smit inetdconf

# 107. 查看启动脚本完整性
ls-la /etc/rc.*
ls-la /sbin/rc.*

# 108. 查看系统初始化配置
cat /etc/inittab |grep-v"^#"
# 检查:运行级别,启动程序

八、高可用与集群(8.1.4.9)

AIX常用 PowerHA(HACMP/High Availability Cluster Multiprocessing) 实现高可用。

# 109. 查看PowerHA集群状态(如果使用)
/usr/es/sbin/cluster/utilities/cllsnode  # 列出节点
/usr/es/sbin/cluster/utilities/clshowres  # 显示资源
/usr/es/sbin/cluster/utilities/clstat  # 集群状态(旧版)
# 或新版
/usr/es/sbin/cluster/utilities/clmgr -v# 查看集群管理器

# 110. 查看PowerHA配置
/usr/es/sbin/cluster/utilities/cllsclstr
# 或
cat /usr/es/sbin/cluster/etc/cluster.conf 2>/dev/null

# 111. 查看集群节点状态
/usr/es/sbin/cluster/utilities/cllsnode -p
# 或
lssrc -ls clstrmgrES  # 查看集群管理器

# 112. 查看集群资源组
/usr/es/sbin/cluster/utilities/clshowres -g resource_group

# 113. 查看集群网络配置
/usr/es/sbin/cluster/utilities/cllsif  # 列出接口
/usr/es/sbin/cluster/utilities/cllsnw  # 列出网络

# 114. 查看GPFS集群状态(如果使用GPFS)
mmlscluster
mmlsnode -a
mmlsdisk all

# 115. 查看共享存储(PowerHA/GPFS)
lspv |grep-i shared
# 或
lsvg -o|xargs lsvg |grep-i"VG STATE"

九、一键巡检脚本(AIX版)

#!/bin/ksh
# IBM AIX 等保三级一键巡检脚本
# 支持:AIX 6.1/7.1/7.2/7.3 (Power架构)
# 执行权限:root

INSPECTION_LOG="/var/log/aix_inspection_$(date +%Y%m%d_%H%M%S).log"

print "=========================================="|tee-a$INSPECTION_LOG
print "   IBM AIX 等保三级巡检报告"|tee-a$INSPECTION_LOG
print "   时间: $(date)"|tee-a$INSPECTION_LOG
print "   主机: $(uname-n)"|tee-a$INSPECTION_LOG
print "   版本: $(oslevel)"|tee-a$INSPECTION_LOG
print "   架构: $(uname-p)"|tee-a$INSPECTION_LOG
print "=========================================="|tee-a$INSPECTION_LOG

check_pass(){
    print "[PASS] $1"|tee-a$INSPECTION_LOG
[-n"$2"]&& print "    $2"|tee-a$INSPECTION_LOG
}

check_fail(){
    print "[FAIL] $1"|tee-a$INSPECTION_LOG
[-n"$2"]&& print "    $2"|tee-a$INSPECTION_LOG
}

check_warn(){
    print "[WARN] $1"|tee-a$INSPECTION_LOG
[-n"$2"]&& print "    $2"|tee-a$INSPECTION_LOG
}

# 1. 身份鉴别检查
print ""|tee-a$INSPECTION_LOG
print "===== 1. 身份鉴别 ====="|tee-a$INSPECTION_LOG

print "--- 空口令检查 ---"|tee-a$INSPECTION_LOG
empty_pass=$(logins -p2>/dev/null)
if[-z"$empty_pass"];then
    check_pass "空口令检查""未发现空口令用户"
else
    check_fail "空口令检查""发现空口令用户: $empty_pass"
fi

print "--- 密码策略检查 ---"|tee-a$INSPECTION_LOG
if[-f /etc/security/user ];then
minlen=$(lssecattr -c /etc/security/user -s default 2>/dev/null |grep minlen |awk'{print $3}')
if["$minlen"-ge8]2>/dev/null;then
        check_pass "密码最小长度""当前设置: $minlen"
else
        check_fail "密码最小长度""当前设置: ${minlen:-未设置},建议≥8"
fi

maxage=$(lssecattr -c /etc/security/user -s default 2>/dev/null |grep maxage |awk'{print $3}')
if["$maxage"-le13]2>/dev/null;then
        check_pass "密码最大使用期""当前设置: ${maxage}周(约$((maxage*7))天)"
else
        check_warn "密码最大使用期""当前设置: ${maxage:-未设置}周,建议≤13"
fi

loginretries=$(lssecattr -c /etc/security/user -s default 2>/dev/null |grep loginretries |awk'{print $3}')
if["$loginretries"-le5]2>/dev/null;then
        check_pass "登录重试次数""当前设置: $loginretries"
else
        check_warn "登录重试次数""当前设置: ${loginretries:-未设置},建议≤5"
fi
else
    check_fail "密码策略文件""/etc/security/user不存在"
fi

print "--- SSH安全配置 ---"|tee-a$INSPECTION_LOG
ssh_conf="/etc/ssh/sshd_config"
if[-f"$ssh_conf"];then
ssh_ver=$(grep"^Protocol" $ssh_conf 2>/dev/null |awk'{print $2}')
if["$ssh_ver"="2"];then
        check_pass "SSH协议版本""强制使用SSHv2"
else
        check_warn "SSH协议版本""未强制SSHv2,当前: ${ssh_ver:-未设置}"
fi

root_login=$(grep"^PermitRootLogin" $ssh_conf 2>/dev/null |awk'{print $2}')
if["$root_login"="no"];then
        check_pass "Root远程登录""已禁止"
else
        check_fail "Root远程登录""未禁止: ${root_login:-未设置}"
fi
else
    check_fail "SSH配置""sshd_config不存在"
fi

# 2. 访问控制检查
print ""|tee-a$INSPECTION_LOG
print "===== 2. 访问控制 ====="|tee-a$INSPECTION_LOG

print "--- 关键文件权限 ---"|tee-a$INSPECTION_LOG
shadow_perm=$(ls-la /etc/security/passwd 2>/dev/null |awk'{print $1}')
if["$shadow_perm"="-rw-------"]||["$shadow_perm"="-rw-r-----"];then
    check_pass "安全密码文件权限""权限正确: $shadow_perm"
else
    check_fail "安全密码文件权限""权限不合规: ${shadow_perm:-无法获取}"
fi

print "--- RBAC配置 ---"|tee-a$INSPECTION_LOG
if[-f /etc/security/user_roles ];then
role_count=$(lsrole ALL 2>/dev/null |wc-l)
    check_pass "RBAC配置""已启用RBAC,定义$role_count个角色"
else
    check_warn "RBAC配置""未启用RBAC,建议启用"
fi

print "--- SUID/SGID文件 ---"|tee-a$INSPECTION_LOG
suid_count=$(find / -type f \(-perm-4000-o-perm-2000\)2>/dev/null |wc-l)
if["$suid_count"-lt50];then
    check_pass "SUID/SGID文件""发现 $suid_count 个"
else
    check_warn "SUID/SGID文件""发现 $suid_count 个,建议审查"
fi

# 3. 安全审计检查
print ""|tee-a$INSPECTION_LOG
print "===== 3. 安全审计 ====="|tee-a$INSPECTION_LOG

print "--- 审计系统状态 ---"|tee-a$INSPECTION_LOG
audit_stat=$(/usr/sbin/audit query 2>/dev/null |head-1)
ifecho"$audit_stat"|grep-q"enabled";then
    check_pass "AUDIT审计""审计已启用"
else
    check_fail "AUDIT审计""审计未启用: ${audit_stat:-未配置}"
fi

print "--- 审计日志检查 ---"|tee-a$INSPECTION_LOG
if[-d /audit ];then
audit_size=$(du-sk /audit 2>/dev/null |awk'{print $1}')
    check_pass "审计日志目录""存在,大小: ${audit_size}KB"
else
    check_fail "审计日志目录""/audit不存在"
fi

print "--- 系统日志配置 ---"|tee-a$INSPECTION_LOG
if[-f /var/log/messages ];then
    check_pass "系统日志""messages日志存在"
else
    check_warn "系统日志""messages.log不存在"
fi

# 4. 入侵防范检查
print ""|tee-a$INSPECTION_LOG
print "===== 4. 入侵防范 ====="|tee-a$INSPECTION_LOG

print "--- 系统版本与补丁 ---"|tee-a$INSPECTION_LOG
aix_ver=$(oslevel)
check_pass "系统版本""$aix_ver"

print "--- 补丁级别检查 ---"|tee-a$INSPECTION_LOG
oslevel_r=$(oslevel -r2>/dev/null)
check_pass "推荐技术级别""$oslevel_r"

print "--- 内核安全参数 ---"|tee-a$INSPECTION_LOG
ip_forward=$(no -o ipforwarding 2>/dev/null |awk'{print $3}')
if["$ip_forward"="0"];then
    check_pass "IP转发""已禁用"
else
    check_fail "IP转发""已启用,建议禁用"
fi

print "--- 软件包完整性 ---"|tee-a$INSPECTION_LOG
lppchk_v=$(lppchk -v2>&1|head-1)
if[-z"$lppchk_v"]||echo"$lppchk_v"|grep-q"verified";then
    check_pass "软件包验证""所有文件集已验证"
else
    check_warn "软件包验证""存在验证问题: $lppchk_v"
fi

# 5. 数据安全与备份
print ""|tee-a$INSPECTION_LOG
print "===== 5. 数据安全与备份 ====="|tee-a$INSPECTION_LOG

print "--- 逻辑卷配置 ---"|tee-a$INSPECTION_LOG
vg_count=$(lsvg 2>/dev/null |wc-l)
if["$vg_count"-gt0];then
    check_pass "LVM配置""发现 $vg_count 个卷组"
else
    check_warn "LVM配置""未找到卷组配置"
fi

print "--- 文件系统加密 ---"|tee-a$INSPECTION_LOG
enc_count=$(lsfs -a encryption 2>/dev/null |grep-v"efs"|wc-l)
if["$enc_count"-gt0];then
    check_pass "文件系统加密""$enc_count 个文件系统已加密"
else
    check_warn "文件系统加密""未发现加密文件系统"
fi

# 6. 高可用检查
print ""|tee-a$INSPECTION_LOG
print "===== 6. 高可用与冗余 ====="|tee-a$INSPECTION_LOG

print "--- PowerHA集群 ---"|tee-a$INSPECTION_LOG
if[-x /usr/es/sbin/cluster/utilities/cllsnode ];then
cluster_nodes=$(/usr/es/sbin/cluster/utilities/cllsnode 2>/dev/null |wc-l)
    check_pass "PowerHA""集群软件已安装,$cluster_nodes个节点"
else
    check_warn "PowerHA""未安装集群软件"
fi

print "--- 卷组镜像 ---"|tee-a$INSPECTION_LOG
mirrored_vgs=$(lsvg 2>/dev/null |whileread vg;do lsvg $vg |grep"MIRROR POOL";done|wc-l)
if["$mirrored_vgs"-gt0];then
    check_pass "卷组镜像""$mirrored_vgs个卷组已配置镜像"
else
    check_warn "卷组镜像""未配置镜像,建议配置"
fi

# 总结
print ""|tee-a$INSPECTION_LOG
print "=========================================="|tee-a$INSPECTION_LOG
print "   巡检完成"|tee-a$INSPECTION_LOG
print "   日志保存: $INSPECTION_LOG"|tee-a$INSPECTION_LOG
print "=========================================="|tee-a$INSPECTION_LOG

print ""|tee-a$INSPECTION_LOG
print "统计结果:"|tee-a$INSPECTION_LOG
grep-c"\[PASS\]"$INSPECTION_LOG|read pass_count; print "通过项: $pass_count"|tee-a$INSPECTION_LOG
grep-c"\[FAIL\]"$INSPECTION_LOG|read fail_count; print "失败项: $fail_count"|tee-a$INSPECTION_LOG
grep-c"\[WARN\]"$INSPECTION_LOG|read warn_count; print "警告项: $warn_count"|tee-a$INSPECTION_LOG

高风险项重点核查清单

检查项验证命令不合规判定整改建议
存在空口令用户logins -p有输出passwd username 设置密码
密码策略未启用lssecattr -c /etc/security/user -s defaultminlen未设置或<8设置minlen=8
未启用账户锁定lssecattr -c /etc/security/user -s defaultloginretries未设置或>5设置loginretries=5
SSH允许root登录grep PermitRootLogin /etc/ssh/sshd_config为yes设置为no
IP转发未禁用no -o ipforwarding返回1no -p -o ipforwarding=0
AUDIT审计未启用/usr/sbin/audit query非enabled/usr/sbin/audit on 启用
无审计日志目录ls /audit不存在创建目录并配置审计
SUID文件过多find / -perm -4000 | wc -l>50个审查并移除不必要SUID
软件包验证失败lppchk -v有错误输出重新安装或更新文件集
未配置PowerHAls /usr/es/sbin/cluster不存在关键业务系统建议部署
卷组未镜像lsvg -l rootvg无多个PVmirrorvg 配置镜像
关键文件权限错误ls -la /etc/security/passwd非-rw——-chmod 600 /etc/security/passwd

AIX版本差异说明

功能项AIX 6.1 TL9AIX 7.1AIX 7.2AIX 7.3
硬件支持Power6/7Power6/7/8Power8/9Power9/10
核心特性基础增强RBACLive UpdateAI集成增强
文件系统加密有限JFS2 EA完整JFS2加密增强加密
审计系统AUDITAUDIT增强AUDIT增强智能审计
安全补丁有限支持持续支持持续支持持续支持
等保适配需大量加固需加固安全基线模板预置安全模板
容器支持WPARWPAR增强原生容器增强容器
Live Partition Mobility支持支持增强增强

与HP-UX/Solaris/Linux对比

对比项IBM AIX 7.3HP-UX 11i v3Oracle Solaris 11RHEL 9
内核AIXHP-UXSunOS 5.11Linux 5.14
硬件IBM PowerItanium/PA-RISCSPARC/x86-64x86-64/ARM
包管理installp/lslppswinstall/swlistIPSRPM/DNF
服务管理SRCinit/SAM/SMHSMFsystemd
文件系统JFS2JFS/VxFSZFSXFS/ext4
RBAC完整完整完整sudo/PolicyKit
审计AUDITAUDITBSMauditd
高可用PowerHAServiceguardCluster SuitePacemaker
虚拟化LPAR/WPAR/VIOSvPar/nPar/IVMZone/VMKVM/容器
行业应用金融、电信、政府金融、制造、电信电信、金融全行业
等保工具安全基线模板需定制需定制有加固脚本

常用命令速查

# 系统信息
oslevel                     # AIX版本
oslevel -r# 推荐技术级别
oslevel -s# 服务包级别
uname-a# 完整系统信息
uname-p# 处理器类型
uname-M# 机器型号
prtconf                     # 硬件配置
lparstat -i# LPAR信息(如适用)

# 用户管理
mkuser username             # 创建用户
chuser username             # 修改用户
rmuser username             # 删除用户
lsuser ALL                  # 列出所有用户
lsuser -f username          # 详细用户信息
pwdadm username             # 密码管理
pwdck ALL                   # 检查密码文件
grpck ALL                   # 检查组文件
logins -p# 检查空口令
logins -d# 检查过期密码

# 权限管理
chown user:group file# 修改属主
chmod644file# 修改权限
aclget file# 获取ACL
aclput file# 设置ACL
istat file# 文件详细信息
lsrole ALL                  # 列出角色
lsauth ALL                  # 列出授权
getuserattr username roles  # 获取用户角色

# 审计管理
/usr/sbin/audit on          # 启用审计
/usr/sbin/audit off         # 禁用审计
/usr/sbin/audit query       # 查询状态
/usr/sbin/audit shutdown# 关闭审计
/usr/sbin/auditpr           # 格式化打印
/usr/sbin/auditselect       # 选择审计记录
/usr/sbin/auditstat         # 审计统计

# 软件包管理
lslpp -l# 列出文件集
lslpp -L# 详细列表
lslpp -f bos.rte            # 查看文件集文件
installp -a# 安装软件
installp -u# 更新软件
instfix -i# 检查补丁
instfix -ik IZ12345         # 安装特定补丁
lppchk -v# 验证文件集
lppchk -c# 检查校验和

# 存储管理(LVM)
lspv                        # 列出物理卷
lspv hdisk0                 # 物理卷详情
lsvg                        # 列出卷组
lsvg rootvg                 # 卷组详情
lslv                        # 列出逻辑卷
lslv hd1                    # 逻辑卷详情
lsfs                        # 列出文件系统
crfs                        # 创建文件系统
chfs                        # 修改文件系统
df-k# 磁盘使用
df-I# 显示inode

# 网络管理
ifconfig-a# 接口配置
netstat-in# 网络接口状态
netstat-rn# 路由表
netstat-an# 连接状态
no -a# 网络选项
no -o ipforwarding          # 查看IP转发
lsfilt -v4# IPFilter规则
lssrc -g tcpip              # TCP/IP服务
hosthostname# DNS查询
nslookuphostname# DNS查询

# 服务管理(SRC)
lssrc -a# 所有服务
lssrc -s sshd               # 特定服务
lssrc -ls sshd              # 服务详情
startsrc -s sshd            # 启动服务
stopsrc -s sshd             # 停止服务
refresh -s sshd             # 刷新服务
cat /etc/inittab            # init配置
cat /etc/rc.tcpip           # TCP/IP启动

# 错误日志
errpt                       # 错误报告
errpt -a# 详细错误
errpt -j IDENTIFIER         # 特定错误
/usr/lib/errdemon -l# 错误日志配置
alog -t console -o# 控制台日志

# 高可用(PowerHA)
/usr/es/sbin/cluster/utilities/cllsnode      # 列出节点
/usr/es/sbin/cluster/utilities/clshowres     # 显示资源
/usr/es/sbin/cluster/utilities/cllsclstr     # 列出集群
/usr/es/sbin/cluster/utilities/clmgr -v# 集群管理器
/usr/es/sbin/cluster/utilities/clstat        # 集群状态

# 备份管理
mksysb -i /dev/rmt0         # 制作系统备份
savevg -i rootvg /dev/rmt0  # 备份卷组
restvg                      # 恢复卷组
lsmksysb                    # 列出mksysb
tar-cvf /dev/rmt0 /data    # tar备份
backup -i-f /dev/rmt0 /data # 增量备份

参考标准:GB/T 22239-2019、GB/T 28448-2019、IBM AIX Security Guide、CIS AIX Benchmarks、NIST SP 800-53

适用版本:AIX 6.1 TL9+、AIX 7.1、AIX 7.2、AIX 7.3

硬件平台:IBM Power Systems(Power6/Power7/Power8/Power9/Power10)

执行权限:多数命令需root或等效特权(如sa组),部分查看命令普通用户可执行

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

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

相关推荐

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