macOS-三级等保现场测评命令单
Categories:
5 分钟阅读
示例版本:macOS Ventura 13
说明:Apple 官方支持文档可直接支撑“远程登录”使用 SSH 或 SFTP;“软件更新”用于检查系统更新;macOS 内置应用防火墙支持 Block all incoming connections、自动允许签名软件和 stealth mode 等配置。
系统版本核查
sw_vers
- 预期现象:应显示 ProductName、ProductVersion、BuildVersion 等字段。
示例输出(节选)
ProductName: macOS
ProductVersion: 13.5.2
BuildVersion: 22G91
system_profiler SPSoftwareDataType
- 预期现象:应显示 System Version、Kernel Version、Boot Volume、Secure Virtual Memory 等软件信息。
示例输出(节选)
Software:
System Software Overview:
System Version: macOS 13.5.2 (22G91)
Kernel Version: Darwin 22.6.0
Boot Volume: Macintosh HD
Secure Virtual Memory: Enabled
uname -a
- 预期现象:应显示 Darwin 内核版本、主机名、架构等信息。
示例输出(节选)
Darwin demo-mac 22.6.0 Darwin Kernel Version 22.6.0: Wed Jul 26 21:31:31 PDT 2023; root:xnu-8796.141.3~1/RELEASE_X86_64 x86_64
网络配置核查
ifconfig
- 预期现象:应显示网络接口、IPv4/IPv6、MAC 地址等信息。
示例输出(节选)
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether a1:b2:c3:d4:e5:f6
inet 192.168.1.10 netmask 0xffffff00 broadcast 192.168.1.255
inet6 fe80::1234:5678:90ab:cdef%en0 prefixlen 64 secured scopeid 0x6
media: autoselect
status: active
networksetup -listallnetworkservices
- 预期现象:应列出当前配置的网络服务名称。
示例输出(节选)
An asterisk (*) denotes that a network service is disabled.
Wi-Fi
Thunderbolt Ethernet
scutil --dns
- 预期现象:应显示当前 DNS 解析器配置。
示例输出(节选)
DNS configuration
resolver #1
nameserver[0] : 192.168.1.1
nameserver[1] : 192.168.1.2
if_index : 6 (en0)
账户与口令策略核查
dscl . list /Users
- 预期现象:应列出本地用户对象。
示例输出(节选)
daemon
nobody
root
admin
devuser
dscl . -read /Users/root
- 预期现象:应显示 root 账户属性;若未启用 root,仍可用于核查账户对象信息。
示例输出(节选)
AppleMetaNodeLocation: /Local/Default
GeneratedUID: FFFFEEEE-DDDD-CCCC-BBBB-AAAA00000000
NFSHomeDirectory: /var/root
RecordName: root
UniqueID: 0
UserShell: /bin/sh
pwpolicy -getaccountpolicies
- 预期现象:已配置账户口令策略时应输出策略 XML/plist;未配置时可能为空。
示例输出(节选)
Getting global account policies
+-------------------------------------------------------------------------------+
policyCategoryPasswordContent:
policyIdentifier: maxFailedLoginAttempts
policyContent: policyAttributeCurrentFailedAttempts < 5 ...
sysadminctl -secureTokenStatus 用户名
- 预期现象:应显示指定用户是否具有 Secure Token。
示例输出(节选)
Secure token is ENABLED for user devuser
cat /etc/pam.d/authorization
- 预期现象:应显示本地认证相关 PAM 配置。
示例输出(节选)
auth optional pam_kanji.so
auth optional pam_cknso.so
auth required pam_opendirectory.so use_first_pass
account required pam_opendirectory.so
远程接入服务核查
systemsetup -getremotelogin
- 预期现象:应显示 Remote Login: On 或 Off。Apple 官方说明远程登录使用 SSH 或 SFTP。
示例输出(节选)
Remote Login: On
systemsetup -getremoteappleevents
- 预期现象:应显示 Remote Apple Events: On 或 Off。
示例输出(节选)
Remote Apple Events: Off
lsof -iTCP -sTCP:LISTEN -n -P
- 预期现象:应显示当前监听端口及对应进程。
示例输出(节选)
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
launchd 1 root 8u IPv4 0xa1b2c3d4e5f6 0t0 TCP *:22 (LISTEN)
rapportd 512 user 4u IPv4 0xf6e5d4c3b2a1 0t0 TCP *:59241 (LISTEN)
launchctl list | grep ssh
- 预期现象:启用 SSH 时通常可见 sshd 相关服务或进程标识。
示例输出(节选)
- 0 com.openssh.sshd
远程连接协议与算法核查
cat /etc/ssh/sshd_config
- 预期现象:应显示 SSH 服务端配置,可核查认证、访问控制和算法参数。
示例输出(节选)
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#PermitRootLogin prohibit-password
#MaxAuthTries 6
#PubkeyAuthentication yes
Subsystem sftp internal-sftp
sshd -T | egrep 'ciphers|macs|kexalgorithms|hostkeyalgorithms|pubkeyacceptedalgorithms'
- 预期现象:应输出 SSH 服务端当前生效的算法配置。
示例输出(节选)
ciphers chacha20-poly1305@openssh.com,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-ctr,aes256-ctr
macs umac-64-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com
kexalgorithms curve25519-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512
hostkeyalgorithms ssh-ed25519,rsa-sha2-512,rsa-sha2-256
pubkeyacceptedalgorithms ssh-ed25519,rsa-sha2-512,rsa-sha2-256
ssh -Q cipher
- 预期现象:应列出本机 OpenSSH 支持的对称加密算法。
示例输出(节选)
chacha20-poly1305@openssh.com
aes128-gcm@openssh.com
aes256-gcm@openssh.com
aes128-ctr
aes256-ctr
ssh -Q mac
- 预期现象:应列出本机 OpenSSH 支持的 MAC 算法。
示例输出(节选)
hmac-sha2-256-etm@openssh.com
hmac-sha2-512-etm@openssh.com
umac-64-etm@openssh.com
umac-128-etm@openssh.com
ssh -Q kex
- 预期现象:应列出本机 OpenSSH 支持的密钥交换算法。
示例输出(节选)
curve25519-sha256
curve25519-sha256@libssh.org
ecdh-sha2-nistp256
diffie-hellman-group14-sha256
diffie-hellman-group16-sha512
ssh -Q key
- 预期现象:应列出本机 OpenSSH 支持的主机密钥/公钥算法。
示例输出(节选)
ssh-ed25519
ssh-ed25519-cert-v01@openssh.com
rsa-sha2-512
rsa-sha2-256
ssh-rsa
ssh -V
- 预期现象:应输出 OpenSSH 版本号。
示例输出(节选)
OpenSSH_9.0p1, LibreSSL 3.3.6
安全审计核查
ls -l /var/audit
- 预期现象:启用 BSM 审计时应显示审计日志目录及文件。
示例输出(节选)
total 24
drwx------ 3 root wheel 96 Aug 20 09:00 .
drwxr-xr-x 6 root wheel 192 Aug 20 09:00 ..
-rw-r----- 1 root wheel 8192 Aug 21 17:32 20260821093000.not_terminated.demo-mac
praudit /var/audit/current
- 预期现象:当前审计日志文件存在时应输出可读审计记录;文件不存在时需结合现场确认审计状态。
示例输出(节选)
header,133,11,user authentication,0,Fri Aug 21 17:32:01 2026, + 120 msec
subject,devuser,root,wheel,devuser,501,99,,0,0,192.168.1.10
return,success,0
trailer,133
log show --last 1d
- 预期现象:应输出最近一天统一日志;输出通常较长。
示例输出(节选)
Timestamp Thread Type Activity PID
2026-08-21 09:00:12.345001+0800 0x1a2b Default 0x0 111 launchd: Bootstrapping com.apple.sshd
2026-08-21 09:00:13.456002+0800 0x3c4d Default 0x0 222 sshd: Server listening on 0.0.0.0 port 22.
last
- 预期现象:应显示登录记录。
示例输出(节选)
devuser pts/1 192.168.1.55 Fri Aug 21 16:02 still logged in
devuser console Fri Aug 21 09:00 still logged in
reboot ~ Fri Aug 21 08:58
shutdown ~ Thu Aug 20 19:30
边界防护核查
/usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
- 预期现象:应显示应用防火墙开关状态。
示例输出(节选)
Firewall is enabled. (State = 1)
/usr/libexec/ApplicationFirewall/socketfilterfw --getblockall
- 预期现象:应显示是否启用 Block all incoming connections。
示例输出(节选)
Block all incoming connections is disabled
/usr/libexec/ApplicationFirewall/socketfilterfw --getstealthmode
- 预期现象:应显示 stealth mode 是否启用。
示例输出(节选)
Stealth mode enabled
pfctl -s info
- 预期现象:启用 PF 时应显示包过滤器状态信息。
示例输出(节选)
Status: Enabled for 5 days 03:12, Debug: Urgent
State Table Total Rate
current entries 4
Searches 18234567 41.15/s
Matches 23451 0.05/s
Invalid Packets 0 0.00/s
pfctl -sr
- 预期现象:存在 PF 规则时应输出规则集。
示例输出(节选)
scrub-anchor "com.apple/*" all fragment reassemble
block drop in log proto tcp from any to any port = 23
pass out on en0 all
系统完整性与本地安全增强核查
csrutil status
- 预期现象:应显示 System Integrity Protection status: enabled 或 disabled。
示例输出(节选)
System Integrity Protection status: enabled.
spctl --status
- 预期现象:应显示 assessments enabled 或 disabled,用于核查 Gatekeeper 状态。
示例输出(节选)
assessments enabled
fdesetup status
- 预期现象:应显示 FileVault 是否开启。
示例输出(节选)
FileVault is On.
最小安装与补丁核查
softwareupdate --list
- 预期现象:应列出可用更新;若无更新,通常会提示未发现新软件。
示例输出(节选)
Software Update found the following new or updated software:
* Label: macOS Ventura 13.6-22G120
Title: macOS Ventura 13.6, Size: 1832476KiB, Recommended: YES,
softwareupdate --history
- 预期现象:应显示历史安装更新记录。
示例输出(节选)
Display Name Version Date Source
macOS Ventura 13.5 13.5 2026-07-28 10:12:34 Apple
Safari 16.6 2026-07-28 10:05:01 Apple
XProtectPlistDataUpdate 2026-08-18 04:30:00 Apple
system_profiler SPApplicationsDataType
- 预期现象:应列出已安装应用信息;输出通常较长。
示例输出(节选)
Terminal:
Version: 2.13
Obtained from: Identified Developer
Last Modified: 2026/8/1, 09:30
Kind: Intel
Signed by: Software Signing, Apple Code Signing Certification Authority...
时间同步与计划任务核查
systemsetup -getusingnetworktime
- 预期现象:应显示是否使用网络时间同步。
示例输出(节选)
Network Time: On
systemsetup -getnetworktimeserver
- 预期现象:应显示当前网络时间服务器。
示例输出(节选)
Network Time Server: time.internal.example.com
systemsetup -gettimezone
- 预期现象:应显示当前时区。
示例输出(节选)
Time Zone: Asia/Shanghai
crontab -l
- 预期现象:应显示当前用户计划任务;无任务时可能提示 no crontab。
示例输出(节选)
*/5 * * * * /usr/local/bin/healthcheck.sh >> ~/healthcheck.log 2>&1
launchctl list
- 预期现象:应列出当前 launchd 管理的任务和服务;输出通常较长。
示例输出(节选)
PID Status Label
- 0 com.apple.coreservices.uiagent
512 0 com.apple.rapportd
- 78 com.openssh.ssh-agent
入侵防范核查
grep -E '^(PermitRootLogin|LoginGraceTime|MaxAuthTries|AllowUsers|DenyUsers|AllowGroups|DenyGroups)' /etc/ssh/sshd_config
- 预期现象:应能看到 SSH 暴力破解防护与访问控制相关参数。
示例输出(节选)
PermitRootLogin no
LoginGraceTime 30
MaxAuthTries 4
AllowUsers devuser audituser
sshd -T | egrep 'permitrootlogin|logingracetime|maxauthtries|allowusers|denyusers|allowgroups|denygroups'
- 预期现象:应输出 SSH 服务端当前生效的对应参数值。
示例输出(节选)
permitrootlogin no
logingracetime 30
maxauthtries 4
allowusers devuser audituser
denyusers none
allowgroups none
denygroups none
log show --predicate 'eventMessage contains "Failed password"' --last 1d
- 预期现象:如有 SSH 失败登录事件,应在统一日志中出现匹配记录;无事件时可能为空。
示例输出(节选)
2026-08-21 14:22:31.102004+0800 0x5e6f Default 0x0 333 sshd: Failed password for invalid user admin from 203.0.113.77 port 51234 ssh2
2026-08-21 14:22:38.210115+0800 0x5e70 Default 0x0 333 sshd: Failed password for invalid user admin from 203.0.113.77 port 51236 ssh2
安全基线与完整性核查
defaults read /Library/Preferences/com.apple.loginwindow LoginwindowText
- 预期现象:如配置了登录告警文本,应输出对应内容;未配置时可能报错或无输出。
示例输出(节选)
本系统仅限授权人员使用,操作将被审计。
launchctl list | grep auditd
- 预期现象:启用审计时应显示 auditd 相关服务;未启用时可能无结果。
示例输出(节选)
245 0 com.apple.auditd