Linux(RHEL_CentOS)-三级现场测评命令单

RHEL 7.9 / CentOS 7.9 服务器三级等保现场测评取证命令单:/etc/redhat-release、/proc/version、hostnamectl 与 ip addr 版本与网络核查,/etc/passwd、/etc/shadow、/etc/login.defs、/etc/pam.d/system-auth、/etc/pam.d/password-auth、/etc/security/pwquality.conf 与 chage -l 账户口令策略核查,sshd_config 远程接入控制核查,以及安全审计、访问控制与地址限制、服务端口与边界防护、最小安装补丁与中间件、时钟与计划任务、入侵防范、安全基线与完整性核查。

示例版本:RHEL 7.9 / CentOS 7.9 定位:三级等保现场测评取证命令单,按功能小节组织核查命令、预期现象与判定要点。 配套速查:控制点组织的速查与增量清单版见 16、Linux操作系统测评命令。

系统版本核查

cat /etc/redhat-release
  • 预期现象:输出中通常包含 release 7.9 等版本关键字。
示例输出(节选)
CentOS Linux release 7.9.2009 (Core)
cat /proc/version
  • 预期现象:输出中通常包含 3.10.0-1160 等内核关键字段。
示例输出(节选)
Linux version 3.10.0-1160.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Mon Oct 19 16:18:59 UTC 2020
hostnamectl
  • 预期现象:通常可见 Static hostname、Operating System、Kernel 等字段。
示例输出(节选)
   Static hostname: web01
         Icon name: computer-server
           Chassis: server
Operating System: CentOS Linux 7 (Core)
     CPE OS Name: cpe:/o:centos:centos:7
          Kernel: Linux 3.10.0-1160.el7.x86_64
    Architecture: x86-64
  • 对应控制点:GB/T 22239-2019 8.1.4.4 安全计算环境-入侵防范(系统版本、最小安装与补丁基线的版本确认)。
  • 判定要点:版本与内核信息和资产台账一致、系统仍在官方支持期内且有近期补丁更新记录判符合;版本已停止维护(EOL)或长期未更新判部分符合/不符合。
  • 取证要求:cat /etc/redhat-release、hostnamectl 输出截图或文本留存,补丁更新来源与周期的访谈纪要。

网络配置核查

ip addr
  • 预期现象:应能看到网卡、IP 地址、掩码等信息;实际地址随主机而异。
示例输出(节选)
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 192.168.10.21/24 brd 192.168.10.255 scope global noprefixroute eth0
  • 对应控制点:GB/T 22239-2019 8.1.2 安全通信网络-网络架构(确认主机网络接入位置与地址信息),并为 8.1.3.2 安全区域边界-访问控制提供地址边界基础。
  • 判定要点:地址信息与网络拓扑、资产台账一致且无多余地址或多余网卡判符合;地址与边界访问控制策略不匹配判部分符合。
  • 取证要求:ip addr 输出截图,与网络拓扑/资产台账的对应关系说明。

账户与口令策略核查

cat /etc/passwd
  • 预期现象:应列出本地账户信息,每行一个账户。
示例输出(节选)
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...
appuser:x:1000:1000::/home/appuser:/bin/bash
cat /etc/shadow
  • 预期现象:应列出口令散列和口令状态,通常需要 root 权限。
示例输出(节选)
root:$6$rounds=4096$AbCdEf$XyZ1234567890abcdef…:19876:7:90:7:30:::
bin:*:17832:0:99999:7:::
...
appuser:$6$rounds=4096$GhIjKl$0987654321fedcba…:19876:0:90:7:30:::
cat /etc/login.defs
  • 预期现象:应能看到 PASS_MAX_DAYS、PASS_MIN_DAYS、PASS_MIN_LEN 等口令老化字段。
示例输出(节选)
PASS_MAX_DAYS	90
PASS_MIN_DAYS	7
PASS_MIN_LEN	12
PASS_WARN_AGE	14
  • 注意:login.defs(5) 明确 PASS_MAX_DAYS、PASS_MIN_DAYS、PASS_WARN_AGE 仅在创建账户时生效,存量账户以 chage -l 实际值为准;PASS_MIN_LEN 在 PAM 环境下已由 pam_pwquality 的 minlen 取代、不再实际生效,易误判为复杂度未配置。
