当前位置:首页>Linux>等保测评命令——SUSE Linux Enterprise Server

等保测评命令——SUSE Linux Enterprise Server

  • 2026-09-11 00:02:21
等保测评命令——SUSE Linux Enterprise Server

依据 GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》等保2.0三级 标准,针对 SUSE Linux Enterprise Server (SLES) 操作系统给出可直接落地的测评命令清单。

覆盖身份鉴别、访问控制、安全审计、入侵防范、恶意代码防范、资源控制等核心控制点,已在 SLES 12 SP5 / SLES 15 SP3 环境验证通过。


一、身份鉴别(8.1.4.1)

1.1 用户身份唯一性与密码复杂度

测评命令
功能说明
SUSE特有说明
awk -F: '$2==""{print $1}' /etc/shadow
检查空口令账户
同通用Linux
awk -F: '{print $3}' /etc/passwd | sort | uniq -d
核查UID唯一性
系统账户UID通常为0-499,普通用户≥1000
grep -E 'PASS_MAX_DAYS|PASS_MIN_DAYS' /etc/login.defs
密码有效期
≤90天,≥1天
cat /etc/security/pwquality.conf密码复杂度策略SUSE特有路径
,非/etc/pam.d/system-auth

SLES特有配置:

# 查看SUSE默认密码复杂度配置
cat /etc/security/pwquality.conf

# 合规配置示例
minlen =8
minclass =4
dcredit =-1
ucredit =-1
lcredit =-1
ocredit =-1
maxrepeat =2
gecoscheck =1

1.2 登录失败处理与会话超时

测评命令
功能说明
达标判据
grep pam_tally2 /etc/pam.d/common-auth
登录失败锁定
deny=5,unlock_time=300
grep TMOUT /etc/profile
会话超时
TMOUT=600(秒)
grep -E 'ClientAliveInterval|ClientAliveCountMax' /etc/ssh/sshd_config
SSH超时
300秒无操作断开

1.3 远程管理安全(SSH配置)

# 检查SSH安全配置
grep-E'PermitRootLogin|Protocol' /etc/ssh/sshd_config

# 合规要求
PermitRootLogin no
Protocol 2
PasswordAuthentication no  # 建议启用密钥认证
PubkeyAuthentication yes

⚠️ 高风险项:使用Telnet或允许root远程登录,直接判定不符合三级要求。


1.4 双因子认证(高风险项)

测评方法:

  • 访谈确认:是否采用"口令+数字证书/Ukey"组合

  • 技术核查:

# 检查SSH公钥认证配置
grep"PubkeyAuthentication yes" /etc/ssh/sshd_config

# 检查PAM模块是否集成双因子
cat /etc/pam.d/sshd |grep-E"pam_pkcs11|pam_google_authenticator"

# SUSE特有:检查PAM配置文件结构
cat /etc/pam.d/common-auth |grep-E"pam_tally2|pam_faillock"

二、访问控制(8.1.4.2)

2.1 账户与权限管理

测评命令
功能说明
达标判据
stat -c '%a %n' /etc/passwd /etc/shadow
关键文件权限
644/000
grep -v '^#' /etc/sudoers | grep -v '^$'
sudo授权检查
最小权限原则
awk -F: '$3==0 && $1!="root"{print $1}' /etc/passwd
检查UID=0的非root账户
无输出

2.2 默认账户清理

# 确认默认账户禁用或删除
grep-E'adm|lp|sync|shutdown|halt|mail|news|uucp|operator|games|gopher' /etc/shadow

# 预期结果:第二列为!!(锁定)或*(禁用),或账户不存在

2.3 强制访问控制(AppArmor)

SUSE默认使用 AppArmor 替代SELinux:

# 检查AppArmor状态
aa-status

# 查看已加载的配置文件
aa-status |grep enforce

# 查看AppArmor日志
dmesg|grep-i apparmor
journalctl |grep-i apparmor

# 检查关键进程策略
ls /etc/apparmor.d/ |grep-E'sshd|mysql|nginx'

达标判据:关键进程应配置AppArmor策略并处于enforce模式。


三、安全审计(8.1.4.3)

3.1 审计服务启用与日志保护

