如何在Linux上设置高可用的系统安全审计

来源:网络编程作者:北京网站建设头衔:草根站长
导读:本期聚焦于小伙伴创作的《如何在Linux上设置高可用的系统安全审计》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何在Linux上设置高可用的系统安全审计》有用,将其分享出去将是对创作者最好的鼓励。

在Linux环境中搭建高可用的系统安全审计体系,核心目标是确保审计服务持续运行、审计日志完整不丢失,即使单个节点出现故障也能自动切换,维持审计能力不中断。整体方案通常采用auditd作为审计守护进程,结合Pacemaker和Corosync构建高可用集群,同时配合共享存储或日志同步机制保障审计数据的一致性。

如何在Linux上设置高可用的系统安全审计

核心组件说明

整个高可用审计方案涉及以下关键组件:

  • auditd:Linux系统自带的审计守护进程,负责收集系统调用、文件访问、用户操作等审计事件,写入本地审计日志。
  • Pacemaker:集群资源管理器,负责监控审计服务状态,当主节点故障时自动将服务切换到备用节点。
  • Corosync:集群通信引擎,负责集群节点之间的心跳检测和状态同步。
  • 共享存储/NFS:用于存储审计日志,确保主备节点都能访问到完整的审计数据,避免日志分散在不同节点。

前置环境准备

假设我们有两个节点,主机名分别为node1和node2,系统为CentOS 7及以上版本,需要先完成以下准备工作:

  • 两个节点配置静态IP,确保网络互通,配置好hosts解析:
    # 两个节点都执行
    cat >> /etc/hosts << EOF
    192.168.0.10 node1
    192.168.0.11 node2
    EOF
    
  • 关闭防火墙和SELinux,或者配置对应的放行规则:
    # 两个节点都执行
    systemctl stop firewalld
    systemctl disable firewalld
    setenforce 0
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    
  • 配置两个节点之间的SSH免密登录,方便后续操作:
    # node1执行
    ssh-keygen -t rsa -P ""
    ssh-copy-id node2
    # node2执行
    ssh-keygen -t rsa -P ""
    ssh-copy-id node1
    

安装依赖组件

在两个节点上分别安装auditd、Pacemaker、Corosync以及相关的管理工具:

# 两个节点都执行
yum install -y audit audispd-plugins pacemaker corosync pcs fence-agents-all

安装完成后启动pcs服务并设置开机自启:

# 两个节点都执行
systemctl start pcsd
systemctl enable pcsd

配置高可用集群

设置hacluster用户密码

pcs默认使用hacluster用户管理集群,需要为两个节点的该用户设置相同密码:

# 两个节点都执行
passwd hacluster
# 输入自定义密码,比如Abc123456

认证集群节点

在node1上执行节点认证:

pcs cluster auth node1 node2 -u hacluster -p Abc123456 --force

创建集群

在node1上创建名为audit_cluster的集群:

pcs cluster setup --name audit_cluster node1 node2

启动集群

启动集群并设置为开机自启:

pcs cluster start --all
pcs cluster enable --all

检查集群状态

执行以下命令查看集群是否正常:

pcs status
# 正常输出中应看到两个节点都处于online状态

配置共享存储

为了避免审计日志分散,我们使用NFS作为共享存储,假设有一台NFS服务器192.168.0.100,共享目录为/data/audit_logs:

安装NFS客户端

在两个节点上安装NFS客户端工具:

# 两个节点都执行
yum install -y nfs-utils

创建本地挂载目录

两个节点都创建审计日志挂载目录:

# 两个节点都执行
mkdir -p /var/log/audit_shared

配置挂载资源

在集群中添加NFS挂载资源:

pcs resource create audit_nfs ocf:heartbeat:Filesystem 
device=192.168.0.100:/data/audit_logs 
directory=/var/log/audit_shared 
fstype=nfs 
op monitor interval=30s 
op start timeout=60s 
op stop timeout=60s

配置auditd服务

修改auditd配置

编辑/etc/audit/auditd.conf,修改日志存储路径为共享目录:

# 两个节点都执行
sed -i 's|log_file = /var/log/audit/audit.log|log_file = /var/log/audit_shared/audit.log|g' /etc/audit/auditd.conf
# 调整日志滚动策略,避免单个日志文件过大
sed -i 's|max_log_file = 8|max_log_file = 100|g' /etc/audit/auditd.conf
sed -i 's|num_logs = 5|num_logs = 10|g' /etc/audit/auditd.conf

配置审计规则

编辑/etc/audit/rules.d/audit.rules,添加需要审计的规则,比如审计用户登录、文件修改、特权命令执行等:

# 两个节点都执行
cat > /etc/audit/rules.d/audit.rules << EOF
# 删除原有规则
-D
# 缓冲区大小
-b 8192
# 审计用户登录相关事件
-w /var/log/lastlog -p wa -k logins
-w /var/run/faillock -p wa -k logins
# 审计敏感文件修改
-w /etc/passwd -p wa -k identity
-w /etc/group -p wa -k identity
-w /etc/shadow -p wa -k identity
# 审计特权命令执行
-a always,exit -F arch=b64 -S execve -F euid=0 -k privileged
-a always,exit -F arch=b32 -S execve -F euid=0 -k privileged
# 设置不可变,避免规则被随意修改
-e 2
EOF

重启auditd服务

重新加载审计规则并重启服务:

# 两个节点都执行
augenrules --load
systemctl restart auditd

将auditd加入集群管理

在集群中创建auditd服务资源,并和NFS挂载资源绑定,确保NFS挂载成功后再启动auditd:

# 创建auditd资源
pcs resource create audit_service systemd:auditd op monitor interval=30s
# 创建资源组,将NFS和auditd加入同一个组,确保启动顺序和故障切换一致
pcs resource group add audit_group audit_nfs audit_service
# 设置资源组优先在node1上启动
pcs constraint location add prefer_node1 audit_group 100 node1

验证高可用效果

检查资源运行状态

执行以下命令查看资源是否正常:

pcs status resources
# 应看到audit_group组中的两个资源都在node1上运行

模拟主节点故障

在node1上执行重启或者关闭auditd服务,观察资源是否自动切换到node2:

# 在node1上执行
systemctl stop auditd
# 等待30秒后查看集群状态
pcs status
# 应看到audit_group组已经切换到node2上运行

检查审计日志

在node2上查看共享目录中的审计日志,确认日志正常写入:

ls -lh /var/log/audit_shared/
# 应看到audit.log文件存在且大小在增长

日常运维注意事项

  • 定期检查集群状态,确保两个节点心跳正常,资源运行在预期节点。
  • 定期备份共享存储中的审计日志,避免存储满导致审计服务异常。
  • 修改审计规则时,需要同时在两个节点修改,并且重新加载规则,确保主备节点规则一致。
  • 如果NFS服务器故障,需要及时修复,避免审计日志无法写入导致服务异常。

常见问题排查

  • 如果资源无法启动,使用journalctl -u auditd查看auditd服务日志,排查配置错误。
  • 如果集群节点离线,检查Corosync服务状态,以及节点之间的网络连通性。
  • 如果审计日志没有写入共享目录,检查NFS挂载状态,执行mount | grep audit_shared确认挂载是否正常。

Linuxauditd高可用安全审计Pacemaker修改时间:2026-07-08 00:15:16

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。