cat /etc/pam.d/system-auth
  • 预期现象:应能看到口令复杂度或认证模块配置,如 pam_pwquality、pam_unix 等。
示例输出(节选)
auth        required      pam_faillock.so preauth audit silent deny=5 unlock_time=600
...
password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
...
cat /etc/pam.d/password-auth
  • 预期现象:应能看到登录认证与失败处理相关模块,如 faillock 或等效配置。
示例输出(节选)
auth        required      pam_faillock.so preauth audit silent deny=5 unlock_time=600
...
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
...
session     required      pam_loginuid.so
cat /etc/security/pwquality.conf
  • 预期现象:应能看到 minlen、ucredit、lcredit、dcredit 等复杂度参数。
示例输出(节选)
minlen = 12
dcredit = -1
ucredit = -1
lcredit = -1
ocredit = -1
maxrepeat = 3
chage -l root
  • 预期现象:应显示最近改密时间、失效时间、最短/最长口令使用期限等。
示例输出(节选)
最近一次密码修改时间:3月 15, 2026
密码过期时间:6月 13, 2026
密码失效时间:从不
...
最少数量的天数:密码修改之间间隔的天数:7
最多数量的天数:密码修改之间间隔的最大天数:90
  • 对应控制点:GB/T 22239-2019 8.1.4.1 安全计算环境-身份鉴别(a 口令复杂度与定期更换、b 登录失败处理)。
  • 判定要点:口令长度/复杂度/有效期策略已配置且实际生效(chage 与 shadow 值一致)、登录失败锁定有效、无空口令账户判符合;仅配置未实际生效判部分符合;存在空口令或完全无失败处理判不符合。
  • 取证要求:/etc/login.defs、/etc/security/pwquality.conf 与 PAM 配置导出,chage -l 输出截图,口令策略访谈纪要。
  • 高风险提示:存在空口令、弱口令、通用口令或口令长期不更换属高风险情形,参见 22、高风险判定指引与加固对照表。

远程接入控制核查

cat /etc/ssh/sshd_config
  • 预期现象:应能核查 PermitRootLogin、PermitEmptyPasswords、ClientAliveInterval 等参数。
示例输出(节选)
PermitRootLogin no
PermitEmptyPasswords no
MaxAuthTries 4
ClientAliveInterval 300
ClientAliveCountMax 2
AllowUsers appuser opsadmin
...
sshd -T | egrep 'ciphers|macs|kexalgorithms|hostkeyalgorithms|pubkeyaccepted(keytypes|algorithms)'
  • 预期现象:应输出 SSH 服务端当前生效的加密算法、MAC、密钥交换和主机密钥算法。
  • 注意:sshd -T 需 root 执行(需读取主机私钥);OpenSSH 7.4(RHEL/CentOS 7 默认版本)输出关键字为 pubkeyacceptedkeytypes,8.5 起才更名为 pubkeyacceptedalgorithms,故用 egrep 同时匹配两种写法;7.4 不支持以 rsa-sha2-* 作为主机密钥算法名。
示例输出(节选)
ciphers aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
macs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com
kexalgorithms curve25519-sha256@libssh.org,diffie-hellman-group14-sha256
hostkeyalgorithms ecdsa-sha2-nistp256,ssh-ed25519,ssh-rsa
pubkeyacceptedkeytypes ecdsa-sha2-nistp256,ssh-ed25519,ssh-rsa
(节选;实际取值随 crypto-policies 策略与 OpenSSH 版本而异)
ssh -Q cipher
  • 预期现象:应列出本机 OpenSSH 支持的对称加密算法。
示例输出(节选)
aes128-cbc
aes128-ctr
aes192-ctr
aes256-ctr
...
aes128-gcm@openssh.com
aes256-gcm@openssh.com
ssh -Q mac
  • 预期现象:应列出本机 OpenSSH 支持的 MAC 算法。
