Ubuntu_Debian-三级等保现场测评命令单

示例版本:Ubuntu 22.04 LTS(Jammy Jellyfish)

系统版本核查

lsb_release -a
  • 预期现象:关键字段通常为 Description: Ubuntu 22.04 LTS、Release: 22.04、Codename: jammy。
示例输出(节选)
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.4 LTS
Release:	22.04
Codename:	jammy
cat /proc/version
  • 预期现象:应显示内核与编译信息。
示例输出(节选)
Linux version 5.15.0-91-generic (buildd@lcy02-amd64-021) (gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #102-Ubuntu SMP Thu Nov 16 14:41:53 UTC 2023

网络配置核查

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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 192.168.10.22/24 metric 100 brd 192.168.10.255 scope global ens33

账户与口令策略核查

cat /etc/passwd
  • 预期现象:应列出本地账户。
示例输出(节选)
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...
appuser:x:1000:1000::/home/appuser:/bin/bash
cat /etc/shadow
  • 预期现象:应列出口令散列和状态。
示例输出(节选)
root:$y$j9T$AbCdEf123456$XyZ0987654321abcdef…:19876:7:90:7:30:::
daemon:*:19375:0:99999:7:::
...
appuser:$y$j9T$GhIjKl654321$fedcba0987654321abcde…:19876:7:90:7:30:::
cat /etc/login.defs
  • 预期现象:应显示口令老化参数。
示例输出(节选)
PASS_MAX_DAYS	90
PASS_MIN_DAYS	7
PASS_WARN_AGE	14
...
UMASK		027
cat /etc/pam.d/common-password
  • 预期现象:应显示口令复杂度或密码模块配置。
示例输出(节选)
password	requisite			pam_pwquality.so retry=3
password	[success=1 default=ignore]	pam_unix.so obscure yescrypt
...
# 示例(启用复杂度后):
# password	requisite			pam_pwquality.so minlen=12 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
cat /etc/pam.d/common-auth
  • 预期现象:应显示认证与登录失败处理相关配置。
示例输出(节选)
auth	[success=2 default=ignore]	pam_faildelay.so delay=3000000
auth	[default=ignore]			pam_tally2.so deny=5 unlock_time=600
auth	required				pam_unix.so nullok
...
cat /etc/pam.d/login
  • 预期现象:应显示本地登录相关 PAM 配置。
示例输出(节选)
session    optional   pam_keyinit.so force revoke
auth       optional   pam_group.so
...
session    required   pam_env.so readenv=1 user_readenv=1
session    required   pam_limits.so
cat /etc/ssh/sshd_config
  • 预期现象:应能核查 root 远程登录、地址限制、超时等参数。
示例输出(节选)
PermitRootLogin no
MaxAuthTries 4
ClientAliveInterval 300
ClientAliveCountMax 2
AllowUsers appuser opsadmin
...
cat /etc/profile
  • 预期现象:应能核查 TMOUT 等登录超时参数。
示例输出(节选)
# ~/.profile: executed by Bourne-compatible login shells.
if [ "$BASH" ]; then
    if [ -f ~/.bashrc ]; then
        . ~/.bashrc
    fi
fi
mesg n 2> /dev/null || true
export TMOUT=600
readonly TMOUT

远程连接协议与算法核查

cat /etc/ssh/sshd_config
  • 预期现象:应能核查 root 远程登录、地址限制、超时以及算法配置项。
示例输出(节选)
PermitRootLogin no
MaxAuthTries 4
ClientAliveInterval 300
ClientAliveCountMax 2
AllowUsers appuser opsadmin
...
sshd -T | egrep 'ciphers|macs|kexalgorithms|hostkeyalgorithms|pubkeyacceptedalgorithms'
  • 预期现象:应输出 SSH 服务端当前生效的算法配置。
示例输出(节选)
ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
macs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com
kexalgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group16-sha512
hostkeyalgorithms rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519
pubkeyacceptedalgorithms rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519
ssh -Q cipher
  • 预期现象:应列出本机 OpenSSH 支持的对称加密算法。
示例输出(节选)
aes128-cbc
aes128-ctr
...
aes256-gcm@openssh.com
chacha20-poly1305@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-sha256
diffie-hellman-group16-sha512
diffie-hellman-group18-sha512
curve25519-sha256
curve25519-sha256@libssh.org
sntrup761x25519-sha512@openssh.com
ssh -Q key
  • 预期现象:应列出本机 OpenSSH 支持的主机密钥/公钥算法。
示例输出(节选)
ssh-ed25519
ecdsa-sha2-nistp256
...
rsa-sha2-512
sk-ssh-ed25519@openssh.com
ssh -V
  • 预期现象:应输出 OpenSSH 版本号。
示例输出(节选)
OpenSSH_8.9p1 Ubuntu-3ubuntu0.10, OpenSSL 3.0.2 15 Mar 2022

安全审计核查

service rsyslog status
  • 预期现象:应显示 rsyslog 状态。
示例输出(节选)
● rsyslog.service - System Logging Service
     Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2026-08-24 08:30:05 CST; 2h ago
       Docs: man:rsyslogd(8)
   Main PID: 945 (rsyslogd)
service auditd status
  • 预期现象:应显示 auditd 状态;部分系统可能未安装该服务。
示例输出(节选)
/lib/systemd/system/auditd.service 不存在或未安装时:
Unit auditd.service could not be found.
(安装 auditd 后)
● auditd.service - Security Auditing Service
     Loaded: loaded (/lib/systemd/system/auditd.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2026-08-24 08:30:06 CST; 2h 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/rsyslog.conf
  • 预期现象:应显示日志规则和转发配置。
示例输出(节选)
/############ RULES ###########/
*.*;auth,authpriv.none		-/var/log/syslog
auth,authpriv.*;			/var/log/auth.log
...
# 远程转发示例(如已配置)
*.* @@192.168.20.10:514
cat /etc/rsyslog.d/50-default.conf
  • 预期现象:该文件通常作为默认日志配置文件,内容中应包含常见 facility/priority 到日志文件的映射规则。
示例输出(节选)
auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog
cron.*                          /var/log/cron.log
daemon.*                        -/var/log/daemon.log
kern.*                          -/var/log/kern.log
...
cat /etc/logrotate.conf
  • 预期现象:应显示日志轮转与保留配置。
示例输出(节选)
weekly
rotate 4
create
include /etc/logrotate.d
...
/var/log/syslog
{
	rotate 7
	daily
	missingok
	notifempty
	delaycompress
	compress
	postrotate
		invoke-rc.d rsyslog rotate > /dev/null
	endscript
}
ls -l /var/log/syslog
  • 预期现象:应显示 syslog 文件权限和属主信息。
示例输出(节选)
-rw-r----- 1 syslog adm 1048576 Aug 24 10:20 /var/log/syslog
tail -n 20 /var/log/syslog
  • 预期现象:应输出最近 20 条 syslog 日志。
示例输出(节选)
Aug 24 10:18:02 demo-web01 systemd[1]: Started Session 342 of user appuser.
Aug 24 10:18:35 demo-web01 CRON[456700]: (root) CMD (/opt/scripts/log_clean.sh)
...
Aug 24 10:22:41 demo-web01 systemd[1]: logrotate.service: Deactivated successfully.
last
  • 预期现象:应显示成功登录记录。
示例输出(节选)
opsadmin pts/0        203.0.113.50     Mon Aug 24 10:02   still logged in
appuser  pts/1        192.168.10.5     Sun Aug 23 17:44 - 19:02  (01:17)
reboot   system boot  5.15.0-91-generi 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)
admin    ssh:notty    203.0.113.77     Mon Aug 24 04:11 - 04:11  (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
  • 预期现象:应显示关键文件权限。
示例输出(节选)
-rw-r----- 1 root shadow 896 Aug  3  2025 /etc/shadow
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
  • 预期现象:应显示拒绝地址规则;未配置时可能为空。
示例输出(节选)
sshd: ALL
netstat -ntlp
  • 预期现象:应显示监听端口与程序名。
示例输出(节选)
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
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      -
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      -
service --status-all
  • 预期现象:应显示全部服务状态,通常包含 +、-、? 等标记。
示例输出(节选)
 [ + ]  cron
 [ - ]  open-iscsi
 [ ? ]  alsa-utils
 [ + ]  ssh
 [ + ]  ufw
ps aux | grep ssh
  • 预期现象:启用 SSH 时通常应看到 ssh/sshd 相关进程。
示例输出(节选)
root         950  0.0  0.1  15432  8212 ?        Ss   08:30   0:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
appuser   456791  0.0  0.0   7368  4812 ?        S    10:02   0:00 sshd: appuser@pts/0
root     567890  0.0  0.0   6472  2200 pts/0    S+   10:05   0:00 grep --color=auto ssh
ps aux | grep telnet
  • 预期现象:未启用 Telnet 时通常无有效结果。
示例输出(节选)
appuser  567890  0.0  0.0   6472  2100 pts/0    S+   10:06   0:00 grep --color=auto telnet
ps aux | grep tomcat
  • 预期现象:运行 Tomcat 时应显示相关 Java 进程。
示例输出(节选)
tomcat   3105  1.2 12.4 3562000 248968 ?      Sl   08:31   1:52 /usr/bin/java ... org.apache.catalina.startup.Bootstrap start
appuser  567891  0.0  0.0   6472  2100 pts/0    S+   10:07   0:00 grep --color=auto tomcat
ps aux | grep nginx
  • 预期现象:运行 Nginx 时应显示 nginx master/worker 进程。
示例输出(节选)
root      2205  0.0  0.1  10244  5120 ?        Ss   08:31   0:00 nginx: master process nginx -g daemon on; master_process on;
www-data  2206  0.1  0.2  12288  8832 ?        S    08:31   0:03 nginx: worker process
appuser   567892  0.0  0.0   6472  2100 pts/0    S+   10:08   0:00 grep --color=auto nginx
ufw status
  • 预期现象:启用 UFW 时应显示 Status 以及允许/拒绝规则;未安装时可能提示命令不存在。
示例输出(节选)
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     LIMIT       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere

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

dpkg --list
  • 预期现象:表头通常包含 Desired、Status、Name、Version、Architecture、Description。
示例输出(节选)
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/
ii  adduser                       3.118ubuntu5        all          add and remove users and groups
...
ii  openssh-server                1:8.9p1-3ubuntu0.10 amd64        secure shell (SSH) server
dpkg -l | grep -i 'nginx\|apache\|tomcat\|redis-server\|mongod\|postgresql\|mysql\|mariadb\|memcached\|mongodb-server\|rabbitmq-server'
  • 预期现象:安装对应组件时应输出软件包名和版本。
示例输出(节选)
ii  nginx                         1.18.0-6ubuntu14.5  amd64        small, powerful, scalable web/proxy server
ii  redis-server                  5:6.0.16-1ubuntu1.3 amd64        persistent key-value database with network interface
apt list --installed
  • 预期现象:应显示已安装软件包清单;输出通常较长。
示例输出(节选)
Listing...
adduser/jammy,now 3.118ubuntu5 all [installed]
bash/jammy-updates,now 5.1-6ubuntu1.2 amd64 [installed]
curl/jammy-updates,now 7.81.0-1ubuntu1.19 amd64 [installed]
...
zstd/jammy,now 1.4.8+dfsg-3build1 amd64 [installed]
apt list --upgradable
  • 预期现象:存在待更新补丁时应显示可升级软件包;无待升级时通常为空。
示例输出(节选)
Listing...
openssh-client/jammy-security,jammy-updates 1:8.9p1-3ubuntu0.11 amd64 [upgradable from: 1:8.9p1-3ubuntu0.10]
openssh-server/jammy-security,jammy-updates 1:8.9p1-3ubuntu0.11 amd64 [upgradable from: 1:8.9p1-3ubuntu0.10]
(无待升级时仅输出 Listing...)

时钟同步与计划任务核查

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:33
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
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 sudo 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
dpkg -l | egrep -i 'fail2ban|aide|ossec|wazuh|snort|suricata'
  • 预期现象:若部署入侵防范/主机入侵检测软件,应出现对应包名;未部署则无输出。
示例输出(节选)
ii  fail2ban                      0.11.2-6ubuntu0.1  all          ban hosts that cause multiple authentication errors
systemctl status fail2ban
  • 预期现象:安装并启用 fail2ban 时应显示 active/running;未安装时可能提示服务不存在。
示例输出(节选)
● fail2ban.service - Fail2Ban Service
     Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
     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.
Ubuntu 22.04 LTS \n \l
cat /etc/issue.net
  • 预期现象:应显示远程登录告警提示(如已配置)。
示例输出(节选)
Authorized access only. Unauthorized use is prohibited.
Ubuntu 22.04 LTS
cat /etc/motd
  • 预期现象:应显示登录后提示或告警内容(如已配置)。
示例输出(节选)
*** 本系统仅限授权人员使用,操作行为将被审计记录。 ***
*** For authorized personnel only. Activities are audited. ***
awk -F: '($2=="") {print $1}' /etc/shadow
  • 预期现象:若存在空口令账户应输出账号名;无空口令时无输出。
示例输出(节选)
(无空口令账户时无输出;存在时应仅输出账号名,例如)
svcbackup
debsums -s
  • 预期现象:已安装 debsums 时会输出校验异常包;无异常时无输出。
示例输出(节选)
(无异常时无输出;存在校验异常时应输出被修改的包,例如)
debsums: changed file /usr/sbin/sshd (from openssh-server package)
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