Ubuntu_Debian-三级等保现场测评命令单
Categories:
7 分钟阅读
示例版本: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