示例输出(节选)
hmac-sha1
hmac-sha2-256
hmac-sha2-512
...
hmac-sha2-256-etm@openssh.com
hmac-sha2-512-etm@openssh.com
ssh -Q kex
  • 预期现象:应列出本机 OpenSSH 支持的密钥交换算法。
示例输出(节选)
diffie-hellman-group14-sha1
diffie-hellman-group14-sha256
diffie-hellman-group16-sha512
curve25519-sha256
curve25519-sha256@libssh.org
ssh -Q key
  • 预期现象:应列出本机 OpenSSH 支持的主机密钥/公钥算法。
示例输出(节选)
ssh-ed25519
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ssh-rsa
rsa-sha2-256
rsa-sha2-512
ssh -V
  • 预期现象:应输出 OpenSSH 版本号。
示例输出(节选)
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
update-crypto-policies --show
  • 预期现象:在支持该机制的系统中应显示系统级密码策略,如 DEFAULT、FUTURE、FIPS;crypto-policies 自 RHEL 7.4 引入,更早版本无此命令。
示例输出(节选)
DEFAULT
ps -ef | grep sshd
  • 预期现象:启用 SSH 时通常可见 sshd 进程。
示例输出(节选)
root       1123      1  0  2025 ?        00:01:23 /usr/sbin/sshd -D
root     456789  123456  0 10:02 ?        00:00:00 sshd: appuser [priv]
appuser  456791  456789  0 10:02 ?        00:00:00 sshd: appuser@pts/0
ps -ef | grep telnet
  • 预期现象:未启用 Telnet 时通常除 grep 本身外无有效结果。
示例输出(节选)
root     567890  456789  0 10:03 pts/0    00:00:00 grep --color=auto telnet
systemctl status telnet.socket
  • 预期现象:应显示 active、inactive、disabled 等状态之一。
示例输出(节选)
● telnet.socket
   Loaded: loaded (/usr/lib/systemd/system/telnet.socket; disabled; vendor preset: disabled)
   Active: inactive (dead)
   Listen: [::]:23 (Stream)
cat /etc/profile
  • 预期现象:应能核查 TMOUT 等登录超时参数。
示例输出(节选)
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002
else
    umask 022
fi
export TMOUT=600
readonly TMOUT
  • 对应控制点:GB/T 22239-2019 8.1.4.1 安全计算环境-身份鉴别(c 远程管理通道加密防窃听)、8.1.4.2 访问控制(登录账户与来源范围限制)。
  • 判定要点:仅启用 SSH(未启用 telnet/rsh 等明文协议)、root 不能直接口令登录、算法无弱项、会话超时已配置判符合;存在 telnet 等明文远程通道判不符合;算法含弱项或未配置超时判部分符合。
  • 取证要求:sshd_config 关键项与 sshd -T 输出截图,telnet 进程/套接字检查结果,/etc/profile TMOUT 配置,远程运维方式访谈纪要。
  • 高风险提示:使用 telnet 等明文协议远程管理属高风险情形,参见 22、高风险判定指引与加固对照表。

安全审计核查

service rsyslog status
  • 预期现象:应显示日志服务运行状态,常见为 running 或 active。
示例输出(节选)
Redirecting to /bin/systemctl status rsyslog.service
● rsyslog.service - System Logging Service
   Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2026-08-24 08:30:11 CST; 2h 15min ago
 Main PID: 1088 (rsyslogd)
service auditd status
  • 预期现象:应显示审计服务运行状态,常见为 running 或 active。
示例输出(节选)
Redirecting to /bin/systemctl status auditd.service
● auditd.service - Security Auditing Service
   Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2026-08-24 08:30:10 CST; 2h 15min ago
auditctl -l
  • 预期现象:启用审计规则时应逐条输出规则;未配置时可能为空。
  • 注意:auditctl 需 root 权限执行。
示例输出(节选)
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
-a always,exit -F arch=b64 -S execve -k exec_monitor
cat /etc/audit/rules.d/audit.rules
  • 预期现象:应看到审计规则文件内容。