测评命令
功能说明
SUSE特有说明
systemctl is-active auditd && systemctl is-enabled auditd
审计服务状态
服务名称为auditd
auditctl -l | wc -l
审计规则数量
规则文件位于/etc/audit/rules.d/
aureport -i | head -20
审计事件摘要
同通用Linux
stat -c '%a %U:%G' /var/log/audit/audit.log
日志权限
600 root:root

3.2 日志备份与防篡改

# 检查远程日志转发配置
grep-E'@\w+.*514' /etc/rsyslog.conf /etc/rsyslog.d/*.conf

# SUSE特有:检查syslog-ng配置(如使用syslog-ng替代rsyslog)
cat /etc/syslog-ng/syslog-ng.conf |grep-E'destination|log'

# 合规配置示例(rsyslog)
echo"*.info;mail.none;authpriv.none;cron.none @192.168.1.100:514">> /etc/rsyslog.conf
systemctl restart rsyslog

3.3 审计进程保护(高风险项)

测试方法:

# 使用非审计管理员账户执行,应失败
sudo-u testuser systemctl stop auditd
# 预期结果:Failed to stop auditd.service: Operation not permitted

# 检查auditd是否受systemd保护
systemctl show auditd |grep-i"refuse\|protect"

四、入侵防范(8.1.4.4)

4.1 最小化安装与漏洞修复

测评命令
功能说明
SUSE特有命令
zypper list-installed | wc -l
查看已安装软件包数量
zypper替代yum
zypper patch-check
检查可用补丁
SUSE特有
zypper list-patches
列出安全补丁
SUSE特有
systemctl list-unit-files --state=enabled | grep -vE 'ssh|audit|cron|rsyslog'
启用服务
仅业务所需

SUSE补丁管理:

# 检查补丁状态(详细)
zypper patch-check --with-optional

# 安装所有安全补丁
zypper patch --category security

# 查看已安装补丁历史
rpm-qa--last|grep patch

# 使用SUSE Manager(企业环境)
systemctl status salt-minion

4.2 端口与服务管控

测评命令
功能说明
达标判据
ss -tunlp | grep -E '0.0.0.0:23|0.0.0.0:111|0.0.0.0:513'
高危端口检查
无监听
firewall-cmd --list-rich-rules
firewalld规则
限制管理终端IP
cat /etc/hosts.allow /etc/hosts.deny
TCP Wrappers
hosts.deny包含ALL:ALL

SUSE防火墙配置:

# SUSE默认使用firewalld(SLES 15+)
sudo firewall-cmd --state
sudo firewall-cmd --list-all

# 或使用SuSEfirewall2(旧版本)
sudo systemctl status SuSEfirewall2
sudocat /etc/sysconfig/SuSEfirewall2 |grep FW_SERVICES_EXT_TCP

# 合规配置示例(firewalld)
sudo firewall-cmd --set-default-zone=drop
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.1.1.0/24" service name="ssh" accept'
sudo firewall-cmd --reload

五、恶意代码防范(8.1.4.5)

测评命令
功能说明
达标判据
systemctl is-active clamd && systemctl is-enabled clamd
ClamAV状态
active & enabled
freshclam --version
病毒库版本
24小时内更新
ps -ef | grep clamd
实时扫描进程
常驻内存

SUSE特有:

# 检查SUSE官方安全仓库
zypper repos |grep-E"security|update"

# 使用SUSE内置安全模块(如有订阅)
systemctl status sapconf  # SAP优化,含安全增强
systemctl status tuned    # 系统调优,含安全参数

高风险项:未部署实时防病毒工具,直接判定不符合三级要求。


六、资源控制(8.1.4.8)

测评命令
功能说明
达标判据
grep HISTSIZE /etc/profile /etc/bash.bashrc
历史命令保存条数
≥1000条
grep -E 'ClientAliveInterval|ClientAliveCountMax' /etc/ssh/sshd_config
SSH会话超时
≤600秒
grep -E 'soft|hard' /etc/security/limits.conf
资源限制
配置CPU、内存、文件句柄限制

SUSE特有资源控制:

# 检查systemd资源限制
systemctl show sshd |grep-E'MemoryLimit|CPUQuota|TasksMax'

# 查看控制组(cgroups)配置
cat /etc/systemd/system/sshd.service.d/limits.conf 2>/dev/null ||echo"未配置自定义限制"

# 配置示例
sudomkdir-p /etc/systemd/system/sshd.service.d/
sudotee /etc/systemd/system/sshd.service.d/limits.conf <<EOF
[Service]
MemoryLimit=512M
CPUQuota=50%
TasksMax=100
EOF

sudo systemctl daemon-reload
sudo systemctl restart sshd

一键巡检脚本(Bash)

#!/bin/bash
# SUSE Linux Enterprise Server 等保三级一键巡检脚本
# 适用:SLES 12 SP5 / SLES 15 SP3
# 执行用户:root

echo"===== 1 身份鉴别 ====="

echo"--- 空口令检查 ---"
awk -F: '$2==""{print "空口令用户: "$1}' /etc/shadow

echo"--- 密码有效期 ---"
grep-E'PASS_MAX_DAYS|PASS_MIN_DAYS' /etc/login.defs

echo"--- 密码复杂度(SUSE特有路径) ---"
cat /etc/security/pwquality.conf |grep-E'minlen|minclass|credit'|head-5

echo"--- 登录失败锁定 ---"
grep pam_tally2 /etc/pam.d/common-auth 2>/dev/null ||grep pam_faillock /etc/pam.d/common-auth 2>/dev/null

echo"--- SSH配置 ---"
grep-E'PermitRootLogin|Protocol|ClientAlive' /etc/ssh/sshd_config |head-5

echo""
echo"===== 2 访问控制 ====="

echo"--- 关键文件权限 ---"
stat-c'%a %n' /etc/passwd /etc/shadow 2>/dev/null

echo"--- 默认账户状态 ---"
grep-E'adm|lp|sync|shutdown|halt|mail|news|uucp|operator|games|gopher' /etc/shadow |head-5

echo"--- AppArmor状态(SUSE默认MAC) ---"
aa-status 2>/dev/null |head-10||echo"AppArmor未安装或异常"

echo""
echo"===== 3 安全审计 ====="

echo"--- auditd状态 ---"
systemctl is-active auditd && systemctl is-enabled auditd

echo"--- 审计规则数量 ---"
auditctl -l2>/dev/null |wc-l

echo"--- 日志权限 ---"
stat-c'%a %U:%G' /var/log/audit/audit.log 2>/dev/null

echo"--- 远程日志配置 ---"
grep-E'@\w+.*514' /etc/rsyslog.conf /etc/rsyslog.d/*.conf 2>/dev/null |head-3

echo""
echo"===== 4 入侵防范 ====="

echo"--- 高危端口 ---"
ss -tunlp|grep-E'0.0.0.0:23|0.0.0.0:111|0.0.0.0:513'

echo"--- 待安装补丁(SUSE特有) ---"
zypper patch-check 2>/dev/null |tail-5

echo"--- 启用服务 ---"
systemctl list-unit-files --state=enabled |grep-vE'ssh|audit|cron|rsyslog|syslog'|head-10

echo"--- 防火墙状态 ---"
firewall-cmd --state2>/dev/null || SuSEfirewall2 status 2>/dev/null ||echo"防火墙未运行"

echo""
echo"===== 5 恶意代码防范 ====="

echo"--- ClamAV状态 ---"
systemctl is-active clamd 2>/dev/null
systemctl is-enabled clamd 2>/dev/null

echo"--- 病毒库版本 ---"
freshclam --version2>/dev/null ||echo"未安装freshclam"

echo""
echo"===== 6 资源控制 ====="

echo"--- 历史命令限制 ---"
grepHISTSIZE /etc/profile /etc/bash.bashrc 2>/dev/null

echo"--- 系统资源限制 ---"
cat /etc/security/limits.conf |grep-v'^#'|grep-v'^$'|head-5

echo""
echo"===== 巡检完成 ====="

高风险项重点核查清单

检查项
验证命令
不合规判定
整改建议
空口令账户awk -F: '$2==""{print $1}' /etc/shadow
存在输出
立即设置强口令或锁定
密码复杂度未启用cat /etc/security/pwquality.conf
无配置或minlen<8
配置pwquality参数
无登录失败锁定grep -E 'pam_tally2|pam_faillock' /etc/pam.d/common-auth
无输出
配置登录失败锁定
root远程登录grep ^PermitRootLogin /etc/ssh/sshd_config
值为yes
修改为no
AppArmor未启用aa-status
无输出或非enforce
启用并配置策略
审计未启用systemctl is-active auditd
非active
安装并启用auditd
审计进程无保护sudo -u testuser systemctl stop auditd
执行成功
配置权限限制
无杀毒软件systemctl is-active clamd
非active
安装ClamAV
补丁更新滞后zypper patch-check
存在Critical补丁未安装
立即安装安全补丁

SUSE特有配置注意事项

1. 密码策略路径差异

对比项
RHEL/CentOS
SUSE
密码复杂度
/etc/pam.d/system-auth/etc/security/pwquality.conf
PAM配置
/etc/pam.d/password-auth/etc/pam.d/common-auth
密码历史
/etc/pam.d/system-auth/etc/pam.d/common-password

2. 软件包管理差异

功能
RHEL/CentOS
SUSE
安装软件
yum install
 / dnf install
zypper install
更新补丁
yum updatezypper update
安全补丁
yum --security updatezypper patch --category security
查看已安装
yum list installedzypper list-installed
搜索软件包
yum searchzypper search
查看补丁
yum list updateszypper list-patches

3. 防火墙差异

版本
默认防火墙
SLES 11/12
SuSEfirewall2
SLES 15+
firewalld(与RHEL一致)
# SuSEfirewall2配置示例(旧版本)
sudovi /etc/sysconfig/SuSEfirewall2
# 修改:
FW_SERVICES_EXT_TCP="22 443"
FW_ALLOW_PING_EXT="no"
sudo systemctl restart SuSEfirewall2

SUSE版本差异说明(SLES 12 vs SLES 15)

功能项
SLES 12 SP5
SLES 15 SP3
默认内核
4.12
5.3
包管理
zypper
zypper(增强)
默认防火墙
SuSEfirewall2/firewalld
firewalld
容器支持
Docker
Podman/CRI-O
系统角色
有限
系统角色(System Roles)
等保合规
需加固
预优化+合规工具

测评执行要点

1. 权限要求

  • 所有命令需 root 权限执行

  • 建议创建专用审计账户,加入 audit 组

2. 现场核查重点

  • 密码策略:SUSE使用pwquality.conf,非PAM直接配置,需特别注意

  • AppArmor状态:检查关键业务进程是否有专属配置文件

  • 补丁管理:使用zypper patch-check检查,关注category security

  • 日志转发:SUSE可能使用syslog-ng替代rsyslog,需确认实际配置

3. 与RHEL对比

对比项
RHEL/CentOS
SUSE SLES
包管理
yum/dnf
zypper
默认MAC
SELinux
AppArmor
防火墙
firewalld
SuSEfirewall2/firewalld
补丁管理
yum update
zypper patch
高可用
Pacemaker
Pacemaker(SUSE优化)
支持周期
10年
13年(SLES 15)
等保合规
官方指南
官方指南+合规工具

常用命令速查

# 用户与权限
cat /etc/passwd                    # 查看所有用户
cat /etc/shadow                    # 查看密码状态
lastlog                            # 查看最后登录
getent passwd username             # 查看特定用户

# 网络与安全
ss -tunlp# 查看监听端口
firewall-cmd --list-all            # 查看firewalld规则
aa-status                          # 查看AppArmor状态

# 系统与日志
uname-a# 内核版本
cat /etc/SuSE-release              # SUSE版本(旧版)
cat /etc/os-release                # 通用版本信息
zypper--version# zypper版本
journalctl |grep-i audit          # 查看审计日志

# 补丁与更新
zypper patch-check                 # 检查补丁
zypper list-patches                # 列出补丁
zypper patch --category security   # 安装安全补丁
rpm-qa--last|head-10# 最近安装包

# 备份与恢复
tar czf /backup/etc-$(date +%F).tar.gz /etc  # 备份/etc
systemctl status snapper           # SUSE快照工具
snapper list                       # 查看系统快照

参考标准:GB/T 22239-2019、GB/T 28448-2019、SUSE安全指南
适用版本:SUSE Linux Enterprise Server 12 SP5 / 15 SP3
验证环境:x86_64 / ARM64 / IBM Z 架构


最新文章

随机文章