Ubuntu_Debian-三级现场测评命令单

Ubuntu 22.04 LTS(Jammy Jellyfish)与 Debian 系服务器三级等保现场测评取证命令单:lsb_release -a、/proc/version 与 ip addr 版本与网络核查,/etc/passwd、/etc/shadow、/etc/login.defs、/etc/pam.d/common-password、/etc/pam.d/common-auth 与 /etc/pam.d/login 账户口令策略核查,sshd_config、sshd -T 的 ciphers/macs/kexalgorithms 与 ssh -Q cipher 远程连接协议与算法核查,以及安全审计、访问控制与服务、最小安装补丁与中间件、时钟同步与计划任务、入侵防范、安全基线与完整性核查。

示例版本:Ubuntu 22.04 LTS(Jammy Jellyfish) 定位:三级等保现场测评取证命令单,按功能小节组织核查命令、预期现象与判定要点。 现场提示:以下命令以只读核查为主,涉及服务状态、审计、防火墙等命令需 root 权限(sudo);修改类操作须先评估业务影响。

系统版本核查

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
  • 对应控制点:GB/T 22239-2019 8.1.4.4 a)、d)(确认系统版本与补丁基线,支撑最小安装与漏洞修补判定)。
  • 判定要点:系统版本明确且在安全维护期内(LTS 版本)为符合;版本已停止安全维护或无法确认时为部分符合。
  • 取证要求:留存 lsb_release 与内核版本输出截图,记录主机名、IP 及测评时间。

网络配置核查

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
  • 对应控制点:GB/T 22239-2019 8.1.4.4 c)(通过网络地址范围限制管理终端的地址信息核对)。
  • 判定要点:网卡地址与网络访问控制策略一致、无策略外多余地址/网卡为符合;发现与策略不符的地址时为部分符合。
  • 取证要求:留存 ip addr 输出截图,标注管理地址与业务地址。

账户与口令策略核查

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	required			pam_faildelay.so delay=3000000
auth	required			pam_faillock.so preauth audit silent deny=5 unlock_time=600
auth	[success=2 default=ignore]	pam_unix.so nullok
auth	requisite			pam_deny.so
auth	required			pam_faillock.so authfail audit silent deny=5 unlock_time=600
auth	sufficient			pam_faillock.so authsucc
...
# 注:Ubuntu 22.04(PAM 1.4.0)已移除 pam_tally2 模块(Ubuntu 20.04 及更早版本为 pam_tally2.so),
# 登录失败锁定应核查 pam_faillock;deny、unlock_time 等参数亦可统一配置于 /etc/security/faillock.conf。
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
  • 对应控制点:GB/T 22239-2019 8.1.4.1 a)、b)(身份标识唯一、口令复杂度与定期更换、登录失败处理与连接超时退出);8.1.4.2 b)、c)、d)(默认账户口令、多余/过期账户、最小权限)。
  • 判定要点:口令复杂度与有效期已生效、登录失败限制与 TMOUT 超时已配置、无空口令/共享/过期账户为符合;common-auth 中 pam_unix 带 nullok 参数(允许空口令账户认证)等情形应判部分符合并整改。
  • 取证要求:留存 /etc/passwd、/etc/shadow、login.defs、common-password、common-auth、sshd_config、/etc/profile 输出截图。

远程连接协议与算法核查

cat /etc/ssh/sshd_config
  • 预期现象:应能核查 root 远程登录、地址限制、超时以及算法配置项。