示例输出(节选)
## First rule - delete all
-D
...
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
-a always,exit -F arch=b64 -S execve -k exec_monitor
-e 2
cat /etc/rsyslog.conf
  • 预期现象:应看到本地日志规则和远程转发配置。
示例输出(节选)
#### RULES ####
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
authpriv.*                                              /var/log/secure
...
# 远程转发示例(如已配置)
*.* @@192.168.20.10:514
ls -l /var/log/messages
  • 预期现象:应显示文件权限、属主、属组、大小、时间。
示例输出(节选)
-rw-------. 1 root root 1048576 Aug 24 10:20 /var/log/messages
ls -l /var/log/secure
  • 预期现象:应显示安全日志文件权限信息。
示例输出(节选)
-rw-------. 1 root root 262144 Aug 24 09:58 /var/log/secure
ls -l /var/log/audit/audit.log
  • 预期现象:应显示审计日志文件权限信息。
示例输出(节选)
-rw-------. 1 root root 2097152 Aug 24 10:22 /var/log/audit/audit.log
tail -n 20 /var/log/messages
  • 预期现象:应输出最近 20 条系统日志。
示例输出(节选)
Aug 24 10:18:02 web01 systemd: Started Session 342 of user root.
Aug 24 10:18:35 web01 kernel: TCP: request_sock_TCP: Possible SYN flooding on port 80. Sending cookies.
...
Aug 24 10:22:41 web01 rsyslogd: [origin software="rsyslogd" swVersion="8.24.0-57.el7"] exit on signal 2.
tail -n 20 /var/log/audit/audit.log
  • 预期现象:应输出最近 20 条审计日志。
示例输出(节选)
type=USER_AUTH msg=audit(1771893601.231:8812): pid=456789 uid=0 auid=1000 msg='op=PAM:authentication acct="appuser" exe="/usr/sbin/sshd" hostname=203.0.113.50 addr=203.0.113.50 terminal=ssh res=success'
type=CRED_ACQ msg=audit(1771893601.240:8813): pid=456789 uid=0 auid=1000 msg='op=PAM:setcred acct="appuser" exe="/usr/sbin/sshd" hostname=? addr=? terminal=ssh res=success'
...
last
  • 预期现象:应显示成功登录记录。
示例输出(节选)
opsadmin pts/0        203.0.113.50     Mon Aug 24 10:02   still logged in
root     pts/1        192.168.10.5     Sun Aug 23 17:44 - 19:02  (01:17)
reboot   system boot  3.10.0-1160.el7. Mon Aug 24 08:29 - 10:25  (01:55)
...
wtmp begins Tue Jan  6 09:00:01 2026
lastb
  • 预期现象:应显示失败登录记录;部分主机可能需要 root 权限。
示例输出(节选)
root     ssh:notty    203.0.113.77     Mon Aug 24 04:12 - 04:12  (00:00)
root     ssh:notty    203.0.113.77     Mon Aug 24 04:11 - 04:11  (00:00)
admin    ssh:notty    198.51.100.9     Sun Aug 23 22:40 - 22:40  (00:00)

btmp begins Fri Jul 31 00:01:02 2026
  • 对应控制点:GB/T 22239-2019 8.1.4.3 安全计算环境-安全审计(a 审计覆盖每个用户、b 记录要素完整、c 记录保护与定期备份、d 审计进程保护);日志外发集中存储对应 8.1.5.4 安全管理中心-集中管控(审计数据收集汇总,留存时间符合法律法规要求)。
  • 判定要点:rsyslog 与 auditd 均启用、审计覆盖登录授权与重要操作、日志权限仅 root 可读并有定期备份或外发集中存储判符合;仅启用其一或未落实留存/备份判部分符合;审计功能未开启判不符合。
  • 取证要求:服务状态、auditctl -l、/etc/audit/rules.d/audit.rules、/etc/rsyslog.conf 导出,日志文件权限与内容截图,日志留存时间(不少于 6 个月)与外发配置访谈纪要。
  • 高风险提示:主机无安全审计记录、日志被关闭或清空、未按要求留存属高风险情形,参见 22、高风险判定指引与加固对照表。

