美国服务器网络安全审计系统:基于 auditd + rsyslog 的主机级审计体系

美国服务器网络安全审计系统:基于 auditd + rsyslog 的主机级审计体系

美国服务器(尤其承载金融、医疗、SaaS业务时)的网络安全审计系统,核心由Linux内核级审计(auditd)、系统日志服务(rsyslog/syslog-ng)、特权命令记录(sudo log)及远程日志集中化(SIEM/ELK)四层组成。美国服务器数据中心合规要求(SOC 2、HIPAA、CCPA)通常规定审计日志须保留90天以上且不可本地篡改,因此除本地记录外还须将日志实时转发至独立日志服务器或对象存储。接下来美联科技小编就以 Ubuntu 22.04 / Rocky Linux 为例,详述美国服务器从安装、规则配置、日志轮转到远程外发的完整部署流程。

一、审计系统架构与关键组件

组件 职责 关键产出
auditd 内核级审计,记录文件访问、特权命令、系统调用、登录事件 /var/log/audit/audit.log
rsyslog 采集系统日志(/var/log/secure、/var/log/auth.log)并转发 auditd 日志到远程 集中化 syslog 流
sudo log 单独记录 sudo提权执行的每条命令 /var/log/sudo.log
远程SIEM/ELK 接收、索引、告警、留存(满足合规90天+要求) 关联分析与合规报表

二、详细部署与配置步骤

步骤一:安装并启用 auditd 与 rsyslog

# === Ubuntu / Debian ===

sudo apt update

sudo apt install -y auditd audispd-plugins rsyslog

 

# === Rocky / CentOS / Alma ===

sudo yum install -y audit audit-libs audispd-plugins rsyslog

 

# 启用并启动

sudo systemctl enable auditd

sudo systemctl start auditd

sudo systemctl enable rsyslog && sudo systemctl start rsyslog

验证 auditd 状态:

sudo auditctl -s

# 应显示 enabled=1

步骤二:配置 auditd 审计规则(监控关键事件)

编辑规则文件 /etc/audit/rules.d/audit-security.rules(Rocky 也可用 /etc/audit/rules.d/audit.rules):

# 清除现有规则(可选)

-D

 

# —— 身份认证与授权文件变更 ——

-w /etc/passwd -p wa -k identity

-w /etc/shadow -p wa -k identity

-w /etc/group -p wa -k identity

-w /etc/sudoers -p wa -k sudoers_change

-w /etc/ssh/sshd_config -p wa -k sshd_cfg

 

# —— 特权命令执行(sudo 运行的命令)——

-a always,exit -F arch=b64 -S execve -k cmd_exec

-a always,exit -F arch=b32 -S execve -k cmd_exec

 

# —— 用户/组管理工具 ——

-w /usr/sbin/useradd -p x -k user_mgmt

-w /usr/sbin/userdel -p x -k user_mgmt

-w /usr/sbin/usermod -p x -k user_mgmt

-w /usr/sbin/groupadd -p x -k group_mgmt

-w /usr/sbin/groupdel -p x -k group_mgmt

 

# —— 登录相关文件 ——

-w /var/log/lastlog -p wa -k login

-w /var/log/wtmp -p wa -k login

-w /var/log/btmp -p wa -k login

 

# 缓冲区大小与不可变标志(重启后加载)

-b 8192

# -e 2 表示规则锁定(重启后才能改),开发期可先注释

# -e 2

加载规则:

sudo augenrules --load

# 或 Rocky/CentOS:

sudo systemctl restart auditd

查看已加载规则:

sudo auditctl -l

步骤三:配置 sudo 命令独立审计

在 /etc/sudoers(建议用 visudo编辑)末尾追加:

Defaults logfile="/var/log/sudo.log"

Defaults log_input, log_output

创建并保护文件:

sudo touch /var/log/sudo.log

sudo chmod 600 /var/log/sudo.log

sudo chown root:root /var/log/sudo.log

步骤四:配置 auditd 日志轮转与保留(合规要求)

编辑 /etc/audit/auditd.conf关键参数:

log_file = /var/log/audit/audit.log

max_log_file = 50          # 单文件最大50MB

max_log_file_action = ROTATE

num_logs = 10              # 保留最近10个,约500MB

space_left = 100           # 剩余100MB时警告

space_left_action = SYSLOG

admin_space_left = 50

admin_space_left_action = SUSPEND

disk_full_action = SUSPEND

disk_error_action = SYSLOG

重启生效:sudo systemctl restart auditd

保护审计日志防篡改:

sudo chattr +a /var/log/audit/audit.log

步骤五:配置 rsyslog 远程转发(异地留存)

  1. 将 audit.log 通过 imfile 模块读入 rsyslog(Ubuntu 示例):

新建 /etc/rsyslog.d/99-audit-remote.conf:

# 加载imfile模块

module(load="imfile")

 

# 读取audit.log

input(type="imfile"

File="/var/log/audit/audit.log"

Tag="auditd:"

Severity="info"

Facility="local6")

 

# 转发到远程日志服务器(TCP可靠,@@=TCP,@=UDP)

local6.*       @@日志服务器IP:514

 

# 同时本地保留

local6.*       /var/log/audit/audit_syslog.log

  1. 转发系统认证日志(SSH/sudo/login):

在 /etc/rsyslog.conf或新建 /etc/rsyslog.d/10-auth-forward.conf:

auth,authpriv.*    @@日志服务器IP:514

重启 rsyslog:

sudo systemctl restart rsyslog

远程日志服务器建议配置 WORM(一次写多次读)存储或 S3 不可变桶,满足 SOC 2 / HIPAA 审计完整性要求。

三、日常审计与溯源命令

# 查看今日认证失败(SSH暴力破解)

aureport -au --failed --summary

 

# 查看所有用户登录事件

ausearch -k login

 

# 查看 /etc/passwd 被修改的记录

ausearch -k identity

 

# 查看特权命令执行(按时间)

ausearch -k cmd_exec | aureport -i -x

 

# 生成汇总报告

aureport --start today --end now

 

# 查看 sudo 命令日志

tail -50 /var/log/sudo.log

四、小结

美国服务器网络安全审计系统以 auditd 内核审计 + rsyslog 远程转发 + sudo 独立日志​ 为基础架构,通过监控身份文件变更、特权命令执行、SSH认证事件并配置合理日志轮转(满足90天+留存),可同时满足入侵溯源与 SOC 2 / HIPAA / CCPA 合规要求。关键原则是:审计日志必须异地备份且本地文件加 chattr +a 防篡改,规则聚焦高风险操作避免全量监控影响性能。对于集群环境,进一步将日志接入 ELK 或云端 SIEM 做关联分析与实时告警,即构成完整的主机安全审计闭环。

 

客户经理