各位大佬,想看那种网络设备/操作系统/数据库/中间件的测评命令清单,可在留言区留言!
依据 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 ALL | loginretries=5 |
| 查看会话超时 | echo $TMOUT / cat /etc/profile | ≤10分钟 |
| 检查SSH超时 | cat /etc/ssh/sshd_config | ClientAliveInterval 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 default | minlen未设置或<8 | 设置minlen=8 |
| 未启用账户锁定 | lssecattr -c /etc/security/user -s default | loginretries未设置或>5 | 设置loginretries=5 |
| SSH允许root登录 | grep PermitRootLogin /etc/ssh/sshd_config | 为yes | 设置为no |
| IP转发未禁用 | no -o ipforwarding | 返回1 | no -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 | 有错误输出 | 重新安装或更新文件集 |
| 未配置PowerHA | ls /usr/es/sbin/cluster | 不存在 | 关键业务系统建议部署 |
| 卷组未镜像 | lsvg -l rootvg | 无多个PV | mirrorvg 配置镜像 |
| 关键文件权限错误 | ls -la /etc/security/passwd | 非-rw——- | chmod 600 /etc/security/passwd |
AIX版本差异说明
| 功能项 | AIX 6.1 TL9 | AIX 7.1 | AIX 7.2 | AIX 7.3 |
|---|---|---|---|---|
| 硬件支持 | Power6/7 | Power6/7/8 | Power8/9 | Power9/10 |
| 核心特性 | 基础 | 增强RBAC | Live Update | AI集成增强 |
| 文件系统加密 | 有限 | JFS2 EA | 完整JFS2加密 | 增强加密 |
| 审计系统 | AUDIT | AUDIT增强 | AUDIT增强 | 智能审计 |
| 安全补丁 | 有限支持 | 持续支持 | 持续支持 | 持续支持 |
| 等保适配 | 需大量加固 | 需加固 | 安全基线模板 | 预置安全模板 |
| 容器支持 | WPAR | WPAR增强 | 原生容器 | 增强容器 |
| Live Partition Mobility | 支持 | 支持 | 增强 | 增强 |
与HP-UX/Solaris/Linux对比
| 对比项 | IBM AIX 7.3 | HP-UX 11i v3 | Oracle Solaris 11 | RHEL 9 |
|---|---|---|---|---|
| 内核 | AIX | HP-UX | SunOS 5.11 | Linux 5.14 |
| 硬件 | IBM Power | Itanium/PA-RISC | SPARC/x86-64 | x86-64/ARM |
| 包管理 | installp/lslpp | swinstall/swlist | IPS | RPM/DNF |
| 服务管理 | SRC | init/SAM/SMH | SMF | systemd |
| 文件系统 | JFS2 | JFS/VxFS | ZFS | XFS/ext4 |
| RBAC | 完整 | 完整 | 完整 | sudo/PolicyKit |
| 审计 | AUDIT | AUDIT | BSM | auditd |
| 高可用 | PowerHA | Serviceguard | Cluster Suite | Pacemaker |
| 虚拟化 | LPAR/WPAR/VIOS | vPar/nPar/IVM | Zone/VM | KVM/容器 |
| 行业应用 | 金融、电信、政府 | 金融、制造、电信 | 电信、金融 | 全行业 |
| 等保工具 | 安全基线模板 | 需定制 | 需定制 | 有加固脚本 |
常用命令速查
# 系统信息
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