访问控制与地址限制核查

ls -l /etc/passwd
  • 预期现象:应显示关键文件权限。
示例输出(节选)
-rw-r--r--. 1 root root 1024 Aug  3  2025 /etc/passwd
ls -l /etc/shadow
  • 预期现象:应显示关键文件权限。
示例输出(节选)
----------. 1 root root  896 Aug  3  2025 /etc/shadow
(常见亦为 -rw-r----- 或 400,以现场为准)
ls -l /etc/group
  • 预期现象:应显示关键文件权限。
示例输出(节选)
-rw-r--r--. 1 root root 512 Aug  3  2025 /etc/group
cat /etc/hosts.allow
  • 预期现象:应看到允许地址配置;未配置时可能为空。
示例输出(节选)
# 示例:仅允许运维网段访问 sshd
sshd: 192.168.10.0/255.255.255.0
cat /etc/hosts.deny
  • 预期现象:应看到拒绝地址配置;部分基线常见 ALL,但应以现场为准。
示例输出(节选)
sshd: ALL
  • 注意:tcp_wrappers(hosts.allow/hosts.deny)在 RHEL 7 已标记废弃(RHEL 8 起移除);EL7 自带的 sshd 仍支持 libwrap,但升级后该机制失效,来源限制应迁移到 firewalld 或 sshd_config 的 AllowUsers/Match Address 等配置。

  • 对应控制点:GB/T 22239-2019 8.1.4.2 安全计算环境-访问控制(账户与关键文件权限最小化、权限分离);hosts.allow/hosts.deny 地址限制就近对应 8.1.3.2 安全区域边界-访问控制。

  • 判定要点:关键账号文件属主为 root 且权限最小化(/etc/shadow 无全局可读)、地址限制策略与业务访问需求一致判符合;/etc/shadow 全局可读写或限制策略与业务矛盾判部分符合/不符合。

  • 取证要求:关键文件 ls -l 权限输出、hosts.allow/hosts.deny 配置导出截图,账号文件权限整改记录。

服务、端口与边界防护核查

systemctl list-units --type service --all | grep running
  • 预期现象:应列出当前运行中的服务。
示例输出(节选)
auditd.service                                loaded active running   Security Auditing Service
crond.service                                 loaded active running   Command Scheduler
firewalld.service                             loaded active running   firewalld - dynamic firewall daemon
rsyslog.service                               loaded active running   System Logging Service
sshd.service                                  loaded active running   OpenSSH server daemon
chkconfig --list
  • 预期现象:应列出开机启动项;旧版系统更常见。
  • 注意:systemd 环境下开机自启建议用 systemctl list-unit-files --type=service --state=enabled 查看;chkconfig –list 仅覆盖 SysV 服务与兼容项。
示例输出(节选)
Note: This output shows SysV services only. ...
netconsole     	0:off	1:off	2:off	3:off	4:off	5:off	6:off
network        	0:off	1:off	2:on	3:on	4:on	5:on	6:off
netstat -ntlp
  • 预期现象:应显示监听端口、本地地址、PID/程序名等信息。
  • 注意:netstat 来自 net-tools 套件,RHEL 7 中已标记废弃且不再维护,官方推荐以 ss/ip 替代,等价命令为 ss -ntlp(man7 ss(8))。
示例输出(节选)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1123/sshd
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      2101/mysqld
tcp6       0      0 :::80                   :::*                    LISTEN      2205/nginx: master
systemctl status firewalld
  • 预期现象:应显示 firewalld 当前状态,如 active 或 inactive。
示例输出(节选)
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2026-08-24 08:30:12 CST; 2h ago
firewall-cmd --list-all
  • 预期现象:应显示 zone、services、ports、rich rules 等规则信息。
示例输出(节选)
public (active)
  target: default
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh
  ports: 80/tcp 443/tcp
  protocols:
  masquerade: no
  forward-ports:
  rich rules:
iptables -nvL
  • 预期现象:应按链输出规则、计数器和匹配条件。