示例输出(节选)
PermitRootLogin no
MaxAuthTries 4
ClientAliveInterval 300
ClientAliveCountMax 2
AllowUsers appuser opsadmin
...
sshd -T | grep -E '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
  • 注:sshd -T 需 root 权限,输出为合并 /etc/ssh/sshd_config.d/*.conf(jammy 的 sshd_config 默认 Include 该目录)后的生效值;egrep 已被上游弃用,应改用 grep -E。
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
  • 对应控制点:GB/T 22239-2019 8.1.4.1 c)、d)(远程管理防鉴别信息窃听、通信过程保密性)。
  • 判定要点:仅启用 SSH 等加密协议、未启用 SSHv1 及 arcfour/3des/hmac-sha1 等弱算法为符合;以明文协议或弱算法承载远程管理为不符合。
  • 取证要求:留存 sshd -T 算法与参数输出、ssh -V 版本及 ssh -Q 支持列表截图。

安全审计核查

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
  • 对应控制点:GB/T 22239-2019 8.1.4.3 a)、b)、c)、d)(审计覆盖每个用户、记录要素完整、记录保护与定期备份、审计进程保护)。
  • 判定要点:rsyslog/auditd 正常运行且审计覆盖登录与重要操作、日志定期轮转并有集中转发(如 @@ 远程服务器)为符合;未启用任何审计功能为不符合。
  • 取证要求:留存服务状态、auditctl -l、rsyslog 配置与转发配置、logrotate 配置、last/lastb 输出截图。

访问控制与服务核查

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
  • 注:OpenSSH 自 6.7 起 sshd 已移除 TCP Wrappers/libwrap 支持,Ubuntu 22.04 中 /etc/hosts.allow、/etc/hosts.deny 对 sshd 不再生效;来源地址限制应以 sshd_config 的 AllowUsers/DenyUsers/Match Address 及 ufw 规则为准。
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      -
  • 注:Ubuntu 22.04 默认未安装 net-tools(netstat),可用 iproute2 的 ss -ntlp 等价核查监听端口与进程。
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
  • 注:ufw 需 root 权限,是 Linux netfilter 防火墙的管理前端,底层规则可用 iptables -L -n 或 nft list ruleset 复核;ufw limit 22/tcp 表示同一来源 IP 30 秒内超过 6 次连接即限流,可用于 SSH 防爆破。

  • 对应控制点:GB/T 22239-2019 8.1.4.2 a)、e)、f)(账户权限分配与访问控制策略);8.1.4.4 b)、c)(关闭不需要的服务与高危端口、终端接入方式限制)。

  • 判定要点:关键文件权限合理、仅开启必要服务与端口、防火墙启用且规则与访问控制策略一致、无 telnet 等明文服务为符合;发现 telnet/rsh 等明文远程服务运行即不符合。

  • 取证要求:留存关键文件权限、service –status-all、netstat/ss、ufw status 及 telnet 进程核查输出截图。

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

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...)
systemctl status unattended-upgrades
cat /etc/apt/apt.conf.d/20auto-upgrades
  • 预期现象:unattended-upgrades 服务处于 active (running),且 20auto-upgrades 中两项均为 “1”,表示已启用安全补丁自动更新。
示例输出(节选)
● unattended-upgrades.service - Unattended Upgrades Shutdown
     Loaded: loaded (/lib/systemd/system/unattended-upgrades.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2026-08-24 08:30:12 CST; 2h ago
...
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
  • 对应控制点:GB/T 22239-2019 8.1.4.4 a)、d)(最小安装、发现已知漏洞并及时修补)。
  • 判定要点:仅安装必要组件、无多余中间件,且补丁及时更新(自动更新启用或可升级项近期可补齐)为符合;长期不修补为部分符合或不符合。
  • 取证要求:留存 dpkg –list、apt list –upgradable、unattended-upgrades 状态与 20auto-upgrades 输出截图。

时钟同步与计划任务核查

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
  • 注:还应核查 /etc/crontab、/etc/cron.d/、/etc/cron.daily 等目录及 systemctl list-timers,避免遗漏系统级计划任务。
groups 用户名
  • 预期现象:应显示指定用户所属组列表。
示例输出(节选)
appuser : appuser sudo docker
  • 对应控制点:GB/T 22239-2019 8.1.4.3 b)(审计记录时间准确性依赖全系统统一时钟);计划任务与账户属组核查对应 8.1.4.2 a)、d)。
  • 判定要点:NTP 同步状态为 yes、时区正确为符合;时钟未同步为部分符合;发现非授权计划任务时应结合入侵防范条款判定。
  • 取证要求:留存 timedatectl 输出及 NTP 源配置(/etc/systemd/timesyncd.conf 或 chrony 配置)、计划任务清单截图。

入侵防范核查

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 | grep -E '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 | grep -Ei '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)
  • 对应控制点:GB/T 22239-2019 8.1.4.4 b)、c)、e)(服务/端口收敛、终端接入限制、入侵行为检测与报警)。
  • 判定要点:SSH 防爆破参数生效且部署 fail2ban/AIDE 等检测措施、能对入侵行为告警为符合;无任何入侵检测与防护措施为部分符合。
  • 取证要求:留存 sshd -T 参数输出、fail2ban 状态与封禁规则(fail2ban-client status sshd)、入侵检测软件清单截图。

安全基线与完整性核查

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
  • 注:AIDE 首次使用需先执行 aideinit 生成基线数据库,aide --check 才能比对;基线数据库应存放在安全位置并定期更新。

  • 对应控制点:GB/T 22239-2019 8.1.4.5 a)(恶意代码防范或主动免疫可信验证机制);空口令核查对应 8.1.4.1 a)。

  • 判定要点:无空口令账户、具备恶意代码防范措施(主机防病毒/EDR 或完整性校验机制)并定期执行为符合;仅有登录横幅而无任何防范/检测措施为部分符合。

  • 取证要求:留存 /etc/issue、/etc/issue.net、/etc/motd、空口令检查、debsums/AIDE 校验结果及防病毒软件运行截图。

参考依据

命令核验说明:本文命令已于 2026-09 对照上述官方文档核验,现场以实际系统版本为准。

关联文章