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

示例版本:RHEL 7.9 / CentOS 7.9

系统版本核查

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

网络配置核查

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

账户与口令策略核查

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…::0:99999:7:::
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
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

远程接入控制核查

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|pubkeyacceptedalgorithms'
  • 预期现象:应输出 SSH 服务端当前生效的加密算法、MAC、密钥交换和主机密钥算法。
示例输出(节选)
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,diffie-hellman-group14-sha256
hostkeyalgorithms rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256
pubkeyacceptedalgorithms rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256
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;旧版系统可能无此命令。
示例输出(节选)
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

安全审计核查

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
  • 预期现象:启用审计规则时应逐条输出规则;未配置时可能为空。
示例输出(节选)
-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

访问控制与地址限制核查

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

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

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
  • 预期现象:应列出开机启动项;旧版系统更常见。
示例输出(节选)
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/程序名等信息。
示例输出(节选)
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)

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

rpm -aq
  • 预期现象:应按行列出已安装软件包。
示例输出(节选)
kernel-3.10.0-1160.el7.x86_64
openssh-server-8.8p1-1.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|...

时钟与计划任务核查

netstat -tlunp | grep ntp
  • 预期现象:启用 NTP 服务时通常可见 123 端口监听;如无时钟服务可不执行。
示例输出(节选)
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

入侵防范核查

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)

安全基线与完整性核查

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