示例输出(节选)
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
 120K   12M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
  350 24560 ACCEPT     tcp  --  *      *       192.168.10.0/24      0.0.0.0/0           tcp dpt:22
...
Chain OUTPUT (policy ACCEPT 98765 packets, 45M bytes)
  • 对应控制点:GB/T 22239-2019 8.1.4.4 安全计算环境-入侵防范(关闭不需要的系统服务和高危端口);firewalld/iptables 策略就近对应 8.1.3.2 安全区域边界-访问控制(按最小化原则放行)。
  • 判定要点:无多余服务与高危端口、主机防火墙策略与业务一致且非全通判符合;存在多余高危端口或防火墙空规则全通判部分符合;管理端口对全网无条件开放判不符合。
  • 取证要求:运行服务与监听端口清单(netstat/ss 输出)、firewall-cmd –list-all 或 iptables -nvL 导出截图,多余服务/端口的处置记录。

最小安装、补丁与中间件核查

rpm -aq
  • 预期现象:应按行列出已安装软件包。
示例输出(节选)
kernel-3.10.0-1160.el7.x86_64
openssh-server-7.4p1-21.el7.x86_64
...
nginx-1.20.1-9.el7.x86_64
(实际输出按字母序逐行列出全部已安装包,通常上千行)
yum list installed
  • 预期现象:应列出已安装软件清单,通常包含包名、版本、仓库信息。
示例输出(节选)
Loaded plugins: fastestmirror, langpacks
Installed Packages
NetworkManager.x86_64              1:1.18.8-2.el7             @anaconda
OpenIPMI-modalias.x86_64           2.0.27-1.el7               @base
...
zlib.x86_64                        1.2.7-20.el7_9             @updates
rpm -qa | grep patch
  • 预期现象:如存在相关命名规则,通常会筛出补丁相关包。
示例输出(节选)
patch-2.7.1-12.el7_7.x86_64
rpm -qi samba
  • 预期现象:安装 Samba 时应显示 Name、Version、Release、Summary 等字段。
示例输出(节选)
Name        : samba
Version     : 4.10.16
Release     : 25.el7_9
Architecture: x86_64
Install Date: Sat 06 Jun 2026 09:12:33 AM CST
...
Summary     : Server and Client software to interoperate with Windows machines
ps -ef | grep 'nginx\|apache\|tomcat\|redis-server\|mongod\|postgresql\|mysql\|mariadb\|memcached\|mongodb-server\|rabbitmq-server\|weblogic'
  • 预期现象:存在对应中间件时应显示相关进程。
示例输出(节选)
root       2205      1  0  2025 ?        00:02:11 nginx: master process /usr/sbin/nginx
nginx      2206   2205  0  2025 ?        00:05:43 nginx: worker process
mysql      2101      1  0  2025 ?        00:30:12 /usr/libexec/mysqld --basedir=/usr
root     567890  456789  0 10:05 pts/0    00:00:00 grep --color=auto nginx|apache|tomcat|...
  • 对应控制点:GB/T 22239-2019 8.1.4.4 安全计算环境-入侵防范(a 最小安装、b 及时修补漏洞)。
  • 判定要点:仅安装业务必需组件、有可用更新源且近期有补丁更新记录判符合;安装大量非业务组件或长期未修补判部分符合/不符合。
  • 取证要求:rpm -qa、yum list installed 清单导出,补丁更新记录(yum history、更新日志),中间件版本与资产台账核对记录。

时钟与计划任务核查

netstat -tlunp | grep ntp
  • 预期现象:启用 NTP 服务时通常可见 123 端口监听;如无时钟服务可不执行。
  • 注意:RHEL 7 默认时钟服务为 chrony,chronyd 同样监听 123/UDP 但进程名不含 ntp,grep ntp 会漏检;chrony 可用 chronyc sources -v、chronyc tracking 核查,端口可用 ss -ulnp | grep ':123 ' 查看(netstat 等价 ss -tlunp)。
示例输出(节选)
udp        0      0 192.168.10.21:123       0.0.0.0:*                           1305/ntpd
udp        0      0 127.0.0.1:123           0.0.0.*:*                           1305/ntpd
ntpq -p
  • 预期现象:应显示上级时钟源与对时状态;如无 NTP 服务可不执行。
示例输出(节选)
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*203.0.113.100   .GPS.            1 u   32   64  377    0.512   -0.102   0.021
+192.168.20.10   203.0.113.100    2 u   45   64  377    0.301   -0.055   0.013
timedatectl status
  • 预期现象:应显示本地时间、时区、NTP 同步状态等信息。
示例输出(节选)
      Local time: Mon 2026-08-24 10:28:33 CST
  Universal time: Mon 2026-08-24 02:28:33 UTC
        RTC time: Mon 2026-08-24 02:28:32
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
crontab -l
  • 预期现象:应显示当前用户计划任务;无任务时可能提示 no crontab。
示例输出(节选)
*/5 * * * * /usr/bin/curl -s http://192.168.10.30/healthcheck > /dev/null
0 2 * * * /opt/scripts/log_clean.sh >> /var/log/log_clean.log 2>&1
groups 用户名
  • 预期现象:应显示该用户所属组列表。
示例输出(节选)
appuser : appuser wheel docker
  • 对应控制点:GB/T 22239-2019 8.1.4.3 安全计算环境-安全审计(审计记录时间准确性依赖统一时钟;时钟同步运维要求见 8.1.10 安全运维管理:保证各设备时钟一致);crontab 与用户组核查就近对应 8.1.4.2 访问控制(授权主体与权限最小化)。
  • 判定要点:已配置统一时钟源且同步状态正常、计划任务均为授权业务且执行账户权限合理判符合;时钟长期不同步或存在来历不明的计划任务判部分符合/不符合。
  • 取证要求:ntpq -p 或 chronyc sources -v 输出、timedatectl status 截图,crontab -l 及 root 计划任务清单(/var/spool/cron、/etc/cron.*),时钟源约定与运维说明。

入侵防范核查

grep -E '^(MaxAuthTries|LoginGraceTime|PermitRootLogin|AllowUsers|DenyUsers|AllowGroups|DenyGroups)' /etc/ssh/sshd_config
  • 预期现象:应能看到 SSH 暴力破解防护与访问控制相关参数。
示例输出(节选)
PermitRootLogin no
MaxAuthTries 4
LoginGraceTime 30
AllowUsers appuser opsadmin
sshd -T | egrep 'maxauthtries|logingracetime|permitrootlogin|allowusers|denyusers|allowgroups|denygroups'
  • 预期现象:应输出 SSH 服务端当前生效的对应参数值。
示例输出(节选)
allowgroups none
allowusers appuser opsadmin
denygroups none
denyusers none
logingracetime 30
maxauthtries 4
permitrootlogin no
rpm -qa | egrep -i 'fail2ban|aide|ossec|wazuh|snort|suricata'
  • 预期现象:若部署入侵防范/主机入侵检测软件,应出现对应包名;未部署则无输出。
示例输出(节选)
fail2ban-firewall-0.11.2-1.el7.noarch
fail2ban-sendmail-0.11.2-1.el7.noarch
fail2ban-server-0.11.2-1.el7.noarch
systemctl status fail2ban
  • 预期现象:安装并启用 fail2ban 时应显示 active/running;未安装时可能提示服务不存在。
示例输出(节选)
● fail2ban.service - Fail2Ban Service
   Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2026-08-24 08:30:20 CST; 2h ago
 Main PID: 1420 (fail2ban-server)
  • 对应控制点:GB/T 22239-2019 8.1.4.4 安全计算环境-入侵防范(c 发现已知漏洞并及时修补、d 检测重要节点入侵行为并在严重入侵事件时报警)。
  • 判定要点:SSH 暴力破解防护参数收紧且部署 fail2ban 或等效检测/阻断机制并实际运行判符合;仅收紧参数未部署入侵检测手段判部分符合;两者皆无判不符合。
  • 取证要求:sshd -T 输出、fail2ban 状态与 jail 配置截图,入侵告警与处置流程访谈纪要。

安全基线与完整性核查

cat /etc/issue
  • 预期现象:应显示登录前系统标识或告警提示(如已配置)。
示例输出(节选)
Authorized users only. All activity may be monitored and reported.
CentOS Linux release 7.9.2009 (Core)
Kernel \r on an \m
cat /etc/issue.net
  • 预期现象:应显示远程登录告警提示(如已配置)。
示例输出(节选)
Authorized access only. Unauthorized use is prohibited.
CentOS Linux release 7.9.2009 (Core)
cat /etc/motd
  • 预期现象:应显示登录后提示或告警内容(如已配置)。
示例输出(节选)
*** 本系统仅限授权人员使用,操作行为将被审计记录。 ***
*** For authorized personnel only. Activities are audited. ***
awk -F: '($2=="") {print $1}' /etc/shadow
  • 预期现象:若存在空口令账户应输出账号名;无空口令时无输出。
示例输出(节选)
(无空口令账户时无输出;存在时应仅输出账号名,例如)
svcbackup
rpm -Va
  • 预期现象:如存在被篡改文件,通常会输出校验不一致项;无异常时无输出或输出很少。
示例输出(节选)
missing     /usr/libexec/abrt-hook-ccpp
S.5....T.  c /etc/ssh/sshd_config
.M.......    /usr/local/bin/custom-tool
(无篡改时通常无输出或仅有少量预期变更项)
aide --check
  • 预期现象:已安装并初始化 AIDE 时应输出完整性检查结果;未安装时可能提示命令不存在。
示例输出(节选)
AIDE found differences between database and filesystem!!
added: /root/.bash_history.new
removed: /tmp/old.lock
changed: /etc/passwd
...
File: /etc/passwd
 Size: 1024 -> 1032
  • 对应控制点:GB/T 22239-2019 8.1.4.1 安全计算环境-身份鉴别(空口令检查与登录告警提示);rpm -Va、aide –check 完整性校验就近对应 8.1.4.6 可信验证(对重要程序与配置参数进行完整性校验的佐证)与 8.1.4.4 入侵防范(检测重要节点入侵)。
  • 判定要点:无空口令账户、登录告警提示齐全、具备 AIDE 或等效完整性校验手段并定期执行判符合;无完整性校验手段判部分符合;存在空口令账户判不符合。
  • 取证要求:/etc/issue、/etc/issue.net、/etc/motd 内容截图,空口令检查输出,aide –check 或 rpm -Va 输出与校验周期说明。
  • 高风险提示:空口令、弱口令账户属高风险情形,参见 22、高风险判定指引与加固对照表。

参考依据

  • GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》8.1.4 安全计算环境(国家标准全文公开系统)
  • GB/T 28448-2019《信息安全技术 网络安全等级保护测评要求》(国家标准全文公开系统)
  • Red Hat Enterprise Linux 7《Security Guide》(目录);4.1.2 Account Locking(pam_faillock,第 4 章);第 7 章 System Auditing(auditd/auditctl,链接)
  • Red Hat Enterprise Linux 7《System Administrator’s Guide》第 18 章 Configuring NTP Using the chrony Suite(链接)
  • OpenSSH sshd_config(5) 手册页(man.openbsd.org)
  • OpenSSH 7.4 Release Notes(openssh.org,curve25519-sha256 别名、group14-sha256 等算法适用性)
  • ss(8) 手册页(man7.org,netstat 替代依据)
  • shadow(5)、login.defs(5) 手册页(shadow(5)、login.defs(5))
  • firewalld 官方文档(firewalld.org)
  • CIS CentOS Linux 7 Benchmark(CIS 官网现行列表已归档 EL7 基线,CIS Benchmarks)
  • 《网络安全等级保护测评高风险判定指引》(T/ISEAA 001-2020,中关村信息安全测评联盟团体标准,全国团体标准信息平台)
  • 命令核验说明:本文命令已于 2026-09 对照上述官方文档核验;个别无法在线核验的命令已按 man 手册核对,现场以实际系统版本为准。

关联文章